ペネトレーションテスト - ペネトレーションテスト
攻撃者の視点でシステムの脆弱性を実際に悪用して検証するセキュリティテスト。脆弱性スキャンとは異なり、実際に侵入を試みる。
概念図
攻撃シナリオ
偵察フェーズでのポートスキャンとサービス列挙
bash
nmap -sS -sV -O -A 192.168.1.0/24
nmap -p- --script=default 192.168.1.100SQL インジェクションの自動検証(sqlmap)
bash
sqlmap -u "http://target.com/page?id=1" --dbs
sqlmap -u "http://target.com/page?id=1" -D mydb --tablesペネトレーションテストの手順
事前準備: テスト範囲(スコープ)、制約事項、免責事項を書面で合意する。許可なくテストを行うと不正アクセスに該当する
偵察(Reconnaissance): OSINT、ポートスキャン、サービス列挙で攻撃対象の情報を収集する
脆弱性分析: 収集した情報を基に、悪用可能な脆弱性を特定する
攻撃(Exploitation): 脆弱性を実際に悪用してアクセスを取得する。Metasploit, Burp Suite, sqlmap などのツールを使用する
報告: 発見事項、リスク評価、修正推奨事項をまとめたレポートを作成する
テストの種類
- ブラックボックス: テスターにシステムの内部情報を提供しない。外部攻撃者に近い条件
- ホワイトボックス: ソースコード、ネットワーク構成図、認証情報などを提供する。より網羅的な検証が可能
- グレーボックス: 一部の情報のみ提供する。内部犯行のシナリオに近い
テストの種類は目的に応じて選択します。
初回はブラックボックスで外部からのリスクを把握し、その後ホワイトボックスで内部の問題を深掘りするアプローチが一般的です。
