ペネトレーションテストとは
ペネトレーションテストとは、稼働しているシステムやネットワークに対して、実際のハッカーと同じ手法で擬似的にサイバー攻撃を行い、侵入できる隙(セキュリティ上の欠陥や脆弱性)がないかを検証するテストのことです。「侵入テスト」とも呼ばれます。
単に「脆弱性のリスト」をツールで自動検知するだけのテストとは異なり、ペネトレーションテストは「特定の目的(例:機密データの奪取や管理者権限の乗っ取り)が実際に達成できてしまうか」をセキュリティの専門家(ホワイトハッカー)が手動を交えて調査します。これにより、複数の脆弱性が組み合わさった複雑な侵入経路や、セキュリティ機器の設定ミスなど、自動ツールでは見つけにくい「生きたシステムの弱点」を洗い出し、実用的な対策を立てることができます。
具体例
企業のネットショップがオープンする前に、外部からの侵入に耐えられるかを検証するテストの例です。
- テスターの行動:ハッカーの視点で、公開されているWebサイトの検索窓や管理用ログイン画面に様々な入力値を送り込み、侵入を試みる。
- 結果の発見:管理画面のパスワード設定が初期状態のままであることを見つけ、そこからサーバーの内部情報にアクセスすることに成功する。
- 報告書作成:ハッカーが侵入した手順をまとめ、「パスワードポリシーの強化と二要素認証の導入」を改善案として提示する。
もう少し詳しく
ペネトレーションテストは、攻撃対象のITインフラ(ネットワーク、OS、Webアプリケーション、社内LAN、物理的な侵入経路など)に対して、攻撃者(ハッカー)の視点と技術を用いて、擬似的な侵入実験を行う手法です。
テストのプロセスは以下の流れで行われます。
- 情報収集(偵察): 対象システムのドメイン情報、IPアドレス範囲、稼働しているサービスやOSのバージョンなどを調査します。
- 脆弱性スキャン: 自動ツール等を用いて、システムに存在する公知の脆弱性を洗い出します。
- 悪用と侵入: 見つかった脆弱性や設定不備を利用して、標的システムへの侵入を試みます。
- 権限昇格と内部探索: 侵入した足がかりから、システム管理者の権限を奪取し、社内の他の重要システム(ドメインコントローラや機密データベース)へネットワーク的に横展開して目的のデータを探索します。
- 報告と改善策の提示: 侵入に成功した経路と、それによって生じるビジネス上のリスク、具体的な修正対策をまとめたレポートを作成し、クライアントに報告します。
このように、個々の脆弱性を指摘するだけでなく、「ビジネスにどれだけ重大な実害が及び得るか」を証明する点が、通常の「脆弱性診断」との最大の違いです。
試験でのポイント
試験では、ペネトレーションテストの目的や特徴について問われます。特に、「脆弱性診断(脆弱性スキャン)」との違いがポイントです。
脆弱性診断は「システム全体に存在する脆弱性を網羅的に洗い出すこと」を目的とし、ツールによる自動スキャンが主体となります。一方、ペネトレーションテストは「特定の攻撃シナリオに基づいて、実際にシステムに侵入できるか、機密データまでたどり着けるかという防御力を手動を交えて検証すること」を目的とします。この目的の違いとアプローチの差を明確に区別しておきましょう。
関連する用語
関連する用語には、システム全体の脆弱性を網羅的に検出する「脆弱性診断」、サイバー攻撃を実行する善意の技術者である「ホワイトハッカー」、および攻撃の糸口となるセキュリティ上の欠陥である「脆弱性(ぜいじゃくせい)」があります。