ペネトレーションテストとは?種類・実施方法と必要なケースを解説

ペネトレーションテストとは

ペネトレーションテストとは、攻撃者視点で疑似攻撃を行い、侵入経路や影響範囲、セキュリティ対策の実効性を検証するテストです。何がわかるのか、脆弱性診断との違い、種類、実施の流れまで解説します。

「脆弱性診断は受けているが、実際に攻撃されたらどこまで被害が出るのかはわからない」――そうした疑問に答えるのが、ペネトレーションテストです。

「名前は知っているが、具体的に何をするテストかイメージしづらい」という方に向けて、この記事では何がわかるのか、脆弱性診断との違い、主な種類、必要になるケース、実施の流れ、費用・期間の考え方までを順に解説します。

ペネトレーションテストとは

ペネトレーションテストとは、攻撃者の視点で疑似攻撃を行い、侵入経路や影響範囲を検証するセキュリティテストです。

単にシステムやアプリケーションに脆弱性が存在するかどうかを調べるだけのテストではありません。実際の攻撃者の視点に立ち、「どのような目的で攻撃を行うのか」「どの経路から侵入を試みるのか」といった具体的な攻撃シナリオをあらかじめ設定し、そのシナリオに沿って実際に攻撃を行うことで、組織のセキュリティ耐性を評価する手法です。

【攻撃シナリオの例】

ペネトレーションテストの攻撃シナリオの例

このように攻撃者視点で攻撃を再現し、「弱点があるか」ではなく「実際に攻撃がどこまで成立するか」を検証するのが、ペネトレーションテストです。

さらに、「攻撃が成立するかどうか」だけでなく、「攻撃が成立した場合にどこまで影響が広がるのか」まで確認します。
たとえば、外部からWebサーバーへの侵入に成功した場合、そのサーバーを踏み台として内部ネットワークへ侵入できるのか、他のシステムへ横展開できるのか、機密データへアクセスできるのかなど、インシデント発生時の被害範囲を実践的に評価できます。

ペネトレーションテストは「ペンテスト」や「侵入テスト」と呼ばれることもあり、企業のサイバーセキュリティ対策を評価する手段として広く活用されています。
特に重要インフラ事業者や金融機関、自治体、大規模なWebサービスを運営する企業などでは、実際の攻撃を想定したセキュリティ評価として定期的に実施されるケースも多くあります。

ペネトレーションテストで何がわかる?

ペネトレーションテストを実施すると、次の3つの観点から自社のセキュリティ状態を把握できます。

1. 攻撃者が侵入できる経路

ペネトレーションテストでは、脆弱性や設定上の弱点を確認するだけでなく、それらを利用した攻撃が実際に成立するかまで検証します。単独では大きな問題に見えない設定不備や認証の甘さでも、複数の弱点を組み合わせることで、実際の攻撃経路が成立してしまう場合があります。

外部に公開しているシステムやネットワークを起点に、こうした組み合わせによる侵入の可能性を確認することで、弱点がどこにあるかだけでなく、実際にどこから侵入される可能性があるかまで把握できます。

2. 侵入後にどこまで影響が広がるか

侵入に成功した時点でテストが終わるとは限りません。ペネトレーションテストでは、侵入後にどこまで被害が広がる可能性があるかまで確認します。

具体的には、一般ユーザーの権限からより強い管理者権限を取得できないか(これを「権限昇格」と呼びます)、侵入した端末を足がかりに別のサーバーやシステムへ侵入範囲を広げられないか(これを「横展開」と呼びます)、そして最終的に重要なシステムや情報まで到達できないかを検証します。

単に「侵入できた・できなかった」だけでなく、事業への影響の大きさまで把握できるところに強みがあります。

3. 現在のセキュリティ対策が実際の攻撃に機能するか

ファイアウォールや認証、アクセス制御といったセキュリティ対策を「導入している」ことと、実際の攻撃に対してそれが「機能する」ことは同じではありません。
ペネトレーションテストでは、既存の認証やアクセス制御などが、想定する攻撃に対して実際に機能するかを確認できます。

なお、侵入を防げるかだけでなく、攻撃を検知し、対応・復旧できるかまで確認したい場合は、攻撃側と防御側に分かれて組織の対応力を検証する「レッドチーム/ブルーチーム演習」という手法もあります(SynXでも実施しています)。

ペネトレーションテストと脆弱性診断の違い

ペネトレーションテストと混同されやすいのが、脆弱性診断です。脆弱性診断は、既知の脆弱性や設定不備を幅広く洗い出し、改善につなげることを目的としています。
一方、ペネトレーションテストは、想定した攻撃シナリオが実際に成立するか、成立した場合にどこまで影響するかを検証することを目的としています。

  
比較項目脆弱性診断ペネトレーションテスト
目的既知の脆弱性や設定不備を幅広く把握すること想定した攻撃シナリオが実際に成立するか検証すること
検証の方法対象範囲の弱点を網羅的に確認する攻撃者視点でシナリオを設計し、実際に侵入を試みる
得られる結果検出された脆弱性の一覧・危険度・改善策成立した攻撃経路・到達できた範囲・優先すべき対策

どちらが優れているというものではなく、目的が異なるテストです。まずシステム全体の弱点を幅広く把握したいのか、実際に攻撃が成立するかまで確認したいのかによって、自社に合う診断は変わります。

両者の詳しい違いや使い分けの判断基準については、以下の関連記事で解説しています。

関連記事:ペネトレーションテストと脆弱性診断の違いとは?

ペネトレーションテストの主な種類

ペネトレーションテストは、目的や検証条件によっていくつかの方法に分けられます。主な分類方法は、次の3つです。

どこから攻撃を想定するか:外部/内部

テスターにどこまで情報を渡すか:ブラックボックス/ホワイトボックス/グレーボックス

何をテストするか:Webアプリケーション/ネットワーク/IoTなど

それぞれの違いを見ていきましょう。

1. どこから攻撃を想定するか|外部・内部

攻撃をどこから始める想定かによって、外部と内部に分けられます。

外部ペネトレーションテストは、インターネット側など、組織の外にいる攻撃者を想定したものです。外部に公開しているシステムやネットワークを起点に、侵入が成立する可能性を検証します。

内部ペネトレーションテストは、すでに社内ネットワーク内へ侵入された状態などを想定したものです。そこからより強い権限を取得できるか、別のサーバーやシステムへ侵入範囲を広げられるかを確認します。

外部ペネトレーションテストと内部ペネトレーションテストの違い外部ペネトレーションテストと内部ペネトレーションテストの図解

2. テスターにどこまで情報を渡すか|ブラックボックス・ホワイトボックス・グレーボックス

テストを行う人(テスター)に、対象システムの情報をどこまで事前に渡すかによっても方法が分かれます。

ブラックボックスは、事前に渡す情報を限定し、外部の攻撃者に近い条件で検証する方法です。ホワイトボックスは、システム構成や認証情報などを事前に共有したうえで、詳しく検証する方法です。その中間として、一部の情報だけを共有するグレーボックスもあります。

どの方法が優れているというものではなく、何を確認したいのかに応じて使い分けます。

3. 何をテストするか|Webアプリケーション・ネットワーク・IoTなど

テスト対象によっても、確認する内容は変わります。

Webアプリケーションでは、認証や入力値の扱いなど、アプリケーション特有の弱点を検証します。

ネットワークでは、外部・内部からの侵入経路や、侵入後にどこまで到達できるかなどを確認します。

IoT機器では、通信だけでなく、ハードウェアやクラウドとの連携なども検証対象になる場合があります。

参考|SynXのペネトレーションテスト対応領域

Web・API:認証・認可の不備やセッション管理、XSS、SQLインジェクションなど、さまざまな攻撃手法を主に手動で検証し、成立し得る攻撃シナリオと影響を明確化しています。

ネットワーク:既知の脆弱性やアクセス制御・設定不備、プロトコル上の弱点などを起点に攻撃シナリオを検証し、必要に応じて横展開・権限昇格の可能性まで確認しています。

IoT:通信やハードウェア層、クラウド連携なども対象に含めて検証しています。

ゲーム:オンラインゲームやスマートフォンゲームを対象に、不正アクセスやデータ改ざん、チート行為などを想定した検証を行うこともあります。

ペネトレーションテストが必要なケース

ペネトレーションテストが必要かどうかは、業界だけで決まるものではありません。システムの重要度や、攻撃された場合に想定される影響、どこまでリスクを確認したいかによって判断します。

ここでは、ペネトレーションテストが検討される代表的な例を紹介します。

公開システムから社内への侵入リスクを確認したい場合

顧客向けのWebサービスや業務システムをインターネットに公開している場合、外部から侵入されたあと、社内ネットワークや別のシステムまで侵入範囲を広げられる可能性があります。

たとえば、Webアプリケーションの弱点を起点に侵入し、そこから権限を取得して社内のサーバーまで到達できるか、といったシナリオです。

個々の脆弱性を確認するだけでなく、実際の攻撃として侵入経路が成立するか、その先まで被害が広がるかを検証したい場合に、ペネトレーションテストが適しています。

顧客情報や機密情報を扱うシステムのリスクを詳しく確認したい場合

顧客情報や個人情報、社内の機密情報などを扱うシステムでは、一部への侵入が最終的な情報漏えいにつながる可能性まで考える必要があります。

たとえば、Webサーバーに侵入された場合に、顧客情報を保存しているデータベースまでアクセスできるのか、といった点を検証します。

「弱点があるか」だけでなく、「その弱点を起点に守るべき情報まで到達できるか」まで確認したい場合は、ペネトレーションテストを検討するとよいでしょう。

脆弱性診断で対策したあと、実際の攻撃が成立しないか確認したい場合

脆弱性診断を実施して問題を修正したあとに、より実践的な検証としてペネトレーションテストを行う場合もあります。

診断で指摘された脆弱性を修正していても、別の設定不備や弱点を組み合わせることで侵入経路が成立する可能性があります。

脆弱性診断で個々の弱点を確認したあと、実際の攻撃シナリオでも侵入されない状態になっているかまで確認したい場合に、ペネトレーションテストを組み合わせます。

どちらを先に実施するか、どのように使い分けるかについては、以下の記事で詳しく解説しています。

関連記事:ペネトレーションテストと脆弱性診断の違いとは?

システム停止や不正利用による事業への影響が大きい場合

攻撃によるシステム停止や不正利用、データ改ざんなどが事業に大きな影響を与えるシステムでも、ペネトレーションテストが検討されます。

たとえば、金融サービスでは不正利用やサービス停止、行政・医療分野では個人情報の漏えい、オンラインゲームではアカウントの不正利用やデータ改ざんなどが大きな問題につながります。

こうしたシステムでは、脆弱性の有無だけでなく、実際に攻撃を受けた場合にどのような被害まで発生し得るのかを確認することが重要です。

石田篤史

監修者の一言

石田篤史取締役COO 兼 セキュリティグループ長

実際の検証では、一つひとつは危険度「低」や「中」と判定される程度の弱点が、組み合わさることで重要な情報まで到達できてしまうケースもあります。

たとえば、エラーメッセージから読み取れる内部情報、推測しやすいパスワード、社内向けに緩めたままのアクセス制御などは、単独では緊急性が高くなくても、つなげると攻撃経路になる場合があります。

脆弱性診断で大きな指摘がなかった場合でも、こうした弱点の組み合わせが攻撃経路として成立しないか、ペネトレーションテストで確認しておくことが大切です。

自社にペネトレーションテストが必要か、脆弱性診断で十分か迷う場合は、システム構成や確認したいリスクをうかがったうえで、適した診断方法をご提案します。

自社に合う診断を相談する

ペネトレーションテストの実施方法・流れ

ペネトレーションテストの進め方は依頼先や対象によって異なります。ここでは、実施内容を理解しやすいよう、主な流れを4段階に整理します。

1

目的整理

→
2

範囲設計

→
3

疑似攻撃

→
4

分析・対策

1. 目的と確認したいリスクを整理する

最初に、何を守りたいのか、どのような攻撃を想定しているのか、テストで何を確認したいのかを整理します。目的が曖昧なままでは、適切な対象範囲や攻撃シナリオを設計しにくくなります。

2. 対象範囲と攻撃シナリオを設計する

対象となるシステム、ネットワーク、アプリケーション、アカウント、機器などの範囲を決めます。あわせて、どこから攻撃を想定するか、どこまで到達できるかを確認するか、対象外とする範囲、実施可能な時間帯、業務影響を避ける条件なども整理します。

3. シナリオに沿って疑似攻撃を実施する

事前に合意した対象・条件の範囲内で、設計した攻撃シナリオに沿って疑似的な攻撃を行います。侵入が成立するか、設定した攻撃目的まで到達できるか、侵入後にどこまで影響が及ぶかを確認します。

4. 結果を分析し、必要な対策を検討する

テストで確認できた攻撃経路や影響範囲、現在の対策上の課題などを整理し、必要な対策を検討します。実施結果の共有方法や成果物は、依頼先や契約内容によって異なります。

ペネトレーションテストの費用・期間

ペネトレーションテストの費用は、対象システムや検証範囲、攻撃シナリオ、必要な工数などによって変わります。
SynXでは、見積もり時に診断内容、診断対象・範囲、診断期間、予算を確認し、対象の規模や必要な工数をもとに個別に見積もりを行っています。

実施期間は、対象範囲や攻撃シナリオの複雑さ、実施可能な時間帯、結果の整理・報告に必要な工数などによって異なります。具体的な費用相場や見積額の決まり方、見積書を確認する際のポイントについては、以下の記事で詳しく解説しています。

関連記事:ペネトレーションテストの費用相場は?

【SynX事例】ペネトレーションテストの実施例

ペネトレーションテストは、対象や確認したいリスクによって、検証の内容や実施条件が変わります。ここでは、SynXが実際に対応した2つの事例から、その違いを具体的に見ていきます。

IoT機器への物理アクセスを想定したJGC Digital様の事例

JGC Digital株式会社が運営する衣類回収サービス「するーぷ」では、サービスで使用するIoTデバイスを対象にIoTペネトレーションテストを実施しました。世代や仕様が異なる複数のデバイスについて、実機とファームウェアを対象に検証を行い、利用環境に応じてオンサイト診断とリモート診断を組み合わせています。

あわせて物理的リスク診断も実施し、デバイス本体を物理的に奪取された場合の情報漏えいリスクや、ポート経由での侵入可能性についても評価しました。

ペネトレーションテストの対象は、Webアプリケーションやネットワークだけではありません。IoT機器の場合は、実機やファームウェア、物理的なアクセスまで含めて、実際の利用環境に合わせて検証内容を組み立てる必要があります。

詳しい実施内容は、JGC Digital様の導入事例で紹介しています。

本番環境・深夜帯で実施したNTTデータ関西様の事例

株式会社NTTデータ関西では、自治体向けクラウドサービスとして、電子申請関連システムと住民向け受付サービスを運用しています。このうち電子申請関連システムに対して、Webアプリケーション診断とネットワークペネトレーションテストを年次で定期的に実施しています。

基本的な診断は日中の9時〜18時に行いますが、ネットワークペネトレーションテストについては、住民向けサービスへの影響を考慮し、21時〜翌3時という深夜帯に本番環境で実施しています。本番環境の構成や通信経路を対象に、実際の環境に即した検証を行っています。

本番環境でペネトレーションテストを行う場合は、システムの検証内容だけでなく、業務やサービスへの影響も踏まえて実施時間帯や対象範囲を調整する必要があります。

詳しい実施内容は、NTTデータ関西様の導入事例で紹介しています。

まとめ|ペネトレーションテストで実際の攻撃リスクを把握しよう

ペネトレーションテストとは、攻撃者の視点で疑似的な攻撃を行い、侵入経路や侵入後の影響範囲、既存のセキュリティ対策が実際に機能するかを検証する手法です。脆弱性の有無を確認するだけでなく、攻撃シナリオに沿って実際に侵入を試み、権限昇格や横展開によってどこまで被害が広がり得るかを実践的に評価できるのが強みです。

対象や条件によって、外部・内部、ブラックボックス・ホワイトボックス・グレーボックス、Webアプリケーション・ネットワーク・IoTなど、いくつかの種類に分けられます。公開システムから社内への侵入リスクや、機密情報を扱うシステム、事業への影響が大きいシステムなど、「実際に攻撃が成立するか」「成立した場合にどこまで影響が及ぶか」まで確認したい場合に、ペネトレーションテストが適しています。

自社にどこまでの検証が必要か判断が難しい場合や、ペネトレーションテストの実施を検討したい場合は、SynXまでご相談ください。

自社に必要な検証範囲について、SynXの専門スタッフにご相談いただけます。

ペネトレーションテストのご相談はこちら

メールでのお問い合わせ:cybersecurity-g@synx.co.jp