ペネトレーションテスト(侵入テスト)とは?|脆弱性診断との違いやメリット・デメリットを解説

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

ペネトレーションテストとはサイバーセキュリティの評価手法の一つで、セキュリティエンジニアが実際の攻撃者と同様の手法を用いて組織の情報システムに侵入を試みることでそのシステムの攻撃耐性を検証するテストのことです。

「ペネトレーション(Penetration)」という言葉には「侵入」の意味があり、攻撃者の視点からシステムやネットワークに対して擬似攻撃を行い侵入を試みることから「侵入テスト」とも呼ばれます。

サイバー攻撃に用いられる手法の変化や、新たな脆弱性の発見、ネットワークやシステムの更新や運用に伴う設定変更などによってシステムのリスクは変化することから、定期的にペネトレーションテストを行い、システムの脆弱性を特定し、対策を講じることが望ましいと言えます。

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

ペネトレーションテストも脆弱性診断もどちらもセキュリティを評価する手法ですが、そのアプローチは異なります。

ペネトレーションテストは攻撃者の視点からシステムに侵入し、実際の攻撃を模擬して特定の目標達成の可否を検証するためのテストです。リアルな攻撃シナリオに基づいて侵入を試行するため、システムの持つリスクを実践的に評価できます。

一方で脆弱性診断は、スキャンツールや手動によりシステム内に存在する潜在的な脆弱性を洗い出し、それらの深刻度を評価する手法です。

どちらもセキュリティ強化の一環として重要であり、それぞれの特性を理解したうえで選択または組み合わせて、セキュリティを向上させることが望ましいと言えます。


なぜペネトレーションテストが必要なのか?

ペネトレーションテストの目的

ペネトレーションテストの目的は、具体的かつ現実的なシナリオに基づいて目標を設定し、システムに対して擬似的な攻撃を行うことにより、その目標を達成可能かどうかを検証することです。

例えば、「個人情報の窃取」や「業務システムの停止」など組織が抱えるビジネスリスクをシナリオのゴールとして設定し、そのゴール達成のためにさまざまな攻撃手法やツールを組み合わせて攻撃シナリオを設計・実行します。

ゴールに向けた実践的な侵入試行の結果から、特定の脆弱性に対する適切なリスク分析やテスト対象システム自体の堅牢性の評価が可能となることに加え、テストで侵入を許した問題があった場合は、現実的な侵入の経路を特定できます。

これにより、問題に対して対策を実施することで攻撃によるリスクを低減することが期待でき、組織が導入しているセキュリティソリューションの有効性がわかる場合もあります。

ペネトレーションテストの必要性

近年サイバーセキュリティの脅威は急速に進化しており、それに伴い企業や組織もセキュリティソリューションを積極的に導入したり、セキュリティ意識向上のトレーニングを実施するなど様々なセキュリティ対策に取り組んでいます。

その中でもペネトレーションテストはそれらの対策の有効性を確認するための重要な手段として位置づけられています。 現状のセキュリティ対策が個々のシステムに対して有効であっても、システムが複雑に連携している場合に発生するセキュリティリスクを見逃す可能性があります。

そのため、個々のシステムだけでなく、システム全体における潜在的なリスクを評価することが必要であり、ペネトレーションテストによって実際の攻撃を模倣し、システム全体への侵入を試みることで、潜在しているセキュリティリスクやシステム全体の課題を浮き彫りにします。


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

内部テスト

内部テスト(Internal Penetration Test)は組織のネットワーク内部から擬似的な攻撃を行うことで、組織の関係者がアクセスできるシステムやリソースに対するセキュリティを評価する手法です。

悪意のある従業員による内部不正や従業員を対象とした標的型攻撃に起因する内部からの攻撃などを想定して行うことで、ネットワーク内部でのセキュリティの堅牢性を評価し、不正アクセスのリスクを特定します。

内部テストの範囲は組織によって異なりますが、通常は内部ネットワークやアプリケーション、データベース、エンドポイントデバイス、共有ファイル、メールシステムなどが含まれます。

外部テスト

外部テスト(External Penetration Test)は攻撃者の視点で外部から組織のネットワークやシステムへのアクセスを目的とした擬似的な攻撃を行うことで、システムの脆弱性やセキュリティリスクを評価するための手法です。

なりすましによるログインや、既知脆弱性を悪用した権限の奪取など、あらゆる手段で侵入の足がかりを探し、悪用できるかを検証します。

外部テストの範囲は、外部ウェブサイト、公開されたアプリケーション、クラウドサービス、ネットワーク機器など組織の外部にあるリソースやシステムが対象です。


ペネトレーションテストの手法

ホワイトボックステスト

ホワイトボックス型のペネトレーションテストは、ペネトレーションテスターがネットワーク構成、システム内部の構造にアクセスできるため、非常に詳細な洞察が可能です。これにより、脆弱性の特定がより包括的で、攻撃者が利用し得る可能性のある脅威を正確に特定できます。

さらに、ホワイトボックス型のアプローチは、ネットワーク構成、システムの内部構造やアーキテクチャを正確に理解できるため、脆弱性の深刻度と攻撃の可能性をより正確に評価できます。これにより、セキュリティリスクを適切に評価し、優先順位付けするのに役立ちます。

このアプローチはまた、テストケースを特定の要件や脆弱性に合わせてカスタマイズできるため、実際のシステムに特有のセキュリティ課題に焦点を当てることができます。さらに、コードの品質向上やセキュリティ意識の向上にも貢献します。

ブラックボックステスト

ブラックボックス型のペネトレーションテストは、ペネトレーションテスターが被監査組織からシステムの詳細な情報を提供されること無く、攻撃を模擬します。

ブラックボックステストの主な利点の一つは、外部攻撃者と同じ立場から攻撃シナリオを模擬できるため、外部からの攻撃の挙動と脆弱性をリアルな状況で評価できます。また、外部からの攻撃に対するセキュリティ対策や防御メカニズムの有効性をテストするのに適しています。

ブラックボックステストは、ペネトレーションテスターが事前に詳細な情報を知らない状態でテストを開始するため、脆弱性の深刻度と攻撃の可能性を客観的に評価できます。この客観的なセキュリティ評価は、外部の視点からシステムのセキュリティ状況を正確に反映し、セキュリティリスクの評価に役立ちます。

さらに、ブラックボックス型のアプローチは、システムやアプリケーションの変更に柔軟に対応でき、リアルタイムで脆弱性を評価できるため、継続的なセキュリティ評価のアプローチとして有用です。新たな脆弱性や攻撃ベクトルが現れた場合、テストによってセキュリティの有効性を速やかに再評価し、対策を講じることが可能です。


ペネトレーションテストのメリット

ペネトレーションテストは対象のシステムやアプリケーションの仕様や環境に合わせた攻撃シナリオを作成し、目標達成のために実際に侵入を試みることでその堅牢性を評価しますが、具体的には以下のようなメリットがあります。

    • 現実の脅威への対策 : ペネトレーションテストは、実際の攻撃者が使用する攻撃手法やシナリオを再現します。これにより、組織は自身のシステムやアプリケーションへの脅威に対して優先して対処すべき課題が明らかになります。

    • 既存セキュリティ対策の効果検証 : 組織がすでに導入したセキュリティ対策の実効性を評価できます。ペネトレーションテストの結果を通じて、既存のセキュリティコントロールが攻撃からどの程度機能しているかを確認でき、必要に応じて改善策を講じることができます。

    • ステークホルダーとの信頼構築 : ペネトレーションテストの結果をもとにセキュリティを強化することで、顧客やビジネスパートナー、従業員などのステークホルダーとの信頼関係を構築および向上させることができます。お客様に対してセキュリティ対策の具体的な取り組みを示すことは信頼を築く要因となります。

ペネトレーションテストの課題

ペネトレーションテストは組織のセキュリティ戦略において必要不可欠な要素ですが、同時に以下のような課題もあります。

    • コスト : ペネトレーションテストは専門的なスキルを持つホワイトハッカーによって実施されるため、外部に委託する場合はコストが高くなる場合があります。また、複雑なシステムやネットワークに対するテストは計画、実施、報告に時間がかかることがあり、即時の結果を得ることが難しい場合があります。

    • 障害発生 : ペネトレーションテストは、実際の攻撃を模擬するため、誤った設定や手順によって実際の被害をもたらす可能性があります。特に本番環境でテストを実行する場合は、システムやデータに損害を与える可能性があるため、テストの慎重な計画と実行、事前のバックアップなどの備えが必要です。

  • 実施者のスキルに依存 : ペネトレーションテストは実施者の経験や知識に基づいて攻撃シナリオを作成し、侵入を試みるため実施者のスキルによってテストの成果が大きく変わってきます。そのため、十分なスキルと経験を持つ人材の確保が課題となることがあります。

ペネトレーションテストの費用相場

ペネトレーションテストの費用は対象の規模や、実施の期間など様々な要因によって異なりますが、主に以下の要因で決定します。

    • テストの対象 : ペネトレーションテストの対象によって費用が異なります。外部テスト、内部テスト、アプリケーションのテスト、ネットワーク全体のテストなど、テストを実施する対象によってエンジニアの専門性や必要となる人数が異なるためです。

    • 対象の複雑さ : ペネトレーションテストの対象となるシステム、アプリケーション、ネットワークの複雑さが費用に影響します。複雑な環境や大規模なネットワークに対するテストは、テストの計画〜実施までに必要な工数が増加するためです。

  • レポートの作成 : ペネトレーションテストの結果を分析しセキュリティの改善策を提案するレポートの作成、報告回の実施、対策実施に関わるアドバイスもペネトレーションテストの工数に含まれる場合があります。

  • テストの場所 : オンサイトでのテストやリモートでのテストなど、テストの実施場所によって出張費用などの追加のコストが発生する場合があります。

実際のコストはプロジェクトの要件や契約先のセキュリティ企業によって異なります。ペネトレーションテストの目的とスコープに合った予算を確保し、信頼性のあるセキュリティ企業に依頼することが大切です。

ペネトレーションテストの主な流れ

Step1. ヒアリング

お客様から希望の実施時期や予算、診断対象についての詳細な情報などを収集します。診断対象に関するヒアリング内容は以下のようなものです。

    • テストの目的 : ペネトレーションテストに期待できる効能や目的の認識合わせを行います。

  • テストの対象 : どのネットワークやシステムがテストの対象となるかを明確にします。外部ネットワーク、内部ネットワーク、特定のセグメント、ホストなどテストの対象範囲を決定し、特定のホストの権限奪取、アクセスが許可されていないセグメントへの侵入などテストのゴールを定義します。

Step2. 契約手続き

お客様からいただいた要件をもとに診断範囲・対象の特定といった事前調査を行い、診断対象の数や工数からテスト方針の策定や実施に必要な期間やお見積もりを算出し、詳細な診断内容を提案します。

そしてペネトレーションテストの実施に関する合意事項、契約条件、機密情報の取り扱いなどを確認し内容に問題がなければ実際に診断を行うスケジュールを決定して契約手続きを行います。

Step3. 診断準備

ペネトレーションテストの進行中にサービス障害やシステムの停止などの問題が発生する可能性があります。そうした事態に備えた、適切なコミュニケーションプロトコルを確立します。

Step4. 診断の実施

ネットワークやシステムに実際に侵入を試みます。パスワード攻撃、既知脆弱性の悪用、中間者攻撃など様々な項目をテストすることで攻撃者の目標が達成可能かどうかを検証し、対象のセキュリティ設定を評価します。

Step5. 報告書の提出

ペネトレーションテストの結果を報告書にまとめて提出します。一般的にはテストの概要、発見された脆弱性の評価、実行された攻撃シナリオや攻撃手法に関する詳細、 脆弱性の証拠として得られたデータやスクリーンショット、各脆弱性に対する具体的な対策や修正方法などが含まれます。


ペネトレーションテストのレポート例

ペネトレーションテストのレポート(報告書)内容は対象の性質や規模によって異なりますが、一般的には以下のような内容が含まれています。

    • テスト概要 : ペネトレーションテストの目的と範囲、テスト対象のシステムの概要など。

    • テストの結果 : 実行された攻撃シナリオや使用したツールなどの攻撃手法に関する詳細。

    • リスク評価 : 特定されたセキュリティリスクの詳細および、それらが与える影響や深刻度についての説明。

  • 対策提案 : 各脆弱性に対する具体的な対策や修正方法、およびそれらの優先順位の提案。

ペネトレーションテストを依頼する際のポイント

テストの柔軟性

ペネトレーションテストは、ホワイトボックステスト、ブラックボックステスト、外部テスト、内部テストなど、制御システムのような特殊なシステムへのテストなど、さまざまなテストのアプローチや種類が存在します。組織のセキュリティニーズを的確に汲み取り、柔軟に対応できる会社に依頼することで、テストの効果を最大化し組織のセキュリティを向上させることができます。

エンジニアの能力

ペネトレーションテストの業者を選定する際、エンジニアのCTFでの入賞経験や保有する資格は重要ですが、それだけでスキルを評価することには限界があります。

ペネトレーションテストは単なる技術的スキルだけでなく、顧客のニーズやセキュリティの目的、特定のシステムやアプリケーションの特性を理解し、それに基づいて効果的な診断を実施することが求められるからです。

エンジニアが診断の目的や意図を深く理解できるかどうかは、問題の特定、報告の精度に影響します。適切なペネトレーションテストは、企業のセキュリティ課題に合わせたカスタマイズが必要であり、それにはエンジニアとの密なコミュニケーションが不可欠です。エンジニアがクライアントと連携し、セキュリティリスクや優先事項を共有し、テストの範囲や深さを調整することが必要です。

診断実績

過去の実績は、依頼する会社の信頼性と専門性を評価する際に重要な要素です。過去のプロジェクトでどのような脅威や脆弱性が特定され、どのようなリスクが軽減されたか、どのような業界の固有のセキュリティ課題を解決してきたかを確認しましょう。

柔軟性とコミュニケーション

組織の特定のセキュリティニーズを汲み取る能力が重要です。優れた業者は、組織の業界、技術スタック、およびビジネスプロセスを理解し、それに基づいてテスト戦略を構築できます。

また、業者が提供する技術領域が網羅的であることも重要です。例えば、Webアプリケーション、ネットワーク、ハードウェアなど、多岐にわたる技術カテゴリーを網羅しているか確認しましょう。これにより、組織が直面する現実の脅威に対処できます。

総じて、ペネトレーションテスト業者を選ぶ際には、組織のニーズに合わせ、網羅的で柔軟性のあるアプローチを提供できる業者を選ぶことが重要です。


ペネトレーションテストに関するよくある質問とその回答

テスト頻度は?

ペネトレーションテストの実施頻度は、セキュリティ要件、業界規制、システムの変更、リスク評価に基づいて決定されます。年に1回程度の実施が推奨されることが一般的ですが、日々進化する脅威に対抗するためにもシステムに変更があった場合やセキュリティ要件が変更された場合などその都度実施することが重要です。

システム稼働に影響はあるか?

ペネトレーションテストは通常、システム稼働に一時的な影響を与える可能性があります。テストの過程でシステムに対する模擬攻撃が行われ、脆弱性の特定やセキュリティの評価が行われるため一時的な影響が生じることがあります。この影響は、テストの性質や対象システムの種類に依存します。

ペネトレーションテストを実施するタイミングは?

最適なタイミングは組織のセキュリティポリシーやリスク評価に依存しますが、以下のようなタイミングでの実施を検討しましょう。

    • 新しいシステムの導入前 : 新しいシステムが稼働する前にペネトレーションテストを実施してシステムのセキュリティを確保し、潜在的な脆弱性を特定します。

    • システム変更後 : 既存のシステムに重要な変更が加えられた場合に変更の影響を評価し、新たなセキュリティリスクが発生していないかを確認するためにテストを実施します。

    • 新しいセキュリティポリシーの導入後 : 新しいセキュリティポリシーが導入された場合、そのポリシーが実際に遵守されているかどうかを確認するためにテストを実施します。

    • セキュリティインシデントの発生後 : セキュリティインシデントが発生した場合、その影響を評価し、再発を防ぐためのセキュリティ向上策を実施する一環としてテストを行うことがあります。

ペネトレーションテストを行うのに必要なものは?

ペネトレーションテストの目的やテスト対象のシステム、ネットワークなどの範囲を明確に定義し、テストの具体的な要件を決めておく必要があります。また、対象システムやネットワークの詳細な情報のほか、ペネトレーションテスターが合法的にシステムにアクセスするための権限が必要です。


サイバーディフェンス研究所のペネトレーションテストについて

サイバーディフェンス研究所には、オフェンシブなセキュリティエンジニア(ネットワーク、アプリケーション、ハードウェア、無線、バイナリなど)、フォレンジックアナリスト、脅威リサーチャーなど、多様なセキュリティスキルを持つ専門家が結集しています。

以下に、サイバーディフェンス研究所のオフェンシブなセキュリティエンジニアによって提供されるペネトレーションテストの特徴についてご紹介します。


    • リアルな脅威シナリオ :
      「マルウェア感染により攻撃起点を得た攻撃者が、同一セグメントに存在するファイルサーバへアクセスし情報を窃取する」、「マルウェア感染により攻撃起点を得た攻撃者が、同組織のネットワーク全体を掌握する」、「従業員の内部不正により、当該従業員が本来アクセスできないはずの異なるセグメントのホストへ侵入し情報を窃取する」、「ランサムウェア感染によるクライアントPCおよびファイルサーバのファイル暗号化」など、テスト対象となるシステムやネットワークにおいて現実のリスクとなりうる脅威シナリオを検討し、テストを実行します。

    • 現実のAPTグループやサイバー犯罪者と同等の火力 :
      サイバーディフェンス研究所のペネトレーションテストは、既知脆弱性の発見と悪用に限定されない様々な攻撃を実行します。ホスト群(ネットワーク)を侵入対象と見なし、認証試行(簡易なパスワード、総当り、辞書攻撃等)、機微な情報や設定ファイルの窃取、一般的なサービスやコマンド、プログラムを悪用した攻撃、独自開発の攻撃用プログラムの利用、非暗号化通信の窃取を目的とした中間者攻撃、すでに導入されているセキュリティ対策の迂回(アンチウイルス、UAC、FWなど)など、実際のAPTグループやサイバー犯罪者と同等の攻撃を実行します。

    • ハードウェアもバイナリも無線も :
      サイバーディフェンス研究所には、Webアプリケーションやネットワークなどの仕組みに精通し、これらの悪用技術に優れるエンジニアに加え、特殊なハードウェアやバイナリのリバースエンジニアリング、エクスプロイトライティング、産業制御システムのエキスパートも在籍しています。これにより、制御システムや防衛装備品など一般的なITシステムで無いものに対しても、高品質なテストを実施することができます。

    • 安全かつ低負荷なテスト :
      サイバーディフェンス研究所のペネトレーションテストは、豊富なテスト経験を有する持つエキスパートが、業務やネットワークシステムへの悪影響や負荷などに細心の注意を払い、完全な手動作業で実施します。自動化されたツール任せのテストと比較して、意図しないシステムダウンなどのリスクを低減でき、またネットワーク遅延などによる業務への悪影響も最小化します。

    • 高品質な診断を支える独自開発ツール :
      サイバーディフェンス研究所のペネトレーションテストは、一般の商用ツールやOSSだけでなく、独自開発のツールを用いて実施されます。複数のペンテスター同士の情報共有、実行コマンドの集積、収集したファイルの統合管理などを行うペネトレーションテストフレームワーク、クリーンな遠隔操作コマンド実行、アンチウイルスやファイアウォールの迂回を行うエクスプロイトツール、高速なパスワード解析ツールなど、これらの独自開発ツールによって、安全かつ高火力、高品質なテストの実行が可能となります。

  • 対策の費用対効果を最大化する分析と報告 :
    最終的な攻撃目標の達成に至るプロセスをドミノ効果図として報告します。ドミノ効果図では、どのような脆弱性や設定不備、運用上の欠陥などを悪用し攻撃目標の達成に至ったかを俯瞰して把握することができます。これにより、優先して対処すべき施策を判断することが可能となり、対策の費用対効果を最大化できます。

主なペネトレーションテストメニュー

ネットワークペネトレーションテスト
制御システムペネトレーションテスト

社会インフラ及びそれを支える監視制御システムに対するセキュリティ試験を行います。 対象制御システムにおいて想定される脅威や、各種規格・ガイドライン等の調査を行い、システムを十分に把握した上で導入可能かつ運用を阻害しないような対策技術の検討を行います。

【診断項目】

ホスト検出 / サービススキャン / 認証試行 / 既知脆弱性の確認 / 未知脆弱性の検出 / ドミノ効果の確認 / 通信データの収集 / 中間者攻撃 / 通信解析 / プログラム解析 / 取得データの分析

まとめ

サイバー攻撃が日々高度化している現代において、ペネトレーションテストは不可欠なセキュリティ対策の手法です。高度なセキュリティ製品を導入したとしても適切な運用がされていなければ、攻撃者の前では意味がありません。現実に起こりうる脅威を把握し、運用面も含めた包括的なセキュリティ対策を講じることが重要です。

サイバーディフェンス研究所ではホスト単体に対する侵入可否検証だけでなく、実際の攻撃と同様に、ネットワーク全体を侵入対象と見なした戦略的な侵入テストや、重要インフラ制御システムや特殊なハードウェアなどのデバイス対象としたペネトレーションテストが可能です。予算に応じた最適な攻撃シナリオ、ゴール設定についても柔軟にサポートいたしますので、お気軽にご相談ください。

機密性を重視した依頼を送る際はこちらからお願いいたします。

cdiprivacydummy@protonmail.com