サイバー攻撃はますます巧妙化しており、ペネトレーションテストは組織の防御を評価する最も効果的な方法の1つであり続けています。現実世界の攻撃をシミュレーションすることで、ペネトレーションテストは脅威アクターに悪用される前に脆弱性を明らかにします。
ただし、ペネトレーションテストのプログラムを開始する前に、関係するフェーズを理解し、基本的なセキュリティ対策が整っていることを確認することが重要です。多くの組織は、日常的なリスクを低減し、攻撃対象領域を縮小する信頼性の高いサイバーセキュリティツールで防御を強化することから始めます。
- McAfee – ウイルス対策とエンドポイントセキュリティ
- Bitdefender – 高度な脅威防御
- Keeper – パスワード管理と情報漏えい監視
- Norton – IDとデバイスの保護
- Malwarebytes – マルウェアとランサムウェアの駆除
これらのツールは、ペネトレーションテストで明らかになる可能性のある一般的な脆弱性の緩和に役立ちます.
「ペネトレーションテストに最適なツール」をご覧ください
ペネトレーションテストの7つのフェーズとは?
ペネトレーションテストのフェーズを5つとする組織もあれば、6つまたは7つとする組織もあります。また、各フェーズのプロセスが同じであっても、組織によってフェーズの名称が異なる場合があります。
テストフェーズの数に違いがあるのは、テスト前とテスト終了後に実施される2つの段階を、一部の組織が見落とすことがあるためです。これらはテストの技術的な部分ではありませんが、セキュリティにとって極めて重要であることが分かっています。本記事では、ペネトレーションテストに必要なプロセスを包括的に把握できるよう、7つすべての段階を取り上げます。
ペネトレーションテストの7つのフェーズは次のとおりです。
- 事前準備
- 偵察またはオープンソースインテリジェンス(OSINT)の収集
- スキャンまたは発見
- 脆弱性評価:アクセスの獲得
- エクスプロイト:アクセスの維持
- 侵入後の活動、報告、リスク分析
- 修復
1. 事前準備
事前準備は省略されがちなフェーズです。しかし、ペネトレーションテスターと組織が認識を共有するための基本的な段階です。Built Inは、ペネトレーションテスターを雇って、対象のネットワーク上で自由に作業させるのは悪い考えだと説明しています。事前準備のフェーズでは、ペネトレーションテスト全体の範囲、ロジスティクス、エンゲージメントルール、スケジュールを、明確な目標、対象、目的とともに設定します。
何をテストする必要があり、どのようなテストが求められるのかについて共通認識がなければ、ペネトレーションテストの結果は不完全、あるいは無関係なものになります。事前準備はテストを計画する段階であるため、組織もペネトレーションテスターも、この最初のステップを経ずに開始すべきではありません。
さらに、システムを徹底的にテストするには、明示的な同意や承認がなければ違法となる行為をペネトレーションテスターが実行する必要があります。そのため、組織はテスターとの契約に明確なエンゲージメントルールも定めるべきです。事前準備の段階で締結する契約には、重要な資産、テストの主な目標、その他の予防措置も記載する必要があります。
2. 偵察またはオープンソースインテリジェンス(OSINT)の収集
EC-Council Cybersecurity Exchangeは、偵察とはテスターがシステムに関する情報を可能な限り収集する段階だと説明しています。しかし、無作為なデータを集めるだけではありません。目的は、実行するテストに関連するデータを収集することです。これが、第1段階が重要である理由です。ペネトレーションテストを計画することで、テスターは効果的な攻撃戦略を立てるために、どの種類のデータを収集するかをより正確に判断できます。
偵察には、テスターが対象システムに直接関与するアクティブ偵察と、公開情報を取得するパッシブ偵察があります。通常、包括的なテストを行うテスターは両方の手法を使います。
アクティブなデータ収集には、ネットワーク、オペレーティングシステムやアプリケーション、ユーザーアカウント、ドメイン名、メールサーバーなどが含まれます。一方、パッシブな手法やオープンソースインテリジェンスでは、ソーシャルメディア、Webサイト、税務情報、その他の公開情報を利用します。
ネットワーク情報の収集に使われるツールには、CensysやShodanなどがあります。偵察ツールは外部公開されたIPアドレスをスキャンし、そのレスポンスヘッダーをインデックス化するため、ペネトレーションテスターは能動的にスキャンを実行しなくても外部ネットワークの全体像を把握できます。
ペネトレーションテストのデータ収集フェーズで使われるOSINT Frameworkは、この段階で利用できるオープンソース情報のリソースがいかに膨大かを示しています。Cipherは、ペネトレーションテスターが組織内の開放された侵入口や脆弱性を見つけるため、網羅的なチェックリストを使うと説明しています。
3. スキャンまたは発見
このフェーズでは、テスターが侵入口を探します。理想的には、可能な限り多くの開放ポートを特定します。この段階では、開放ポートの特定やネットワークトラフィックの確認に複数のツールが使われます。
発見フェーズでは、Nmapなどのツールを使ってスキャンと資産分析を行います。Nmapは、パケットを送信して応答を分析することで、コンピューターネットワーク上のホストやサービスを発見するネットワークスキャナーです。このフェーズでは、テスターはオペレーティングシステム、開放ポート、稼働中のサービスなど、利用可能な資産や情報を把握できます。
テスターがホワイトボックステストを実施する場合、対象とするIP、資産、その他のネットワーク情報のリストは、組織からすでに提供されている可能性があります。しかし、グレーボックステストやブラックボックステストでは、実際の攻撃をシミュレーションし、こうした情報なしで作業します。そのため、グレーボックステストやブラックボックステストでは、このフェーズが重要になります。
「脆弱性スキャンに最適なツール」をご覧ください
4. 脆弱性評価:アクセスの獲得
前のフェーズで収集したデータを使い、テスターは脅威モデルの構築を始め、脆弱性を評価します。対象を特定し、攻撃ベクトルをマッピングします。
ペネトレーションテスターは、次のような領域や価値の高い資産をマッピングして特定します。
- 従業員データ
- 顧客データ
- パートナーおよびサプライチェーンのデータ
- 技術データ
- 経営陣に起因する内部および外部の脅威
- ベンダー
- ポート
- ネットワーク
- アプリ
- プロトコル
ペネトレーションテスターは、National Vulnerability Database(NVD)のようなリソースを利用できます。NVDは、Common Vulnerabilities and Exposures(CVE)データベースで公開されたソフトウェアの脆弱性を分析する、脆弱性管理データのリポジトリです。EC-Councilは説明しています。手動で脆弱性スキャンを行うこともできますが、テスターは通常、Tenable、Rapid7、Qualys、Nmapなどのツールを使います。
一部のセキュリティ組織では、この段階を「アクセスの獲得」と呼んでいます。Impervaは、テスターがクロスサイトスクリプティングやSQLインジェクション、バックドアなどのWebアプリケーション攻撃を使い、脆弱性を見つけて悪用すると説明しています。権限の昇格、データの窃取、トラフィックの傍受などがその手法です。
5. エクスプロイト:アクセスの維持
この段階では、特定された脆弱性が悪用可能かどうかをテスターが検証します。アクセスの維持とも呼ばれるエクスプロイトは、テスターが対象システムへの侵入とアクセスを試みるため、最も重要な段階の1つです。
このペネトレーションテストのフェーズでは、テスターが対象システムへのアクセスを試み、特定された脆弱性を悪用します。通常、Metasploitのような、現実世界の攻撃をシミュレーションするツールを使います。ペネトレーションテスターは組織の資産に責任を負っているため、この段階ではシミュレーションによってシステムが侵害されたり損傷したりしないようにする必要があります。
現実のサイバー攻撃は数分から数時間に及ぶ可能性があるため、前のフェーズで特定された脆弱性は、悪意ある攻撃者が悪用できるよう、持続的なものでなければなりません。一般に、テスターはデバイスやシステムのroot権限または管理者権限を狙います。
Metasploitが使われるのは、脆弱性に対して公開されているエクスプロイトを見つけて実行するプロセスを効率化できるためです。脆弱性が安定していることを確認するだけでなく、このフェーズでは侵害による影響も測定します。たとえば、テスターがデータを暗号化または外部へ持ち出せるか、ゼロデイ攻撃やランサムウェア攻撃をどの程度シミュレーションできるかを確認します。
関連記事:Metasploit Framework入門:ペネトレーションテストチュートリアル
ペネトレーションテスト後の次のステップとは?
ペネトレーションテストの最終段階は、報告と修復です。これらのフェーズでは、脆弱性の発見と、その悪用によって生じる影響をまとめる中で、組織とペネトレーションテスターが取るべき次のステップを明らかにします。これらの段階で、セキュリティ体制を強化するための基盤が提示され、その後実行に移されます。
6. 侵入後の活動、報告、リスク分析
多くの組織はこのステップを報告段階に限定していますが、侵入後のクリーンアップ活動など、その他の作業もペネトレーションテストのこの段階に含める必要があります。
Cipherは、テストが完了し、報告書と推奨事項が提示されたら、テスターは環境をクリーンアップする必要があると説明しています。これは、システムを発見時とまったく同じ状態に戻し、IT環境への侵入に使ったアクセスを再設定し、その他に加えた変更を復元することを意味します。クリーンアップ活動は、修復とペネトレーションテストの最終フェーズへの道筋も整えます。
一般的なクリーンアップ活動:
- 侵害されたシステムから実行ファイル、スクリプト、一時ファイルをすべて削除する
- 設定をペネトレーションテスト前の元のパラメーターに戻す
- 環境にインストールされたルートキットをすべて排除する
- 侵害されたシステムへの接続用に作成したユーザーアカウントをすべて削除する
報告書は、テストで作成される最も重要な文書と見なされます。これは、ペネトレーションテスターを雇った組織への最終報告です。報告書に基づき、組織は対策を講じ、脆弱性を修正し、必要に応じてシステムとスタッフのセキュリティを強化できます。
報告書は明確かつ透明でなければなりません。テスターは、すべてのフェーズ、対象となった資産、テストの種類と手法、発見された脆弱性とその影響を記録する必要があります。さらに、脆弱性を修正またはパッチ適用するためのガイドを含めることもできます。
ペネトレーションテストの報告書には、次の内容が含まれます。
- 悪用された具体的な脆弱性
- アクセスされた機密データ
- ペネトレーションテスターが検知されずにシステム内にとどまれた時間
組織がペネトレーションテスターにサービスを依頼する前に、匿名化したサンプル報告書の提出を求めるのは一般的です。これにより、ベンダーが用いる基準や詳細を確認できます。優れたペネトレーションテスト報告書では、発見事項が整理され、リスクレベルに応じて優先順位付けされています。
関連記事:SIEMシステムのテストと評価:Rapid7 InsightIDRのレビュー
7. 修復
修復はペネトレーションテストの最終フェーズであり、組織の責任範囲に含まれます。報告書と発見事項に加え、ペネトレーションテスターとのやり取りで収集した情報、特にホワイトボックスペネトレーションテストを実施した場合はその情報も利用して、組織は明らかになった脆弱性に対処するため、システムの変更に着手できます。
必要なリソースが不足している組織にとって、修復は特に困難になる可能性があります。そのため、修復の手引きを含む報告書が最も高く評価されます。修復後は、更新したシステムやその他のシステムをテストしたり、異なる種類のペネトレーションテストを実施したりするため、フェーズが再び始まることがよくあります。
サイバー攻撃が増加する中で、業界がレジリエンスを構築し続けるには、ペネトレーションテストのフェーズを理解することが重要です。サイバー犯罪者は、自動化された従来型のサイバーセキュリティソリューションを回避するための手法を駆使します。ペネトレーションテストで現実の攻撃をシミュレーションすることは、現在セキュリティ業界が持つ最も効果的なツールの1つであることが明らかになっています。
参照:クイック用語集:サイバーセキュリティ対策(TechRepublic Premium)
エクスポージャー管理:継続的なセキュリティの視点
ペネトレーションテストはある時点での脆弱性を明らかにしますが、エクスポージャー管理はより広い視点に立ちます。悪用可能性、ビジネスへの影響、攻撃者の行動を考慮しながら、組織全体のリスクを継続的に特定、優先順位付け、追跡します。
ペネトレーションテストと組み合わせることで、エクスポージャー管理は脆弱性を発見するだけでなく、状況と時間の経過を踏まえて対処することを確実にします。
これらのアプローチを組み合わせることで、より包括的な防御戦略が形成されます。それはセキュリティのギャップを明らかにするだけでなく、継続的な改善も促すものです。サイバー脅威が進化する中で、プロアクティブなテストと継続的なエクスポージャー管理の両方を採用する組織は、安全性とレジリエンスを維持し、備えを整えるうえで、より適切に対応できるようになります。
Matt Gonzalesがこの記事に寄稿しました。

