定義

Webアプリケーション・ペネトレーション・テストは、システムのセキュリティ状態を確認する目的で機密データへのアクセスを試みて、システムに対する攻撃をシミュレートする手法です。これらの攻撃を内部または外部から実行することにより、ターゲット・システムに関する情報が得られ、脆弱性を特定し、実際にシステムを侵害する可能性があるエクスプロイトを発見するために役立てることができます。これは、修正やセキュリティ対策が必要かどうかをテスターに通知する重要なヘルスチェックです。

Webアプリケーション・ペネトレーション・テストの利点

Webアプリケーション・ペネトレーション・テストをセキュリティ・プログラムに組み込むことには、いくつかの重要な利点があります。

  • コンプライアンス要件を満たすために役立つ。一部の業界ではペネトレーション・テストが必須要件として明示的に定められており、この要件を満たすためにもWebアプリケーション・ペネトレーション・テストの実行が役立ちます。
  • インフラストラクチャの評価に役立つ。ファイアウォールやDNSサーバーなどのインフラストラクチャは一般に公開されています。インフラストラクチャに変更を加えると、システムに脆弱性が生じる可能性があります。Webアプリケーション・ペネトレーション・テストは、システムへのアクセスに成功する可能性がある実際の攻撃を特定するために役立ちます。
  • 脆弱性を特定する。Webアプリケーション・ペネトレーション・テストでは、アプリケーションの抜け穴やインフラストラクチャ内の脆弱なルートを、攻撃者に見つかる前に発見します。
  • セキュリティ・ポリシーの確認に役立つ。Webアプリケーション・ペネトレーション・テストでは、既存のセキュリティ・ポリシーの弱点を評価します。 

ペネトレーション・テスト:バイヤー向けガイド

このガイドでは、ペネトレーション・テストの利点、ペネトレーション・テスト・ソリューションで調査する内容、および潜在的なベンダーに対する質問事項について詳しく説明しています。

Webアプリケーション・ペネトレーション・テストの実行方法

Webアプリケーションに対してペネトレーション・テストを実行するには、3つの重要なステップがあります。

  • テストを構成する。テストを開始する前に、テスト・プロジェクトの範囲と目標を定義することが重要です。目標がコンプライアンスの要件を満たすことなのか、全体的なパフォーマンスをチェックすることなのかを明確にすることで、適切なテストを実行する指針となります。テストの目的を決定したら、テストの実行に必要な主要情報を収集する必要があります。これには、Webアーキテクチャ、APIなどに関する情報、一般的なインフラストラクチャ情報が含まれます。
  • テストを実行する。通常、テストでは、ハッカーが実際にアプリケーションにアクセスできるかどうかを確認するために攻撃をシミュレーションします。実行可能なテストは主に2種類あります。
    • WebアプリケーションやWebサイトなど、ハッカーがインターネットでアクセスできるコンポーネントを分析する外部ペネトレーション・テスト
    • ハッカーがファイアウォールの背後にあるアプリケーションにアクセスするシナリオをシミュレーションする内部ペネトレーション・テスト
  • テスト結果を分析する。テストが完了したら、結果を分析します。脆弱性と機密データの漏洩について検討する必要があります。分析を踏まえて、必要な変更と改善を実装できます。 

Webアプリケーションのペネトレーション・テストに使用するツール

ペネトレーション・テストを実行するためのオープンソースおよび商用のツールがあります。Webアプリケーションのペネトレーション・テストを手動で実行することもできます。 

Web application penetration testing steps

シノプシスの支援方法

Black Duckはオンデマンドの専門知識によるリスク管理支援を行っています。マネージド・ペネトレーション・テスト・サービスを利用することにより、探索的なリスク分析とビジネス・ロジック・テストを実行し、稼働中のWebアプリケーションやWebサービスに潜むビジネス上重大な脆弱性を体系的に検出して取り除きます。しかもソースコードは不要です。