ペネトレーション・テスト(「ペン・テスト」ともいいます)は、コンピューター・システム内の脆弱性を検出するために、疑似サイバー攻撃を実行するセキュリティー・テストです。
ペネトレーション・テスターは、エシカル・ハッキングの技術に熟達しているセキュリティーのプロフェッショナルです。エシカル・ハッキングでは、害を及ぼすのではなく、セキュリティーの弱点を修正するためにハッキングのツールと手法を利用します。 企業はペン・テスター(ペネトレーション・テスター)を雇用して、自社のアプリケーション、ネットワーク、その他の資産に対して疑似攻撃を行います。 ペン・テスターは、偽の攻撃を実行することで、セキュリティー・チームが、重大なセキュリティーの脆弱性を発見し、総合的なセキュリティー体制を改善することを支援します。
「エシカル・ハッキング」と「ペネトレーション・テスト」という用語は同じ意味で使用されることがありますが、2つの用語の間には違いがあります。 エシカル・ハッキングは、より幅広いサイバーセキュリティーの分野で、これには、ネットワーク・セキュリティーを向上させるためのハッキング・スキルの利用が含まれます。 ペネトレーション・テストは、エシカル・ハッカーが使用する手法の1つに過ぎません。 エシカル・ハッカーはまた、マルウェア分析、リスク・アセスメント、およびその他のサービスを提供することもあります。
企業がペン・テストを実施する理由は主に3つあります。
ペン・テストは、脆弱性評価のみを行う場合と比較してより包括的なものとなります。 ペネトレーション・テストと脆弱性評価は両方とも、セキュリティー・チームが、アプリケーション、デバイス、およびネットワークの弱点を特定するのに役立ちます。 ただし、これらの手法の目的は若干異なるため、多くの組織はどちらか1つの手法に依存するのではなく両方の手法を利用しています。
脆弱性評価では通常、システム内の既知の脆弱性を検出し、レビュー用にその脆弱性にフラグを立てる、反復的な自動スキャンを行います。 セキュリティー・チームは脆弱性評価を使用して、一般的な不具合を迅速に検査します。
ペネトレーション・テストの場合は、さらにその先へと進みます。 ペン・テスターは、脆弱性を検出すると、悪意のあるハッカーの行動を模倣した疑似攻撃において、その脆弱性を利用します。 このようにすることで、セキュリティー・チームは、実際のハッカーがどのように脆弱性を悪用して機密データにアクセスしたり運用を妨害したりする可能性があるのかを深く理解することができます。 セキュリティー・チームは、ハッカーが何をするのか推測しようとするのではなく、こうした知識を利用して、現実のサイバー脅威に対応するためのネットワーク・セキュリティー管理を設計できます。
ペン・テスターは、自動化されたプロセスと手動のプロセスの両方を使用するため、既知の脆弱性と未知の脆弱性を発見します。 ペン・テスターは発見した弱点を積極的に活用するため、誤検出の可能性は低くなります。すなわち、ペン・テスターが不具合を活用できるなら、サイバー犯罪者もその不具合を悪用できるということになります。 また、ペネトレーション・テスト・サービスは通常、ハッカーの視点からシステムに接近する、サード・パーティーのセキュリティー専門家によって提供されるため、社内のセキュリティー・チームが見逃した不具合がペネトレーション・テストで見つかることもよくあります。
サイバーセキュリティーの専門家はペン・テストを推奨しています。 多くのサイバーセキュリティーの専門家と政府機関は、事前対応型のセキュリティー対策としてペン・テストを推奨しています。 例えば、2021年に米国連邦政府(ibm.com外部のリンク)は、増加するランサムウェア攻撃に対する防御のために、ペン・テストの利用を企業に要請しました。
ペン・テストは法規制遵守をサポートします。 「医療保険の積算と責任に関する法律(HIPAA)」や「一般データ保護規則(GDPR)」などのデータ・セキュリティーに関する法規制では、一定のセキュリティー管理が義務付けられています。 ペネトレーション・テストは、企業が、これらの管理が意図どおりに機能することを保証して、これらの法規制の遵守を証明する場合に役立ちます。
ペン・テストを明示的に要求する法規制もあります。 クレジット・カードの処理を行う組織に適用される、クレジット・カード業界のデータ・セキュリティー標準(PCI-DSS)では、具体的に、定期的な「外部および内部のペネトレーション・テスト」(ibm.com外部のリンク)が求められています。
ペン・テストはまた、ISO/IEC 27001(ibm.com外部のリンク)などの、任意の情報セキュリティー標準のコンプライアンスにも対応できます。
すべてのペネトレーション・テストには、企業のコンピューター・システムに対する疑似攻撃が伴います。 ただし、さまざまなタイプのペン・テストはそれぞれ、さまざまなタイプの企業資産を対象にしています。
アプリケーション・ペン・テストでは、WebアプリケーションとWebサイト、モバイル・アプリとIoTアプリ、クラウド・アプリ、アプリケーション・プログラミング・インターフェース(API)など、アプリケーションと関連システムの脆弱性を検出します。
ペン・テスターは多くの場合、 Open Web Application Security Project(OWASP)Top 10(ibm.com外部のリンク)に掲載されている脆弱性を検索することから作業を開始します。 OWASP Top 10は、Webアプリケーションにおける最も重大な脆弱性のリストです。 このリストは、変化するサイバーセキュリティー・ランドスケープを反映するために定期的に更新されますが、一般的な脆弱性には、悪意のあるコード・インジェクション、不適切な設定、認証の失敗が含まれます。 アプリケーション・ペン・テストでは、OWASP Top 10以外にも対象のアプリに固有の、一般的でないセキュリティーの不具合と脆弱性も検出します。
ネットワーク・ペン・テストでは、企業のコンピューター・ネットワーク全体を攻撃します。 ネットワーク・ペン・テストには大きく分けると外部テストと内部テストの2種類があります。
外部テストでは、ペン・テスターは、サーバー、ルーター、Webサイト、従業員のコンピューターなど、インターネットに接続する資産でセキュリティーの問題を検出するために、外部ハッカーの行動を模倣します。 ペン・テスターは外部からネットワークへの侵入を試みるため、これらのテストは「外部テスト」と呼ばれます。
内部テストでは、ペン・テスターは、悪意のある内部関係者または盗んだ資格情報を持つハッカーの行動を模倣します。 内部テストの目的は、例えば機密データを盗むためのアクセス特権の悪用など、ネットワークの内部から悪用できる脆弱性を発見することです。
これらのセキュリティー・テストでは、ノートPC、モバイル・デバイス、IoTデバイス、オペレーショナル・テクノロジー(OT)など、ネットワークに接続されたデバイスの脆弱性を検出します。
ペン・テスターはまた、ハッカーがエンドポイントへのリモート・アクセス権限を入手できるようにするオペレーティング・システムの悪用など、ソフトウェアの不具合を検出します。 また、悪意のあるアクターが忍び込むことができる適切に保護されていないデータセンターなど、物理的な脆弱性を検出したりすることもあります。 また、テスト・チームが、ハッカーが不正にアクセスしたデバイスからネットワークの別の部分へどのように移動する可能性があるのかを評価する場合もあります。
人員ペン・テストでは、従業員のサイバーセキュリティー衛生における弱点を検出します。 言い換えると、これらのセキュリティー・テストでは、企業がソーシャル・エンジニアリング攻撃に対してどの程度脆弱であるかを評価します。
人員ペン・テスターは、フィッシング、ビッシング(音声によるフィッシング)、スミッシング(SMSによるフィッシング)を利用して、従業員をだまし、機密情報を漏洩するように仕向けます。 人員ペン・テストでは、オフィスの物理的なセキュリティーを評価する場合もあります。 例えば、ペン・テスターは、配送業者に変装することで建物への潜入を試みます。 「テールゲーティング」と呼ばれるこの方法は、現実世界の犯罪でも広く使用されています。
ペン・テストの開始前に、テスト・チームと企業は、テストの適用範囲を設定します。 適用範囲では、テスト対象のシステム、テスト実施の日時、ペン・テスターが利用できる手法について概説されます。 また、次のようにペン・テスターが事前に入手できる情報量についても決定されます。
ブラックボックス・テストでは、ペン・テスターはターゲット・システムに関する情報を持ちません。 ペン・テスターは、自身の調査によって、現実世界のハッカーが行うであろう攻撃計画を作成する必要があります。
ホワイトボックス・テストでは、ペン・テスターはターゲット・システムの情報をすべて把握できます。 企業は、ネットワーク図、ソース・コード、資格情報など、詳細情報を提供します。
グレイボックス・テストでは、ペン・テスターは情報を一部入手できますが、あまり多くの情報は入手できません。 例えば、企業がネットワーク・デバイス用にIP範囲を共有する場合があっても、ペン・テスターはそれらのIP範囲の脆弱性を自身で調査する必要があります。
スコープの適用範囲に基づいてテストが開始されます。 ペン・テスターは、複数のペン・テスト手法に従う場合があります。 一般的な手法として、OWASPのアプリケーション・セキュリティー・テスト・ガイドライン(ibm.com外部へのリンク)、ペネトレーション・テスト実行標準(PTES)(ibm.com外部へのリンク)アメリカ国立標準技術研究所(NIST)SP 800-115(ibm.com外部へのリンク)があります。
テスト・チームが使用する手法に関わらず、プロセスが進む全体的な手順は同じものになります。
テスト・チームはターゲット・システムに関する情報を収集します。 ペン・テスターは、ターゲットに応じて、異なる偵察手法を使用します。 例えば、アプリケーションがターゲットである場合、ペン・テスターがそのソース・コードを調査する可能性があります。 ターゲットがネットワーク全体である場合、ペン・テスターはネットワークのトラフィック・フローを調査するためにパケット・アナライザーを使用することがあります。
ペン・テスターがオープンソース・インテリジェンス(OSINT)を利用することも頻繁にあります。 ペン・テスターは、公開資料、ニュース記事、さらには従業員のソーシャル・メディアとGitHubのアカウントに目を通すことで、そのターゲットに関する価値のある情報を収集できます。
ペン・テスターは、偵察ステップで入手した情報を使用して、システム内の悪用可能な脆弱性を特定します。 例えば、ペン・テスターは、マルウェアを送信できるオープン・ポートを検出するために、Nmapなどのポート・スキャナーを使用します。 ソーシャル・エンジニアリングのペン・テストの場合、テスト・チームが、従業員の資格情報を盗むためのフィッシングEメールで使用する偽のストーリー(つまり「口実(プリテキスティングをご参照ください)」)を作成する場合があります。
このステップの一部として、ペン・テスターは、セキュリティー機能が侵入に対してどのように反応するかを検査します。 例えば、何が起きるかを確認するために、企業のファイアウォールに対して、疑わしいトラフィックを送信します。 ペン・テスターは、テストの残りの期間中に検出されることを回避するために、入手した情報を利用します。
テスト・チームは実際の攻撃を開始します。 ペン・テスターは、ターゲット・システム、検出した脆弱性、テストのスコープに応じて、さまざまな攻撃を試みます。 最も一般的にテストされる攻撃には以下のものがあります。
SQLインジェクション:ペン・テスターは、入力フィールドに悪意のあるコードを入力することで、Webページまたはアプリに機密データを公開させようとします。
クロスサイト・スクリプティング:ペン・テスターは、企業のWebサイトに悪意のあるコードを移植しようとします。
サービス妨害攻撃:ペン・テスターは、大量のトラフィックを送信することで、サーバー、アプリ、その他のネットワーク・リソースをオフラインにしようと試みます。
ソーシャル・エンジニアリング:ペン・テスターは、従業員をだまし、ネットワーク・セキュリティーを侵害させるために、フィッシング、ベイティング、プリテキスティング、その他の戦術を使用します。
総当たり攻撃:ペン・テスターは、機能するパスワードに到達するまで、可能性のあるパスワードを生成してテストするスクリプトを実行することで、システムへの侵入を試みます。
中間者攻撃:ペン・テスターは、機密情報を盗むため、あるいは、マルウェアを移植するために、2つのデバイス、または2人のユーザー間のトラフィックを傍受します。
脆弱性を悪用してシステム内に足掛かりを得ると、ペン・テスターは、周辺を移動し、システム内でさらに多くの場所にアクセスしようとします。 このフェーズは「脆弱性の連鎖」と呼ばれることもあります。ペン・テスターが、ネットワークのより深い部分に到達するためにある脆弱性から別の脆弱性へと移動するためです。 例えば、ペン・テスターは、従業員のコンピューターにキー・ロガーを移植することから始めることがあります。 そのキー・ロガーを使用して、対象の従業員の資格情報を取り込むことができます。 ペン・テスターは、これらの資格情報を使用して機密性の高いデータベースにアクセスできます。
この段階のペン・テスターの目標は、アクセスを維持し、その特権を拡大しながら、セキュリティー対策から逃れることです。 ペン・テスターは、捕捉されるまで数週間、数カ月間、数年間にわたってシステム内に隠れることが可能な、持続的標的型攻撃(APT)を模倣するために、これらのすべてを行います。
疑似攻撃の最後に、ペン・テスターは、自分が移植したバックドア型トロイの木馬や自分が変更した構成など、それまでに残した形跡をすべてクリーンアップします。 そうすれば、実際のハッカーは、ネットワークを侵害するためにペン・テスターが見つけたセキュリティー上の弱点を利用できません。
次にペン・テスターは、攻撃についてのレポートを準備します。 レポートでは通常、検出した脆弱性、使用したセキュリティー上の弱点、セキュリティー機能を回避した方法の詳細、システム内部での行動の説明が概説されます。 また、レポートには、脆弱性の修正に関する具体的な推奨事項が含まれることもあります。 社内のセキュリティー・チームは、この情報を使用して、実際の攻撃に対する防御を強化できます。
ペン・テスターは、偵察を実施し、脆弱性を検出し、ペン・テスト・プロセスの重要な部分を自動化するために、複数のツールを使用します。 最も一般的なツールには以下があります。
専用オペレーティング・システム:ほとんどのペン・テスターは、ペネトレーション・テストとエシカル・ハッキングのために設計されたOSを使用します。 最も人気のあるOSはKali Linuxです。これは、Nmap、Wireshark、Metasploitなどのペン・テスト・ツールがプリロードされているオープンソースのLinuxディストリビューションです。
資格情報クラッキング・ツール:これらのプログラムは、暗号化を破ったり、総当たり攻撃を開始することで、パスワードを明らかにします。総当たり攻撃では、機能するパスワードができるまで、可能性のあるパスワードを自動的に生成してテストするためにボットまたはスクリプトが使用されます。 例として、Medusa、Hyrda、Hashcat、John the Ripperが挙げられます。
ポート・スキャナー:ペン・テスターは、ポート・スキャナーを使用することで、ネットワーク侵害に使用できる、オープンで使用可能なポートについて、リモートでデバイスをテストできます。 Nmapが最も広く使用されているポート・スキャナーですが、masscanとZMapも一般的に使用されています。
脆弱性スキャナー:脆弱性スキャン・ツールは、システムで既知の脆弱性を検出するため、ペン・テスターはターゲットへの潜在的な入り口を迅速に見つけることができます。 例として、Nessus、Core Impact、Netsparkerが挙げられます。
Web脆弱性スキャナーは、脆弱性スキャナーのサブセットで、WebアプリケーションとWebサイトの評価を行います。 例として、Burp SuiteとOWASPのZed Attack Proxy(ZAP)が挙げられます。
パケット・アナライザー:ペン・テスターは、パケット・スニファーとも呼ばれるパケット・アナライザーを使用することで、パケットの取り込みと検査を行い、ネットワーク・トラフィックを分析できます。 ペン・テスターは、トラフィックの送信元と送信先、場合によっては含まれるデータを把握することができます。 Wiresharkとtcpdumpが、最も広く利用されているパケット・アナライザーです。
Metasploit:Metasploitは多くの機能を備えた、ペネトレーション・テスト・フレームワークです。 最も重要なことは、ペン・テスターはMetasploitを利用することで、サイバー攻撃を自動化できることです。 Metasploitには、事前に作成されたセキュリティー上の弱点を悪用するコードとペイロードのライブラリーが組み込まれています。 ペン・テスターは、セキュリティー上の弱点を選択し、ターゲット・システムに送るペイロードを提供し、Metasploitが残りの作業を処理するようにできます。
アプリケーション、ネットワーク、ハードウェア、人員に対するペネトレーション・テストにより、最も重要な資産を攻撃に晒す脆弱性を発見し、修正します。
X-Force Redは、組織に侵入して、攻撃者が個人的利益を得るために利用するリスクの高い脆弱性を明らかにする、エシカル・ハッカーのグローバル・チームです。
業界最先端のXDRスイートを使用して、脅威を迅速に検出して排除します。