手動脆弱性診断
事前準備
- 対象となるWebアプリケーションの調査
構成を確認し、詳細な画面遷移図を作成。 - 診断範囲の検討
画面遷移の数(リクエスト数)や、画面遷移の中で送信されるパラメータ数が多くなるとコストが上乗せされる。
予算や期間によって、重要な機能のみに絞って診断したり、サンプリングした対象について診断したり、さらにその結果に応じて範囲を拡大する等の対応もある。 - 診断方法の検討
対象アプリケーションの特性や、依頼者の希望により、基本の診断メニュー/診断項目をカスタマイズすることもある。
診断項目は診断会社によって異なるが、SQLインジェクション、クロスサイトスクリプティング、コマンドインジェクションの他、認証周りやセッション関連の診断は通常含まれている。
診断
- 専門家が実際に対象アプリケーションにアクセスし、攻撃者の視点に立って脆弱性の有無を検証。
- 診断員がネットワーク経由でアクセスすることが多いが、客先でオンサイトの診断を行うこともある。
- 対象となる画面遷移数が多ければ作業に数日を要する。
レポート/フォロー
- 診断実施後、数日から数週間程度で報告書が提出され、検出された脆弱性の内容や重要度、対策の説明などが提供される
- 必要に応じて報告会を行う
- 指摘箇所の改修後に再診断
- 一定期間の問い合わせ対応
メリット
- 検査精度の高さ
(検査項目の網羅性や、人間が判断しないと認識しにくいタイプの脆弱性の発見など) - 診断後のフォローアップ
- 柔軟性、カスタマイズ性
デメリット
- 診断員のスキルによるばらつき
- 高コスト(予算に応じて検査範囲を絞る必要性も)
- 検査や報告までの所要時間の長さ
- 外注の場合、早期に診断業者のスケジュールを確保する必要性
- 社内で行う場合、診断員の確保育成コストが大きい
自動脆弱性診断
ツールを利用したWebアプリケーション脆弱性診断です。ここでは、プログラマーをはじめ専門的なセキュリティ診断の知識を持たない方による実施を前提としています。ツールによる自動脆弱性診断は、実施段階によってさらに2種類に分けられます。
リリース前診断用ツール
自社内の開発部門等において、Webアプリケーションのリリース前に脆弱性診断を行うための自動検査ツールです。
診断用ツールの利用イメージ
事前準備
- インストール(ソフトウェア型の場合)
- プロキシ等のネットワーク設定
- 診断対象、診断基準の設定
- 要認証箇所に関する設定
- 診断対象箇所のクロール(手動または自動での画面遷移記録)
診断
- 診断対象箇所に対して自動スキャン(疑似的な攻撃リクエストを送信)
※クラウドサーバ上のWebアプリケーションを対象にスキャンを行う場合は、インフラ事業者に事前申請が必要な場合もある - その結果を記録
レポート/フォロー
- レポート出力/閲覧
- 指摘箇所の確認(誤検知でないか等)
- 指摘箇所の改修、再診断
メリット
- 複数回利用すれば低コスト(クラウド型の場合はさらに低価格なサービスあり)
- 自社都合のスケジュールでいつでも何度でも実施でき、所要時間も短い
- コストを気にせず対象となるアプリケーションの全体を漏れなく診断しやすい
- ツールによるが、セキュリティの深い知見があれば詳細なチューニングも可能
デメリット
- 設定や操作に関する学習コストが高い
- 脆弱性に関する専門知識がないと使いこなせないツールが多い
- オートクロール機能があるツールでも、画面遷移のすべてを網羅できない場合がある