ペネトレーションテストとは、組織のシステムに存在する脆弱性の発見を試みるために、サイバーセキュリティの専門家が実施するセキュリティテストです。ペネトレーションテストでは、ハッカーが使うさまざまな戦術や手法を用いて、攻撃をシミュレーションします。目的は、組織のセキュリティ態勢を改善することです。こうしたシミュレーション演習により、企業は自社のセキュリティ対策について、偏りのない第三者からのフィードバックを得られます。
今日の脅威環境は急速に進化しているため、組織から脆弱性やリスクを完全になくすことは不可能です。組織のセキュリティ態勢がどれほど堅牢でも、リスクは依然として存在します。しかし、どれほど小さなリスクであっても把握できていなければ、組織は多大な損害を被る可能性があります。セキュリティおよびリスク評価のフレームワークにペネトレーションテストを組み込むことで、組織は潜在的なセキュリティリスクに効果的に対処できます。
ペネトレーションテストツールの種類
ペネトレーションテスターは、ペネトレーションテストの計画と実行に複数のツールを使用します。
- 偵察ツールは、標的となるアプリケーションやネットワークの情報を収集します。
- 脆弱性スキャナーは、テスターがアプリケーションの脆弱性や設定ミスを明らかにするのに役立ちます。
- Webプロキシツールを使うと、ペネトレーションテスターは組織のWebサーバーとブラウザー間の通信を変更したり、傍受したりできます。
- エクスプロイトツールを使うと、ペネトレーションテスターはテスト中に組織を攻撃できます。
- 侵入後ツールは、ペネトレーションテスターの侵入痕跡を消去するために使われます。
ペネトレーションテストの種類
これらのペネトレーションテスト手法により、テスターはさまざまな種類のテストを実施でき、組織は事前に警告を受けられます。
ネットワークインフラストラクチャ
最も一般的なペネトレーションテストの1つであるネットワークインフラストラクチャテストでは、ネットワークインフラストラクチャの脆弱性を評価します。対象は、サーバー、エンドポイント保護システム、ネットワークトラフィック、ルーター、ネットワークサービス、サードパーティ製アプライアンス、レガシーデバイスなどに及びます。
ネットワークペネトレーションテストは、一般的なネットワークベースの攻撃から組織を保護することを目的としています。ネットワーク攻撃は、次世代侵入防止システムの回避などの内部インフラストラクチャ、または設定ミスのあるファイアウォールの突破などの外部インフラストラクチャを標的にする場合があります。
Webアプリケーション
Webアプリケーションのペネトレーションテストでは、アプリケーションプログラミングインターフェース(API)やWebアプリケーションの脆弱性を明らかにします。ネットワークとWebアプリケーションには重複する部分があるものの、ネットワークテストと比べて、はるかに対象が絞られ、厳格で、時間のかかるテストです。
Webアプリケーションテストの強度に大きく影響するのは、現在のWebアプリケーションの普及度、複雑さ、一般公開性が、外部攻撃対象領域の大部分に大きく寄与していることです。
Webアプリケーションを悩ませる問題には、クロスサイトスクリプティング、脆弱な暗号化や認証、SQLインジェクションなどがあります。
物理
物理ペネトレーションテストでは、組織の物理ネットワークインフラストラクチャへの脅威をシミュレーションし、組織の物理的なセキュリティに焦点を当てます。攻撃者が情報や有効な認証情報を使ってセキュリティの侵害を試みたり、建物へのアクセスを試みたりすることがよくあります。
攻撃者が侵入に成功すると、情報収集のために盗聴したり、業務環境に不審なデバイスを設置して内部ネットワークへのリモートアクセスを可能にしたりする機会を得ます。こうしたテストは、建物や情報への外部からのアクセスを制限せずにデジタルセキュリティツールとフレームワークだけに注力しても、デジタルネットワークセキュリティの取り組み全体が無効になることを組織に再認識させます。
ワイヤレス
このテストでは、ワイヤレスネットワークの脆弱性を探します。脆弱なワイヤレスネットワーク設定や不十分な認証を特定し、悪用します。攻撃者は、設定、認証、プロトコルを標的にして、有線ネットワークへのリモートアクセスを試みる可能性があります。
ワイヤレスペネトレーションテストでは、保護されていないオープンなゲストネットワークにデバイスを接続する企業ユーザーを悪用できるか試すこともあります。
ソーシャルエンジニアリング
サイバー攻撃の大部分は、ソーシャルエンジニアリングに起因します。そのため、ソーシャルエンジニアリングテストでは、フィッシングなどのソーシャルエンジニアリング手法をシミュレーションします。ソーシャルエンジニアリングは人為的ミスや判断の誤りに大きく依存するため、こうしたテストによって、組織の従業員がこのような巧妙な攻撃をどの程度受けやすいかを明らかにできます。
関連記事:クラウドがダウン:障害から組織を守る方法
ペネトレーションテストの手順
情報収集
情報収集の段階では、ペネトレーションテスターが標的組織の仕組みや潜在的な弱点を理解するための情報を集めます。ネットワークスキャンや列挙を通じて、受動的なリソースを活用しながら標的組織とやり取りするため、難しいステップになる可能性があります。
ペネトレーションテスターは、テスト対象の組織に関する情報を収集するため、さまざまなペネトレーションツールやリソースを利用します。インターネット上のフットプリント、内部フットプリント、検索エンジンへのクエリ、ドメイン名検索、テールゲーティングなどのツールや手法を使用できます。
偵察
前の段階で予備情報を収集した後、ペネトレーションテスターはそれを分析するために偵察を行います。利用可能な情報だけでなく、ネットワーク構成、システムの説明などの追加情報も分析し、見落とされたり、発見されなかったり、意図的に隠されたりする情報を確実に補います。
特にネットワークペネトレーションテストでは、偵察の実施が重要です。
発見とスキャン
発見とスキャンのステップでは、前の2段階で収集した情報を使い、開いているポートやサービスなどを明らかにするとともに、資産をスキャンして脆弱性を発見します。ペネトレーションテスターは自動化ツールを使って前述のスキャンを実施し、弱点を発見できます。追加のデバイス、システム、サーバー、ホストデバイス上の開いているポート、クエリポートを発見し、それらの資産で稼働しているサービスを特定することも可能です。
その後、テスターはさまざまな侵入試行に標的システムがどのように応答するかを理解しようとします。スキャンには、アプリケーションのコードを調べて実行時の挙動を推定する静的解析があります。静的解析ツールは、1回のスキャンでアプリケーションのコード全体を解析できます。また、アプリケーションのコードを実行中の状態で調べる動的解析によって行うこともできます。アプリケーションのパフォーマンスをリアルタイムで把握できるため、こちらの方が実用的なスキャン方法です。
脆弱性評価
次の論理的なステップは、脆弱性評価を実施し、脅威アクターがテスト対象のテクノロジーや環境にアクセスする可能性のあるセキュリティ上の抜け穴を特定することです。重要な作業ではありますが、ペネトレーションテストの代わりに実施してはなりません。
エクスプロイト
エクスプロイトの段階では、ペネトレーションテスターが、特定した脆弱性と前段階で行ったマッピングに基づき、組織のシステムのどこまで侵入できるかを確認します。テスターは、組織の資産に対する脅威の潜在的な被害を明らかにすることを目指し、脆弱な資産の侵害を試みるために、カスタムのエクスプロイト手法と一般公開された手法の両方を使うことがよくあります。
ただし、ミッションクリティカルな資産に悪影響が及ぶのを避けるため、このステップは慎重に実施する必要があります。ペネトレーションテスターは、エクスプロイトの手法を詳細に説明し、双方の認識を一致させるとともに、侵入の範囲と程度を決定する必要があります。
最終分析とレビュー
エクスプロイトの後、テスターは特定した脆弱性の深刻度と、組織内の他の資産やネットワークへの影響を評価します。組織との良好なコミュニケーションを維持しながら、脆弱性の証拠として侵害された資産に関する情報をできる限り収集します。
報告
組織は、ペネトレーションテストが成功した後に学びを得る必要があります。そのため、報告はペネトレーションテストで最も重要なステップだと言っても過言ではありません。組織の今後の行動を方向づけるからです。報告書は包括的かつ有益なものでなければならず、少なくともテストの全段階、組織のセキュリティ態勢の強みと弱み、脆弱性、明らかになった問題を修正するための推奨事項を網羅する必要があります。
企業にとってのペネトレーションテストのメリット
組織のソフトウェア、ハードウェア、人材に存在する脆弱性を明らかにするという明白かつ最大のメリットに加え、ペネトレーションテストは企業にさらに多くの価値をもたらします。
サイバー攻撃への準備状況の評価
ペネトレーションテストを通じて、組織はセキュリティチームのサイバー脅威への準備状況を測定できます。攻撃の防止や対応、問題の修正において、チームが効率的に機能しているかを評価できます。これにより組織は、システムだけでなくセキュリティ担当者も改善するための適切な対策を講じられます。
事業継続の確保
サイバー脅威は企業の存続を脅かします。収益の減少、顧客とその信頼の喪失、業務停止などを引き起こすことが多いためです。ペネトレーションテストは、こうした脅威を企業に認識させ、脅威から自社をより確実に守れるようにします。
信頼の構築
今日の企業にとって、さまざまなステークホルダーからの信頼は長期的な存続の鍵です。セキュリティ侵害によって機密データの露出や喪失、金銭的損失、顧客への重要サービスの提供拒否が生じる可能性があるため、ステークホルダーの信頼を守ることを企業の優先事項にすべきです。
ペネトレーションテストにより、企業は自社の安全性を評価し、セキュリティと安全性に対する信頼度をステークホルダーに継続的に伝えられます。
コンプライアンス
ペネトレーションテストは、企業が遵守できていない可能性のある規制を特定し、コンプライアンス違反への対処方法を知らせるのに役立ちます。
関連記事:オープンソースのネットワーク監視ツールのベスト一覧
ペネトレーションテストの課題
人員とコスト
ペネトレーションテストは定期的に実施する必要があるため、組織にとってコストがかかる可能性があります。また、テスターがスキルや経験、提供された機密情報や資産へのアクセス権を悪用しないことを、組織がテスターに対して十分に信頼する必要もあります。
バグと欠陥
データの破損や紛失、機密データの露出、サーバーのクラッシュは、効果のないペネトレーションテストによって生じる結果の一例です。このようなテストは、非現実的なテスト条件を使用した結果、意図せず組織のセキュリティ態勢を弱めてしまう可能性があります。