ペネトレーションテストとは?脆弱性診断との違いについてわかりやすく解説
2024.12.20
デジタル化が進むにつれ、サイバー攻撃の脅威も日増しに大きくなっています。
サイバー攻撃に備える手段として、“ペネトレーションテスト”という言葉を耳にしたことがある方も多いのではないでしょうか?
ペネトレーションテストは、サイバー攻撃への耐性を確認するために自社のシステムに疑似的な攻撃を仕掛けて、侵入されるリスクがあるかどうかを検証するテストです。
本記事では、ペネトレーションテストの実施を検討している方に向けて、ペネトレーションテストの概要、脆弱性診断との違い、メリット・デメリット、実施方法について詳しく紹介します。
ペネトレーションテストとは
ネットワークやパソコン、サーバ、セキュリティシステム、WebやスマホなどのアプリケーションといったIT資産のサイバー攻撃への耐性を検証する手法のひとつがペネトレーションテストです。実際の攻撃を想定してネットワークに接続し侵入できるか確認するため、別名「侵入テスト」とも呼ばれています。攻撃者が対象の脆弱性を利用し侵入、攻撃を実行した場合にその攻撃が実現するのか、検証することができます。
ペネトレーションテストでは、診断者が実際の攻撃者役となり、ツールや脆弱性を利用して侵入を試みます。実際に攻撃者が使用する攻撃手段などを用いて、依頼企業があらかじめ定めた対象に対して擬似的に攻撃を行います。そのプロセスの中で、実際に攻撃が成立するのか確かめます。想定されるサイバー攻撃は、例えば、フィッシングメール、SQLインジェクション、DDoS攻撃、さらには金融サービスにおけるATM破壊といった物理的な攻撃を含め、多種多様なアプローチが対象となります。
脆弱性診断との違い
ペネトレーションテストと脆弱性診断の違いを、目的や手法の観点から説明します。
ペネトレーションテスト | 脆弱性診断 | |
---|---|---|
目的 | 攻撃シナリオに基づいたセキュリティの有効性の確認 | 脆弱性の大小問わず、定められた範囲での脆弱性の有無確認 |
手法 | 実際に攻撃する手法を真似して確認する | 診断ツールを用いて対応。必要に応じてガイドラインなどへの対応を確認 |
範囲 | 依頼元が指定した範囲 | 依頼元が指定した範囲 |
ペネトレーションテストも脆弱性診断も、サイバー攻撃から情報資産を守るために必要な評価です。目的に応じて適切なテスト手法を選択しましょう。
ペネトレーションテストのメリットとデメリット
ペネトレーションテストには、どのようなメリット・デメリットがあるのでしょうか。それぞれ、詳しくみていきましょう。
メリット
ペネトレーションテストの最大のメリットは、対象に対してリアルな攻撃を模擬的に実施することで現実に即したリスク評価ができることでしょう。
ペネトレーションテストは対象の状況に合わせて、人為的に攻撃シナリオを設計、そのシナリオを通じて見つけられた脆弱性やリスクを洗い出すことができるため、より現実的な状況把握や具体的な対策につなげることができます。
デメリット
ペネトレーションテストのデメリットは、以下のとおりです。
- テスト内容によってはコストがかさむ
- テスト実施者のスキルによって成果に違いがある
ペネトレーションテストは、対象に合わせて人為的にシナリオをカスタマイズし実行をするため、コストが高くなる傾向があります。
また、テスト実施者のスキルによって成果に違いが出ることもあるでしょう。依頼先の実績や経験を十分に確認してから発注するのが望ましいです。
ペネトレーションテストの種類と手法
ペネトレーションテストの種類と手法について、それぞれに分けて詳細を解説します。
ペネトレーションテストの種類
ペネトレーションテストは、内部ペネトレーションと外部ペネトレーションに大別されます。
それぞれ、どのようなテストを実施するのか具体例を交えて紹介します。
内部ペネトレーションテスト
内部ペネトレーションテストでは、外部からアクセスできない内部システムやネットワークを対象にしたテストです。攻撃者がすでに対象内部に侵入していることを前提に、評価を行います。
具体的には、以下のようなテストを実施します。
- データベース、機密情報への不正アクセス
- ネットワークを通じての他システムやデバイスへの侵入
- 内部人材による不正アクセスシミュレーション
外部ペネトレーションテスト
外部ペネトレーションテストは、インターネットからアクセス可能なシステムや機器に対する、外部から侵入・攻撃を想定したテストです。
具体的には、以下のようなテストを実施します。
- AWSやAzureなどのクラウド環境の設定ミスの探索
- 標的型メールを模擬したフィッシングメールの送信
- 公開されているAPIやサービスの脆弱性探索
ペネトレーションテストの手法
ペネトレーションテストの手法は、ホワイトボックステストとブラックボックステストの2つに分けられます。
ホワイトボックステスト
ペネトレーションテストをする前に、あらかじめシステムの構成やネットワーク図、使用しているソフトウェアやそのバージョンなど、詳細情報を共有してテストするのがホワイトボックステストです。
ホワイトボックステストのメリットは、内部構造を把握してテストするので、より詳細なテスト実施が可能になることです。設計書に沿ってテストを実施するので、潜在的な脆弱性や設計上の問題点を発見しやすく、性能面の評価もできます。
ブラックボックステスト
一方で、ブラックボックステストは、テスト前に内部情報を共有せず外部から確認できる情報のみを用いてテストを実施する手法です。
攻撃者が実際にサイバー攻撃する際、基本的には限られた情報の中で攻撃を試みますので、それに近い環境でのテストとなります。攻撃の糸口とされやすい箇所の発見や自社(対象システム)のセキュリティ対策成熟度を外的に評価するテストです。
ペネトレーションテストの実施方法
ここからは、実際にペネトレーションテストの主要なプロセスについて解説します。
実施手順は、以下のとおりです。
- 準備
- テスト実施
- レポーティング
それぞれについて詳しくみていきましょう。
1. 準備
まずは、テスト対象を決めます。対象となるシステムの環境や構成などを分析して、テスト範囲を設定した後、テスト用の攻撃シナリオを作成します。
事業運営に影響がでないよう、テスト期間のスケジュールを決めて実施に備えます。
2. テスト実施
事前に提供された情報や公開されている情報から、攻撃の足がかりとなるポイントを探します。該当箇所に対して、模擬的な攻撃を試み、発見された脆弱性や想定される被害リスクを導き出します。
テストは、サイバーキルチェーンのプロセスに合わせ、それぞれのフェーズに適したツールや対応で行われます。
3. レポーティング
ペネトレーションテストの結果をもとに、原因・結果と対策をまとめたレポートが作成されます。発見された脆弱性の修正提案、ビジネスに関する影響とリスクについて報告されるため、対策を検討しましょう。
リスクの早期発見のためにも、ペネトレーションテストは定期的に実施することを検討しましょう。次の章では、ペネトレーションテストを実施するタイミングや頻度についても紹介しています。
ペネトレーションテストの実施タイミングと頻度
ペネトレーションテストは定期的に実施する必要があることは前章で触れました。ここでは効果的に実施するための適切なタイミング、頻度について解説します。
タイミング
ペネトレーションテストの実施タイミングとして適しているのは、システムの運用が開始されたあとです。運用上の問題が顕在化しており、被害リスクのある脆弱性を発見しやすく高い効果が期待できるでしょう。なお、脆弱性診断は一般的にリリース前の実施が推奨されております。
もちろん、可能であれば運用前も含め、設計段階や開発直後、大規模な改修後など、任意のタイミングで複数回実施してください。
頻度
ペネトレーションテストの頻度は、組織の状況やシステム要件によって異なります。基準を決めるためには、セキュリティ要件や業界標準、リスク評価などを参考にして決定してください。
一般的には、年に1回程度実施が推奨されます。
(JPCERT/CC 「Web サイトへのサイバー攻撃に備えて」https://www.jpcert.or.jp/newsflash/2017080101.htmlより)
実施頻度は、以下の観点を踏まえて検討するようにしましょう。
- ビジネスの特性、システムの複雑性
- 直面している脅威、脆弱性の程度
- 全体で見た場合のシステム環境やセキュリティ対策の標準化、集約化の程度
最低でも年に1回を目安に、組織や運用状況に合わせて複数回実施も検討しましょう。
まとめ
本記事では、ペネトレーションテストとはどういったものか紹介しました。
システムの脆弱性診断は、依頼主が指定した範囲の脆弱性を特定するものですが、ペネトレーションテストは攻撃者目線で設計されたシナリオを基に被害リスクを診断します。
脆弱性診断だけではなく、ペネトレーションテストも組み合わせることで、より高度で実態に即したセキュリティ対策が効果的に行えるでしょう。