インシデント対応・フォレンジック

ペネトレーションテスト

約 4 分で読めます

ペネトレーションテストとは

ペネトレーションテスト (Penetration Testing、略称: ペンテスト) とは、実際の攻撃者と同じ手法を用いてシステムやネットワークに侵入を試み、セキュリティ上の弱点を発見する実践的なセキュリティ評価手法です。

ペネトレーションテストの目的は、机上の評価では発見できない実際の攻撃経路を特定し、組織のセキュリティ対策が実際の攻撃に対してどの程度有効かを検証することです。脆弱性管理で検出された個々の脆弱性が、実際にどのように連鎖して侵入に至るかを実証します。

テストの範囲は、Web アプリケーション、ネットワークインフラ、モバイルアプリ、クラウド環境、物理セキュリティ、ソーシャルエンジニアリングなど多岐にわたります。テスト対象と範囲は事前に明確に合意し、書面で定義します。

テストの種類と実施プロセス

ペネトレーションテストは、テスターに与えられる事前情報の量によって 3 種類に分類されます。

ブラックボックステスト: テスターに事前情報を一切与えず、外部の攻撃者と同じ条件で侵入を試みます。実際の攻撃シナリオに最も近いですが、時間とコストがかかります。

ホワイトボックステスト: ソースコード、ネットワーク構成図、認証情報などの内部情報をテスターに提供します。効率的に深い脆弱性を発見できますが、外部攻撃者の視点が弱くなります。

グレーボックステスト: 限定的な情報 (一般ユーザーのアカウント等) を提供する中間的なアプローチです。実務では最もバランスが良く、多く採用されています。

実施プロセスは PTES (Penetration Testing Execution Standard) に基づき、(1) 事前準備と範囲定義、(2) 情報収集 (偵察)、(3) 脆弱性の特定、(4) 脆弱性の悪用 (エクスプロイト)、(5) 権限昇格と横移動、(6) 報告書作成の順で進行します。

主要な攻撃手法と発見される脆弱性

ペネトレーションテストで使用される代表的な攻撃手法と、頻繁に発見される脆弱性を紹介します。

Web アプリケーション: クロスサイトスクリプティング (XSS)SQL インジェクション、認証・認可の不備、CSRF、SSRF、安全でないデシリアライゼーションなどが主要な攻撃対象です。OWASP Top 10 が網羅的な参照リストとして活用されます。

ネットワーク: 不要なポートの開放、古いプロトコルの使用、デフォルト認証情報の放置、暗号化されていない通信、ネットワークセグメンテーションの不備などを検証します。

認証・認可: パスワードポリシーの弱さ、多要素認証の未導入、権限昇格の可能性、セッション管理の不備を検証します。

ソーシャルエンジニアリング: フィッシングメールの送信、電話による情報詐取、物理的な侵入テストなど、人間の心理的な弱点を突く手法です。技術的な対策だけでは防げない脅威を可視化します。

ゼロデイ攻撃の発見は稀ですが、既知の脆弱性の組み合わせによる想定外の攻撃経路が発見されることは珍しくありません。

テスト結果の活用と実施上の注意点

ペネトレーションテストの報告書には、発見された脆弱性の一覧、リスク評価 (CVSS スコア等)、実際の攻撃経路の詳細、再現手順、推奨される対策が含まれます。

報告書を受け取った後の対応が最も重要です。発見された脆弱性を深刻度順に優先順位付けし、修正計画を策定します。修正完了後は再テスト (リテスト) を実施し、脆弱性が確実に解消されたことを確認してください。

実施上の注意点:

  • テスト範囲と禁止事項を書面で明確に合意する。範囲外のシステムへの攻撃は法的問題になりうる
  • 本番環境でテストする場合は、サービス停止のリスクを考慮し、影響の少ない時間帯に実施する
  • クラウド環境では、クラウドプロバイダーのペネトレーションテストポリシーを事前に確認する (AWS は事前申請不要だが、一部の攻撃手法は禁止されている)
  • WAF の有効性検証もテスト項目に含めると、防御の実効性を確認できる

ペネトレーションテストは年 1 回以上、または大きなシステム変更後に実施することが推奨されます。

よくある誤解

脆弱性診断とペネトレーションテストは同じもの
脆弱性診断は自動ツールで既知の脆弱性を網羅的にスキャンする手法で、広範囲を効率的にカバーします。ペネトレーションテストは人間のテスターが実際に侵入を試み、脆弱性の連鎖や攻撃経路を実証する手法です。両者は補完的な関係にあり、脆弱性診断で広くスキャンし、ペネトレーションテストで深く検証するのが効果的です。
ペネトレーションテストに合格すればシステムは安全
ペネトレーションテストは限られた時間と範囲で実施されるため、すべての脆弱性を発見できるわけではありません。テスト時点でのセキュリティ状態のスナップショットにすぎず、新たな脆弱性は日々発見されます。継続的な脆弱性管理と定期的なテストの繰り返しが必要です。

ペネトレーションテストと脆弱性診断の比較

ペネトレーションテスト

人間のテスターが実際に侵入を試みる。脆弱性の連鎖と攻撃経路を実証。深い分析が可能だが時間とコストがかかる。年 1-2 回の実施が一般的。

脆弱性診断 (スキャン)

自動ツールで既知の脆弱性を網羅的に検出。広範囲を効率的にカバー。誤検知の精査が必要。月次や四半期での定期実施に適する。

関連用語

関連記事