close search bar

Sorry, not available in this language yet

close language selection

包括的な脆弱性評価チェックリスト

Synopsys Editorial Team

Sep 08, 2016 / 1 min read

脆弱性評価は、悪意のあるアクター(行為者)によるエクスプロイトの可能性があるWebアプリケーションのセキュリティ脆弱性の重大度レベルを特定して割り当てるプロセスです。評価は手動で行い、市販またはオープンソースのスキャンツールで補完して最大限のカバレッジを確保します。この必須チェックリストは、Webアプリケーションのセキュリティの欠陥を包括的にテストする場合の定石です。

評価前の作業

  • テスト準備のミーティングを行う:アプリケーションのデモのプレゼンテーションを行い、予定されているペネトレーションテストのスコープを定め、テスト環境のセットアップについて話し合います。
  • 脅威モデルを構築する:特定の領域を対象にして所定の期間内に重大度の高い脆弱性をなるべく多く見つけます。
  • 開発チームへのインタビューを行う:アプリケーションに関する詳細な知識を入手します。
  • テスト環境の詳細を確認する:URL、VPNのアクセス、資格情報などを確認します。

動的テスト

  • 自動化動的テストの方法を選択する:アプリケーションのフレームワークに応じて適切な市販またはオープンソースのセキュリティ・スキャン・ツール(Burp Suite Pro、IBM Rational AppScan、HP Fortify On Demandなど)を選択し、最大限のカバレッジを確保します。
  • アプリケーションをスキャンする:この種のテストで多くの一般的なセキュリティ脆弱性を明らかにします。

手動テスト

  • インジェクションとXSSのテストを行う:SQL、JSON、XML、LDAPインジェクションなど、インジェクションの欠陥の存在をチェックします。アプリケーションのすべての入力点からのクロスサイト・スクリプティング(XSS)をテストします。フォームが改ざんされることなく安全に送信されるかどうかを確認します。
  • 認証・認可テストを実施する:不十分な認証方法、不適切なアクセス制御定義、欠陥があるログインプロセスがないか検査します。
  • セッション管理を監査する:セッションID/cookieのセキュリティをレビューします。クロスサイト・リクエスト・フォージェリ(CSRF)のインスタンスを検索します。
  • 重要情報の露出を調査する:NPIデータの不適切な保存、エラー処理の欠陥、非セキュアな直接オブジェクト参照、ソースコードのコメントによる重要情報の露出がないことを確認します。
  • セキュアなコンフィグレーションであるかを検査する:セキュリティコンフィグレーションがデフォルト設定で定義およびデプロイされていないことを保証します。
  • トランスポート層のセキュリティテストを実施する:暗号アルゴリズムに欠陥がないこと、および通信チャネルが暗号でセキュリティ保護されていることを確認します。
  • アプリケーションのスパイダリングを実行する:セキュリティ対策をバイパスするためにアプリケーションが通常と異なる方法を用いていないかを検査します。

テスト中の作業

  • 結果をトリアージ(優先順位付け)する:スキャン結果を手動でスキャンして不具合と誤検知を区別します。
  • 証拠を集める:適切なスクリーンショットを撮るなどしてエクスプロイトを再現する手順を記録し、概念実証の証拠を正確に作成します。

テスト後の作業

  • 詳細なレポートを作成する。標準テンプレートを使用し、リスク格付けに従ってすべてのテスト結果のレポートを作成します。
  • ステークホルダーとコミュニケーションをとる。さまざまなステークホルダーが各テスト結果に関連するリスクを理解し、根拠付けるためのサポートをテストチームが行えるようにします。

これまで見てきたように、総合的なアプリケーション・セキュリティ・プログラムには各種のセキュアなプロセスとプラクティスが含まれます。プロジェクトのスコープを定めたら、チームメンバーはアプリケーションの中で脆弱性の重要度が高い領域を把握する必要があります。では、プロジェクトをどのように開始すればよいでしょうか? 次回の脆弱性評価は脅威モデルから始めて、セキュリティ脆弱性を克服しましょう。

Continue Reading

トピックを探索する