ウェブアプリケーション脆弱性診断(ウェブアプリケーションぜいじゃくせいしんだん)もしくはウェブアプリケーションセキュリティ検査(ウェブアプリケーションセキュリティけんさ)とは、ウェブアプリケーションのセキュリティ上の問題点を洗い出す検査で、ウェブアプリケーションに文字列を送信したり、ページ遷移を確認したり、ログ解析したりするなど、ウェブアプリケーションに特化した検査[1]。何らかのツールやサービスを用いて主に開発時のテスト工程と運用時に行われる[1]。実装時に作り込んだ脆弱性は発見できるものの、設計段階で入り込んだ脆弱性を発見するのは難しい[1]。
なお、一般的なウェブサイトはウェブアプリケーションのみならず、OS、Webサーバ、データベース等様々な要素からなっている為、ウェブアプリケーション脆弱性診断とは別に、これらの要素の脆弱性を診断するプラットフォーム脆弱性診断を行う必要がある[2]。
ウェブアプリケーション脆弱性診断やプラットフォーム脆弱性診断のサービスはリモート診断とオンサイト診断とに分かれる。リモート診断がインターネット経由で遠隔地から顧客のウェブアプリケーションを診断を行うのに対し、オンサイト診断は顧客のネットワーク環境がある場所まで赴き、顧客ネットワークに診断用のマシンを直接接続するなどして診断を行う[3]。リモート診断がウェブサイトを訪れるユーザと同じ条件下で診断を行うのに対し、オンサイト診断はファイアウォールの内側から診断する事により詳細な情報を取るなどできるが、現地に赴く分料金が高くなる場合がある。
ウェブアプリケーション脆弱性診断は次のような流れで行う[4]:
フェーズ | 内容 | |
---|---|---|
診断前の準備 | 診断対象の選定・確認・優先順位付け[4][5]、実施内容説明[5]、見積もり[4]、ヒャリング[4]、作業に必要なアカウントや権限等の環境の準備[5]、(オンサイトの場合)診断対象のネットワークへの接続方法や作業場所の準備[5] | |
診断 | テストケース作成 | 診断対象のURL・機能・パラメータ等と、診断の優先順位・画面遷移順序等を記述したテストケースを作成[6]。 |
診断実施 | 自動診断・手動診断の実施[6] | |
診断結果の検証 | 自動診断結果・手動診断結果が正しいか否かを手作業で検証(手動診断は診断実施過程中に検証も行う)[6][7] | |
レポート作成 | 自動診断ツールのレポート出力機能を利用しながら、リスク評価を行い、手動診断結果も踏まえたレポートを作成[6][8] | |
診断実施後のアフターサービス | 報告会、問い合わせ対応、再診断[4] |
IPAによるとウェブアプリケーションセキュリティ検査ツールは以下の3タイプに分けられる[9]。