ソフトウェア開発工程向けにセキュリティサービスを提供しているFlatt Securityは2022年11月17日、Web画面セキュリティ診断サービス「SPA診断」を提供開始した。クライアント画面を1つのWebページで実現するSPA(Single Page Application)の仕組みで実装したWeb画面を対象に、ソフトウェアの脆弱性を調査・検証する。
Flatt Securityの「SPA診断」は、Webアプリケーション画面のセキュリティ診断サービスである。クライアント画面を1つのWebページで実現するSPA(Single Page Application)の仕組みで実装したWeb画面を対象に、ソフトウェアの脆弱性を調査・検証する(図1)。
SPAは、Webブラウザの単一ページ上で、ページ遷移なしにリッチなコンテンツを提供する開発手法のこと。SPA以前のWeb画面がコンテンツの切り替えごとにWebページを切り替えていたのに対して、SPAでは単一ページ上でページを切り替えることなく各種のコンテンツを表現する。SPAを実装したWeb画面は使い勝手を向上させやすいため、近年のWeb開発のトレンドになっている。
SPA診断では、セキュリティエンジニアがSPAのソースコードや仕様書、設計書を調査・検証することで脆弱性をチェックする「ホワイトボックス形式」の診断メニューを提供する。「ブラックボックス形式」(外部からの擬似攻撃によって脆弱性を調査)の診断では発見が難しい脆弱性も検出する。
別途、Webアプリケーションのシステム全体をブラックボックス形式で診断する「Webアプリケーション診断」と組み合わせることによって、Webアプリケーション全体の脆弱性を詳細に調査・検証可能である。表1は、SPA診断で調査する脆弱性の例である。
脆弱性 | 概要 |
---|---|
DOM based XSS | SPAのJavaScriptがユーザーの入力値を適切に処理しないことにより、外部から注入された悪意あるスクリプトが実行されてしまう脆弱性 |
CSSインジェクション | 外部からスタイルシートもしくはstyleタグを注入できてしまうことにより、HTML内部のデータが漏洩してしまう脆弱性 |
オープンリダイレクト | 外部から与えられたパラメータを利用してリダイレクト先を決める機能を第三者が悪用することで、第三者が任意のリダイレクト先を指定できてしまう(悪意ある転送ができてしまう)脆弱性 |
クライアントサイドDoS | 不正な入力やエラーハンドリングの不備などにより、サービス利用が妨げられてしまう脆弱性 |
クライアントサイドプロトタイプ汚染 | JavaScriptオブジェクトのプロパティが変更されることで、意図しない挙動を引き起こす脆弱性 |
「SPAの登場とともにWeb画面で実現可能な機能の幅が増えたことで、サーバーサイドだけでなくフロントエンドの脆弱性に対処することが必要不可欠になった」(Flatt Security)。なお、同社は以前からブラックボックス形式でWebサービスのフロントエンドとバックエンド両方の脆弱性を調査する「Webアプリケーション診断」を提供してきた。