侵入テストは、ハッカーに悪用される前にセキュリティの脆弱性を発見し、組織をサイバー脅威から守るうえで不可欠です。
自社でペネトレーションテストのプログラムを構築することも、外部企業に委託することもできます。侵入テストサービスは一般的になっており、多くのセキュリティ企業が提供しています。しかし、高額になる場合があり、頻繁に実施すべきものでもあります。そのため、社内に専門知識を持つ人材がいるなら、自社で侵入テストプログラムを構築することを検討すべきです。そうすれば、この重要な脆弱性・リスク管理プロセスをより適切に管理でき、セキュリティ担当者の知識と準備も充実します。
自社でペネトレーションテストチームを編成すると決めたら、最初のステップは、最も重要な資産を評価する計画を作成し、それらを保護できるようにすることです。
以下の最適な侵入テストツールおよび最適なオープンソース侵入テストツールを参照。
侵入テストプログラムはどのように機能するのか?
侵入テストは脆弱性スキャンとは異なり、人間のペネトレーションテスターがハッカーと同じように脆弱性を探ります。
侵入テストでは、セキュリティ専門家(倫理的ハッカー、ホワイトハッカー、「レッドチーム」とも呼ばれます)が、システムに対する実際の攻撃をシミュレーションします。シミュレーションによって、テスターは脆弱性、エラー、またはネットワークインフラの弱点を、攻撃者に悪用される前に特定できます。侵入テストは攻撃的セキュリティのアプローチとして知られ、組織をサイバー犯罪者の一歩先に保ちます。
侵入テストプログラムは、個々の侵入テストを超え、組織が従うべき青写真を示すものです。プログラムでは、テストを何のために、いつ、なぜ、どこで実施すべきかを定めます。侵入テストプログラムは継続的かつ詳細で、スケジュールに沿って実施し、必要に応じて見直す必要があります。
プログラムでは、システム内の脆弱性を特定して修正するため、一連のペネトレーションテストを定義します。侵入テストプログラムの概要が定められているため、セキュリティ責任者は、テストを何回実施し、どこでいつ行うべきかを把握できます。組織がすべての侵入テストを外部委託する場合でも、ベンダーやバグバウンティプログラム、あるいはサービスとして侵入テストを提供するホワイトハッカーと契約する際の明確な道筋になります。
関連記事: 侵入テストと脆弱性テストの違い:重要な相違点。
侵入テストプログラム構築の10ステップ
侵入テストでは、準備が重要です。システムに対してベンダーに無作為なテストを実施させても、欠陥の評価・修正やパフォーマンスとセキュリティの改善に必要な情報は得られません。
侵入テストの仕組みと、何を達成したいのかを詳しく理解することが不可欠です。侵入テストプログラムの設計は、困難に感じられるかもしれません。ここでは、そのプロセスを進めるための簡単な10のステップを紹介します。
1. 予算と人材を確保する
侵入テストは費用対効果が高く、重要なメリットがありますが、組織はまず予算を確保し、実施に必要な人材を確保しなければなりません。テストは長期にわたって継続すべきであるため、これを組織が最初に取り組むステップにすべきです。組織は、プログラムを最後まで実行するために必要なリソースをすべて確保する必要があります。
2. 侵入テストプログラムチームを編成する
プログラムの構築を始める前であっても、組織が最初にすべきことは、適切なチームと人材を見つけることです。役割と責任を定義し、チームメンバーが必要なスキルと認定資格をすべて備えていることを確認します。チームは、プログラムを構築するために他の部門や経営陣とも連携する必要があります。
チームを編成し、目標を検討する際には、ペネトレーションテストの対象に必要なツールを考え、それらのテストを実施するスタッフを見つけるか、育成します。想定される攻撃経路と、Active Directory、重要なアプリケーションのデータベース、コードリポジトリなど、保護すべき重要な資産を検討し、それらのセキュリティを検証するために必要なテストを決定します。
関連記事:
3. デジタルサーフェスをマッピングし、資産インベントリを構築する
侵入テストチームは、デジタルインフラ全体、ネットワーク、IoT(モノのインターネット)デバイス、エッジ、クラウドリソースを包括的にマッピングする必要があります。さらに、マップにはデータと資産のインベントリを含め、入力、生成、収集からデータの配布、販売、廃棄に至るまで、データサイクルに関する関連情報をすべて盛り込む必要があります。
システム全体を明確に把握すると、各コンポーネントの場所を迅速に特定でき、保護すべき対象を俯瞰できます。今後のプロジェクトにも留意し、マップとインベントリに含めてください。
4. ビジネス目標を定義する
運用に関する他のプログラムと同様に、ペネトレーションテストはビジネスの使命、目標、ターゲットと整合させる必要があります。顧客データベースや重要なアプリケーションなど、業務に不可欠な資産に重点を置きます。ビジネス目標は時間の経過とともに変化し、見直しが必要になる場合があります。そのため、時間をかけて侵入テストを実施する際には、チームはこの点に立ち返らなければなりません。
5. 資産の優先順位を設定する
ビジネス目標には、売上の増加、景気減速への対応、事業転換による混乱への対応、顧客離れの防止などがあります。会社の目標が何であれ、その成果を生み出す資産のセキュリティを確保し、テストしなければなりません。
データインベントリとデジタルサーフェスのマップを使って、資産の優先順位を特定します。開発中の今後のプロジェクトに重要なものがある場合は、必ず含めてください。
ペネトレーションテストには、ハッカーがシステムについて何も知らない状態での攻撃をシミュレーションするブルートフォース、つまりブラックボックスアプローチと、システムアーキテクチャに関する知識を持つ状態で行うホワイトボックスアプローチがあります。この2つを組み合わせたものが、グレーボックスアプローチです。
ブルートフォース攻撃のシミュレーションでは、ネットワーク、Webアプリケーション、ユーザーを調査して弱点を探します。一方、ホワイトボックスアプローチでは、高度なコード分析を使ってアプリケーションの弱点を調べることがあります。
6. レベル別の優先順位を設定する
自社では、数日間またはそれ以上続く定期テストを複数回実施することになります。保護すべき対象が明確になったら、先に実施すべきテストと、その後に行うテストの優先順位を設定します。
さらに、テストの実施には費用がかかるため、優先順位に応じて異なるシステムのテストを分散させることを検討します。通常、優先されるテストの対象は次のとおりです。
- 脆弱性の悪用
- コード実行
- ラテラルムーブメント
- データの持ち出し
- アプリケーションの脆弱性
- 入力値の検証
- 認証
- 認可の適用
- ベンダーの信頼性とサプライチェーンセキュリティ
7. テストの種類と回数を定義し、スケジュールを設定する
企業がデジタル領域へ進出するにつれて、データ、システム、ネットワーク、デジタル資産は変化していきます。侵入テストで確認できる企業のITインフラは、特定の時点における状態にすぎません。
しかし、侵入テストプログラムを設計する際、企業はシステムの変化に合わせて長期的に保護できるよう、年次、四半期ごと、または月次で侵入テストを予定できます。また、どのテストを実施すべきかを理解するには、特定した資産の優先順位を常に重視しながら、フェーズや種類を含む侵入テストの仕組みを把握することが重要です。
関連記事: 侵入テストのフェーズと手順を解説。
8. コミュニケーション経路と認識を確立する
明確なコミュニケーション経路を確立することが重要です。侵入テストをサイロ化し、ITチームとセキュリティチームだけに限定してはなりません。経営幹部、データエンジニア、開発者、コンテンツ制作者、マーケティング・営業、製造、流通の各チームが、プログラムを認識している必要があります。
侵入テストは、エラー、設定ミス、弱点を学ぶためのものです。したがって、すべての従業員がセキュリティ向上に何らかの役割を果たせます。強固なセキュリティ文化を醸成するため、常にフィードバックを奨励しましょう。
9. 侵入テスターを選び、テストを実施する
侵入テストは、社内で実施することも、ベンダーを通じて実施することも、バグバウンティプログラムを利用することも、サービスとして侵入テストを提供する組織に依頼することもできます。
それぞれの方法には長所と短所があります。社内テストなら完全に管理できますが、実施するには専門家チームが必要です。一方、侵入テストを外部委託すると、ベンダーやプログラムによっては高額になる可能性がありますが、人材とリソースの多様性を高められます。最終的には、組織のリソース、データの重要性、セキュリティ対策への信頼度によって決まります。
10. 報告、修正、監視、再実施
侵入テストプログラムは、テストの終了時に終わるものではありません。各テストで脆弱性を明らかにし、パッチと修正策を提案する必要があります。脆弱性の修正は、侵入テストの最も直接的な目的です。
報告、修正、監視、再テストには時間がかかりますが、不可欠です。そうしなければ、弱点を特定するだけで、修正したり、パッチや緩和策が適用されたかを確認したりできません。この段階は、あらゆるレベルで組織の学習曲線とパフォーマンス曲線を改善するうえで重要です。
また、各テストの後、そして予定した一連のテストをすべて完了した後に、プログラムを見直して調整することも不可欠です。簡単に言えば、ステップ10は終わりではなく、再スタートしてステップ1に戻ります。
以下の最適なパッチ管理ソフトウェアとツールを参照。
ペネトレーションテストプログラムに関与すべきチーム
セキュリティチームとIT部門だけで構成された侵入テストプログラムは成功しません。組織のデジタル攻撃対象領域は、業務のあらゆる側面に及びます。
取締役会と経営陣は、十分な情報に基づいてビジネス上の意思決定を行うため、セキュリティについて知る必要があります。開発者はエラーから学ぶ必要があり、セキュリティにおける人的要素も、侵入テスト中にシミュレーションされるフィッシング攻撃に関わります。したがって、貢献度に応じて、全員がプログラムで何らかの役割を担うべきです。
一部の侵入テストでは攻撃をシミュレーションするものの、何をいつ攻撃するのかを会社に一切明かさない場合があることも理解しておく必要があります。こうしたブラインド攻撃は、セキュリティチームの対応パフォーマンスと対応時間を検証するため、現実のシナリオにできる限り近づけようとするものです。これはレッドチームとブルーチームの連携に近いアプローチです。
ハッカーは、サイバー犯罪者と同じように、従業員から認証情報を盗もうとする攻撃も行います。従業員がこれらのシミュレーションについて知らされていれば、テスト結果は現実的なものになりません。
エンジニアとプロダクトチームは、主にプログラムの報告、修正、監視の各フェーズに関与する必要があります。セキュリティチームと同様に、シミュレーションから学び、業務を改善していきます。
経営幹部は、侵入テストによってセキュリティのリスク、結果、現状をより深く理解できます。これにより、組織の上層から現場まで一貫したセキュリティ文化と共通認識が生まれ、日々のサイバーセキュリティ運用が円滑になります。
まとめ:ペネトレーションテストプログラムを始める
ペネトレーションテストプログラムを外部委託する場合でも、時間をかけてプログラムを策定すべきです。セキュリティチームとビジネスマネージャーの情報に基づく判断を支援し、ベンダーやサービスプロバイダーとの話し合いの指針にもなります。
侵入テストプログラムは、犯罪者に弱点を見つけられ、悪用される前に特定することだけが目的ではありません。組織のパフォーマンス、セキュリティ、認識、文化を可視化し、ビジネスのターゲットや目標の達成を支援します。何を保護すべきかを判断するには、まず何が重要なのかを知らなければなりません。
次の記事: サイバー脅威ハンティングとは?定義、手法、手順。





