ペネトレーションテストとは、システムやアプリケーションに意図的に疑似攻撃を行い、脆弱性の有無を把握するテストです。攻撃者の視点に立ってセキュリティー対策を評価するため、現状の課題や優先的に対策すべき内容を把握しやすくなります。
本記事では、ペネトレーションテストの必要性や種類、実施する際の手順などを紹介します。セキュリティー対策の見直し・強化に取り組んでいる方は、最後までご覧ください。
ペネトレーションテストとは
ペネトレーションテストとはシステムやWebサイトなど、社内ネットワークに接続しているIT資産の脆弱性を調査するテストです。
ペネトレーションテストは標的型攻撃や脆弱性攻撃など、実際に仕掛けられる可能性のあるサイバー攻撃を疑似的に行う点が特徴です。
攻撃者の視点に立って攻撃を仕掛け、脆弱性の有無や悪用される可能性、影響範囲などを可視化するため、より実践に近いかたちで現状のセキュリティー体制を評価できます。
脆弱性診断とはサーバーやOS、ソフトウェアなどに存在する脆弱性の有無を評価するテストです。脆弱性は、不正アクセスやマルウェア感染などを招くセキュリティー上の欠陥です。設計ミスやプログラムの不具合など、さまざまな要因によって発生します。
ペネトレーションテストと脆弱性診断の違いは、診断の際に疑似的な攻撃を仕掛けるかどうかです。脆弱性診断の場合はシステムやネットワークへの侵入などは、実際に行いません。
既知の脆弱性パターンやチェックリストなどを活用してチェックを行い、脆弱性の有無を判断します。たとえば、IPAの「安全なウェブサイトの作り方」に書かれている記載項目は、脆弱性診断で活用される判断基準の一例といえます。
脆弱性診断は疑似攻撃を行わないため、ペネトレーションテストほど費用や期間がかからず、比較的実施しやすい点が特徴です。
ペネトレーションテストを行う必要性
ペネトレーションテストを実施すると、以下3つの効果が期待できます。
- さまざまなサイバー攻撃を想定して現状を評価できる
- 既存のセキュリティーツールが機能するかを把握できる
- 運用体制や管理手法の見直しにも役立つ
サイバー攻撃は多様化しており、情報漏えいを避けるにはさまざまな攻撃を想定し、セキュリティー対策を講じなければなりません。
その点、ペネトレーションテストでは不正アクセスや標的型攻撃、内部不正など、さまざまなサイバー攻撃を想定し、脆弱性の有無やセキュリティー対策を評価できる点がメリットです。
システムやアプリケーションなどに疑似的な攻撃を仕掛けるため、調査結果から優先度や緊急性の高い対策を把握できます。
また、テストの種類によっては内部不正を想定した調査も行えるため、内部統制の強化やセキュリティーポリシーの見直しにも役立ちます。
ファイアウォールやEDRなどの既存ツールが、実際のサイバー攻撃に対して機能するかどうか、テストを通じて確認できる点も効果の一つです。
たとえば、疑似的な攻撃を受けたファイアウォールが不正アクセスを検知・ブロックできているか、テストを通じて有効性を確認できます。
想定している結果が得られない場合は、既存ツールの設定内容見直しや新たなセキュリティーツールの導入など、対策が必要です。実際のサイバー攻撃を想定して既存ツールの有効性を確認できるため、被害に遭うリスクを抑えられます。
ペネトレーションテストは本来“技術的な脆弱性”の実証評価ですが、事前合意の範囲でフィッシング等のソーシャルエンジニアリングを組み込み、従業員の対応や運用ルールの実効性まで点検できます。
どれほど対策を整えてもリスクはゼロにならないため、テスト結果から人・プロセス・設定の問題点を可視化し、最小権限の徹底、手順書の改定、ログ監視強化、教育の再設計などに反映させることで、運用体制と管理手法の継続的改善につなげられます。
ペネトレーションテストの種類
ペネトレーションテストは内部テストと外部テスト、2種類に分けられます。自社が抱えている課題に応じて、テストの種類を選ぶことが重要です。
内部テストとは、攻撃者がすでにネットワーク内部に侵入していると想定し、疑似的な攻撃を仕掛けるテストです。メールシステムやデータベース、メインサーバーなど、外部からはアクセスできないシステムや機器が攻撃の対象になります。
内部テストでは、内部不正や標的型攻撃などを想定し、ネットワーク内部におけるセキュリティー体制に問題がないかを確認します。テストの結果を踏まえて課題や必要な対策・ツールを把握し、安全性の強化につなげるのが目的です。
また、必要に応じて入退室管理システムや防犯カメラが機能しているかなど、物理的なセキュリティー対策も実施します。
外部テストとは、外部からネットワークやシステム内への侵入を試みることを想定したテストです。攻撃対象はWebサイトやクラウドサービス、公開サーバーなど、外部に公開されているIT資産が対象です。
外部テストでは不正アクセスや標的型メール攻撃、脆弱性攻撃などを疑似的に仕掛け、Webサイトやシステムなどの脆弱性を可視化するのが目的です。
とくにWebサーバーやメールサーバーなどの公開サーバーは、インターネット経由で誰でもアクセスが可能です。サイバー攻撃のターゲットにされるリスクを抱えているため、外部テストの結果を踏まえ、強固なセキュリティー対策を講じる必要があります。
ペネトレーションテストの手法
ペネトレーションテストの手法は、ホワイトボックステストとブラックボックステストの2種類です。事前に違いを把握してからテストに臨むことで、有意義なテストにすることが可能です。
ホワイトボックステストとは、システム内部の構造やネットワーク機器の構成などを事前に共有してからテストを行う手法です。
設計書やソースコード、データ処理の流れなどを確認・把握したうえでテストを行い、脆弱性やセキュリティー対策での課題を抽出します。
ホワイトボックステストは、開発者が気づきにくいリスクを発見できる点がメリットです。システム内部の構造やネットワーク機器の構成を理解したうえでテストを実施するため、脆弱性やコードの記載ミス、バグなどを多く発見できる可能性が高まります。
また、攻撃対象や脆弱性に応じてテストの要件をカスタマイズできるため、効率よくセキュリティーリスクを可視化できる点も魅力です。
ブラックボックステストとはシステムやWebサイトなど、攻撃対象の内部構造を知らない状態で実施するタイプのテストです。攻撃者の視点に近い状態でテストを行えるため、侵入経路や脆弱性の深刻度、被害範囲など、より実践を想定した形で評価を行うことができます。
客観的な視点から自社のセキュリティー対策を評価できるため、今後どのような対策を取るべきか、方向性が定まりやすくなります。
また、テストを通じてシステムのデザインや機能性、ユーザビリティーが仕様を満たしているか、確認できる点も魅力です。
ただし、あくまで攻撃者の視点から評価を下すことから、ホワイトボックステストと比べてセキュリティーリスクを見落としやすい傾向にあります。
さらに、システム内部の構造を知らない分、侵入までに時間がかかり、費用や検証期間が増大するリスクを抱えています。
ペネトレーションテストを行う際の手順
ペネトレーションテストは以下の手順に沿って作業を進めます。
- テスト計画を策定する
- テストシナリオを作成する
- 調査対象への攻撃を実施する
- 結果の分析と報告書を作成する
プロセスごとの作業内容を見ていきます。
テスト計画を策定する目的は、テストのスムーズな進行と実施効果を高めるためです。事前に計画を立てておかないと、テストの実施に時間がかかり、思うような効果が得られないだけでなく、通常業務に支障が及ぶおそれが生じます。
テスト計画書に記載する項目は以下のとおりです。
項目 | 主な記載事項 |
テストの概要 | ・テストの目的 ・対象の機器 |
テストの種類・手法 | ・内部テストor外部テスト ・ホワイトボックステストorブラックボックステスト |
スケジュール | ・テストの日時 ・予備日 ・緊急事態発生時の計画 |
テストの際にアクシデントが起きる事態も想定し、バックアップデータの取得や復旧手順なども記載をしておきます。
また、ホワイトボックステストを実施する場合は、担当者からシステムの内部構造やネットワーク環境の構成に関する情報を収集しておく必要もあります。
セキュリティー対策の現状と脆弱性を把握するため、内部テストと外部テスト、どちらの手法を選択した場合でもテストシナリオを作成します。テストシナリオの例は以下のとおりです。
| 内部テスト | 外部テスト |
目的 | ・機密情報の盗取・売却で、金銭的な見返りを獲得 ・勤務先への復讐 | ・Webサイトの改ざん ・損失の発生 ・ブランドのイメージダウン |
対象 | 販売管理システム | サービスサイト |
手段 | 従業員の内部不正 | OSコマンドインジェクション(脆弱性攻撃) |
目的・対象・手段を明確化しておくことで、より実践に近いテストを実施でき、セキュリティー対策での課題を抽出しやすくなります。
また、想定されるすべてのサイバー攻撃をシナリオ化し、実際にテストしても問題はありません。ただし、手間と時間がかかるため、攻撃に遭うリスクや被害が大きい攻撃に絞っておくのが無難といえます。
テストシナリオで想定した攻撃対象に疑似的な攻撃を仕掛け、脆弱性の有無や脆弱性の悪用可否を調査します。攻撃を仕掛ける方法は以下の3つです。
- 専用ツールの活用
- 手動での実施
- 外部企業への依頼
専用ツールにはKali LinuxやMetasploit Frameworkなど、複数の選択肢があげられます。オープンソース型であれば、基本的に無料で利用可能です。ソースコードも公開されており、プログラミングに精通した人材がいれば、カスタマイズもできます。
ただし、専用ツールは種類によって搭載機能や得意分野が異なるため、自社のテスト要件に見合っているか、確認が必要です。
また、手動で攻撃手法を再現するには高度な専門知識が必要なため、経験者がいない場合は実施が困難です。自社で対応が難しい場合は、専門の企業へ依頼するのが賢明な選択肢といえます。
なお、ペネトレーションテストは対象企業の正式な許可がない状態で行うと、不正アクセス行為に該当するため、必ず契約にもとづいて実施する必要があります。
疑似攻撃を仕掛けた結果を分析し、得られた結果を報告書にまとめます。報告書に記載すべき項目は以下のとおりです。
項目の種類 | 主な記載事項 |
テストの概要 | ・テストの種類と手法 ・攻撃対象 ・対象範囲 ・実施日時 |
発見事項 | ・脆弱性の有無 ・悪用される可能性 ・脆弱性の影響度 ・脆弱性を発見した手順 |
改善提案 | ・具体的な対策 ・導入するセキュリティーツールの種類 ・対策を実施する効果 ・脆弱性ごとの優先度 |
経営者向け | ・脆弱性を放置するリスク ・優先して対応すべき脆弱性 ・必要なセキュリティーツール ・対策にかかる費用 |
報告書にはテストの担当者だけでなく、経営層向けの内容も交えることが重要です。仮にペネトレーションテストの結果から、新たなセキュリティーツールの導入が必要になった場合、予算の確保が必要です。
決裁権をもつ経営層が納得しない限り、セキュリティーツールの購入はできないため、脆弱性の深刻性や優先度の高さなどを報告書で伝える必要があります。
また、作成した報告書は外部に情報が流出しないよう、最新の注意を払わなければなりません。報告書にはシステムやネットワーク機器などの脆弱性が書かれており、外部に流出すると、サイバー攻撃やマルウェア感染の脅威が高まります。
ペネトレーションテストを行う前に把握すべき内容
ペネトレーションテストの有効性を高めるには、以下3点を把握しておく必要があります。
- 成果は担当者のスキルによって左右される
- 費用や手間がかかる
- 脆弱性診断との併用で相乗効果を望める
担当者のスキルや専門知識が成果に大きく左右するため、不安な場合は外部の専門家に相談するのが賢明です。
ペネトレーションテストでは、疑似的な攻撃を仕掛ける方法に複数の選択肢があげられます。専用ツールや手動を選ぶ場合、担当者には専門的なスキルが求められます。
専用ツールはツールごとに搭載機能や得意分野、対応可能な範囲が異なるため、自社のテスト要件に見合ったツールを選定しなければなりません。
また、手動の場合はシステムやネットワーク関連の知識が不十分だと、スムーズに社内ネットワークへ侵入ができません。手間と時間がかかり、最悪の場合は脆弱性を見つけられない可能性も高まります。
自社で対応が難しい場合は、ペネトレーションテストの実施が得意な企業へ依頼しましょう。実績数やリピート率、導入事例などを確認しながら依頼先を絞り込むと、有意義なテスト結果を得られる可能性が高まります。
ペネトレーションテストは対象範囲やテストシナリオの内容などによって、費用が変動します。ただし、外部の企業に相談して手動での診断を選択した場合、多くの費用が発生します。
たとえば、比較的シンプルな構成のシステムでテストを実施した場合でも、費用は数十万円規模が相場です。ネットワークの横断や攻撃対象が複数など、大規模なテストを実施する場合、数百万〜数千万規模の費用が発生するケースもあります。
予算確保に不安を抱える場合、専用ツールを活用したテストに対応可能な企業を選ぶのが有効です。専用ツールを活用すればテストの範囲は狭まるものの、月額料金が数万円〜数十万円ほどで済む可能性が高く、費用を抑えられます。
また、テストシナリオの設計やテスト環境の整備、テストの実施など、ペネトレーションテストの実施にかかる工数を大幅に削減できる点も魅力です。
ペネトレーションテストは脆弱性診断と併用することで、よりいっそうセキュリティー対策を強化できます。双方は目的や診断範囲などが異なるため、シーンに応じた使い分けが求められます。
ペネトレーションテストと脆弱性診断の概要は、以下のとおりです。
| ペネトレーションテスト | 脆弱性診断 |
概要 | ・攻撃対象に疑似的な攻撃を実施 ・課題に応じて内部と外部からの攻撃を使い分け | ・特定の基準と照らし合わせて脆弱性の有無を調査 ・疑似的な攻撃は仕掛けず、調査を実施 |
主な目的 | ・脆弱性の発見 ・脆弱性の影響度を把握 ・対策の優先度が高い脆弱性を可視化 ・攻撃者の視点から現状を把握 | ・脆弱性への対策 ・サービスリリース後の不具合の発生リスク削減 ・復旧作業にかかる期間と費用の削減 ・経営層の意識改革 |
主な活用シーン | ・中長期的なセキュリティー計画の策定 ・セキュリティー対策の見直し ・インシデントの再発防止 | ・サービスのリリース前 ・未知の脆弱性を把握 ・修正プログラムの配布必要性の把握 ・設定変更後のリスク評価 |
課題や状況に応じて使い分けることで、機密情報が流出するリスクを抑えられます。
まとめ
ペネトレーションテストは社内ネットワークへ疑似的な攻撃を仕掛け、調査結果から脆弱性の有無を把握するテストです。攻撃者の視点から自社のセキュリティー対策を評価するため、現状の課題や改善策を把握しやすくなります。
ただし、ペネトレーションテストの実施には、計画書の策定やテストシナリオの作成など、さまざまな事前準備が必要です。
セキュリティーに精通した人材が不在の場合は、サイバーセキュリティー会社へ相談するのがおすすめです。豊富な知識や経験を兼ね備えた人材が多数在籍しており、自社の課題や予算に見合った提案が得られる可能性が高まります。
では、複数のセキュリティーソリューションをご提案可能です。セキュリティーの強化を検討中の方は、お気軽にご相談ください。
検索条件を変えていただき、もう一度お試しください。
検索条件を変えていただき、もう一度お試しください。









