設計情報

投稿者: SPIRERSナレッジ向上チーム 2024年2月5日 (月)

MKupdate vol.29「エシカルハッカーに学ぶSPIRALのセキュリティ」


MKupdate vol.29では、エシカルハッカーが登壇しSPIRALのセキュリティについて解説いただきました。

登壇者紹介

fujita
社内ハッカーの藤田です。
SPIRALのハックやWebアプリケーション脆弱性診断などを通して、ユーザ様に安全なサービス提供ができるよう活動しています。
katsurashima
司会の桂嶋です。本日はよろしくお願いします!
藤田さんはセキュリティの専門性が非常に高く、その活躍は様々なメディアで取り上げられています!
掲載メディア
自作サイトに荒らし行為、セキュリティ強化に勤しむ小学生が”正義のハッカー”に…ネット世界に見出した道
金融や官公庁などのサイバー攻撃封じる裏方職人 ネット上で誹謗中傷を受けた幼少期の経験生かす
転生したらエシカルハッカーだった件ーゲーム好き女性エンジニアが辿り着いた現在

今回のキーワード

katsurashima
今回のキーワードは「セキュリティで見るプラットフォームの優位性」です。
当社では様々な面でセキュリティに力を入れていますが、今回はその中でも「SPIRAL」自体のセキュリティを学んでいただき、プラットフォームの優位性を認識していただければと思います。

セキュリティとローコード

fujita
まずはローコード開発のセキュリティについてお話しします。
ローコード開発はよくスクラッチ開発やパッケージと比較されますが、パッケージ開発のようなスピード感+スクラッチ開発のような自由度を両立しており、コスト面での優位性や、セキュリティが強みです。
fujita
ローコードやノーコードは、「フォーム」「認証」「レコード一覧」「メール配信」など、Webサイトでよく使われる機能をナレッジとして持っており、それを上手く再利用するという考え方です。
fujita
イメージで言うと、SPIRALの標準機能で開発したところは青い道になり、カスタマイズをすることでオレンジの道も作れるようになります。
どれだけカスタマイズを頑張っても、青い道より外に行くことはできないのがローコード開発ですね。
fujita
スクラッチと比較すると「できることを減らす」ことになり、その結果システム侵害へと繋がる弱点が出る機会をなくすことになります。
fujita
しかし、カスタマイズ=リスクにもなります。
少しでもPHPやJavaScriptによるコーディングが入るということは、脆弱性が混入するリスクと理解すべきです。
そのため事故予防・セキュリティ向上の観点ではプラットフォームの標準機能で構築したいというのが基本的な考え方になります。

ハッカーも唸る!SPIRAL ver.2のセキュリティ

fujita
SPIRAL ver.2はハッカーにとってはイヤらしいアーキテクチャになっていますw
逆に言えば、攻撃に繋がるようなきっかけがなく安全という意味です。
今回は攻撃の標的にもなりやすいフォームを例にして、特に良い点をご紹介します。
フォームのXSS対策
fujita
Webアプリの脆弱性の6割はXSS(クロスサイトスクリプティング)と言われています。
XSSというのはWebアプリケーションのユーザ入力において、悪意のあるJavaScriptやHTMLタグを打ち込んで他人に実行させる攻撃のことです。
fujita
SPIRAL ver.2はPHPでカスタマイズをしていたとしても、「PHPの実装ミスによるXSS」や「XSS(蓄積型/反射型)」を起こす方が難しいくらい、XSS対策が強化されています!
理由は、PHPで受け取った値をHTMLに出力する際にThymeleafが採用されているからです。Thymeleafは何もしなくてもXSS対策のエスケープ処理を行ってくれるため、エスケープを漏れなく施すことができます。
参考
Thymeleafとは:MKupdate vol.4「SPIRAL ver.2.18 PHP」
認証サイト内フォーム
fujita
SPIRAL ver.2は認証エリアにフォームブロックを設置することで、ログイン者に限定したフォームを作成することができます。
fujita
認証エリアで囲われたフォームは、認証レコード値(認証DBの値)をフォーム上で取得でき、フォーム上に表示や引用できる点が強みです。
ノーコードで設定でき、プラットフォーム側での処理となるため、簡単かつ安全に取得することができます。

参考
登録フォームブロックのビジュアル設定
自動登録の活用例
参照フィールド
fujita
これはマジで神機能!!
例えば、ログインしている状態で問い合わせフォームから送信した時に、送信先の問い合わせDBに対して問い合わせ内容とセットでメールアドレスなどの認証レコード値を自動登録機能を使って引用し登録することができます。
こちらもノーコードで設定でき、プラットフォーム側での処理になるため安全かつ工数削減にもなりますね。
参考
参照フィールド拡張(サイト対応) 概要
ウェビナー申込システムおける参照フィールドの活用方法
fujita
いくつか紹介しましたが、このようにSPIRAL ver.2の標準機能はセキュリティが考慮されていることがわかりましたでしょうか。
スクラッチ開発と比較するとカスタマイズ範囲は狭くなりますが、脆弱性の機会も減り、上手く使うことで高品質なアプリ開発をすることができます。
ポイント
SPIRAL ver.2はノーコードで容易に認証レコード値(認証DBの値)を取得でき
手軽にセキュアな認証サイト内フォームが開発できる

さいごに

fujita
当社のセキュリティスローガンにシフトレフトという考え方があります。
具体的には設計・要件定義コーディングの段階から、事前対策型の観点でセキュリティ仕様を作り込むことです。
私が所属するQAサービス部ではWebアプリケーション診断を行っております。
開発したアプリが安全かどうか不安、セキュリティ基準を満たすアプリ開発方法がわからない…といった方は是非お気軽にお問い合わせください!
katsurashima
藤田さんありがとうございました!
解決しない場合はこちら コンテンツに関しての
要望はこちら