ペネトレーション・テスト(ペン・テストとも呼ばれます)は、模擬サイバー攻撃により、コンピューター・システムの脆弱性を見つけるセキュリティー・テストです。
ペネトレーション・テストは、倫理的ハッキング技術に熟練したセキュリティー専門家が実施する必要があります。倫理的ハッキングの目的は、ハッキング・ツールや技術を使用して、実際に害を及ぼすのではなく、セキュリティーの脆弱性を修正することです。 企業はペネトレーション・テストの実施者を雇い、アプリケーション、ネットワーク、その他の資産に対して模擬攻撃を開始します。 実施者が偽の攻撃を仕掛けることで、セキュリティー・チームは重大なセキュリティー上の脆弱性を発見し、全体的なセキュリティー体制を強化できます。
「倫理的ハッキング」と「ペネトレーション・テスト」という用語は同じ意味で使用されることがありますが、厳密には違いがあります。 倫理的ハッキングは、ネットワーク上のセキュリティーを強化するためのハッキング・スキルの使用を含む、より広範なサイバー セキュリティー分野を指します。 ペネトレーション・テストは、倫理的ハッキングの実行者が使用する手法の1つにすぎません。 倫理的ハッキングの実行者は、マルウェア分析、リスク評価、その他のサービスを提供する場合もあります。
最新のデータ侵害コスト レポートを使用して、データ侵害のリスクをより適切に管理するためのインサイトを入手します。
X-Force脅威インテリジェンス・インデックスに登録する
企業がペネトレーション・テストを実施する理由は主に3つあります。
ペネトレーション・テストは、脆弱性評価だけを行うよりも包括的な結果を得られます。 ペネトレーション・テストと脆弱性評価はどちらも、セキュリティー・チームがアプリケーション、デバイス、ネットワーク上の脆弱性を特定するのに役立ちます。 ただし、これらの方法は目的が若干異なるため、多くの組織はどちらか一方を選ぶのではなく、両方を実施しています。
脆弱性アセスメントは通常、システム内の既知の脆弱性を探し、見直せるようフラグを立てるために定期的に実施される自動スキャンです。 セキュリティー・チームは脆弱性評価により、一般的な欠陥を迅速にチェックします。
ペネトレーション・テストにはさらに一歩踏み込んだチェック機能があります。 ペネトレーション・テストの実施者は脆弱性を発見すると、悪意のあるハッカーの動作を模倣した模擬攻撃で脆弱性を悪用します。 これにより、セキュリティー・チームは、実際のハッカーがどのように脆弱性を悪用して機密データにアクセスしたり、業務を妨害したりするかを深く理解することができます。 セキュリティー・チームは、ハッカーが何を行うかを推測するのではなく、この知識を用いてサイバー脅威に対する現実的なネットワーク・セキュリティー対策を設計できます。
ペネトレーション・テストの実施者は自動プロセスと手動プロセスの両方を駆使して、既知および未知の脆弱性を発見します。 また、発見した脆弱性を積極的に悪用するため、誤検知が発生する可能性は低くなります。テストの実施者が欠陥を悪用できるのであれば、サイバー犯罪者も悪用できます。 また、ペネトレーション・テスト・サービスは、ハッカーの観点からシステムにアプローチする外部セキュリティー専門家により提供されるため、ペネトレーション・テストによって、社内のセキュリティー・チームが見逃す可能性のある脆弱性が発見されることがよくあります。
サイバーセキュリティーの専門家は、ペネトレーション・テストの実施を推奨しています。多くのサイバーセキュリティーの専門家や規制当局は、事前対応型のセキュリティー対策としてペネトレーション・テストの実施を推奨しています。例えば2021年、米国連邦政府(ibm.com外部へのリンク)は、増加するランサムウェア攻撃を防ぐため、ペネトレーション・テストを実施するよう企業に促しました。
ペネトレーション・テストは法規制への準拠をサポートします。 医療保険の相互運用性と説明責任に関する法律(HIPAA法)や一般データ保護規則(GDPR)をはじめとするデータ・セキュリティー規制では、特定のセキュリティー管理が義務付けられています。 ペネトレーション・テストは、企業が意図したとおりの制御が機能することを確認することで、これらの規制への準拠証明するのに役立ちます。
他の規制ではペネトレーション・テストが明示的に要求されています。クレジット・カード業界データ・セキュリティー基準(PCI DSS)では、定期的な「内部と外部のペネトレーション・テスト」を特に要求しています(ibm.com外部へのリンク)。
ペネトレーション・テストは、ISO/IEC 27001(ibm.com外部へのリンク)などの自主的な情報セキュリティー規格への準拠もサポートします。
すべてのペネトレーション・テストには、企業のコンピューター・システムに対する模擬攻撃が含まれますが、ペネトレーション・テストの種類によって、攻撃対象となる企業資産の種類も異なります。
アプリケーションのペネトレーション・テストでは、WebアプリケーションやWebサイト、モバイル・アプリやIoTアプリケーション、クラウド・アプリケーション、アプリケーション・プログラミング・インターフェース(API)などのアプリケーションや関連システムの脆弱性を探します。
多くの場合、ペネトレーション・テストの実施者は、オープン・ウェブ・アプリケーション・セキュリティ・プロジェクト(OWASP)トップ10(ibm.com外部へのリンク)にリストされている脆弱性を検索することから始めます。 OWASPトップ10は、Webアプリケーションにおける最重要脆弱性リストです。 このリストはサイバーセキュリティー情勢の変化を反映するために定期的に更新されますが、一般的な脆弱性には悪意のあるコードの挿入、構成ミス、認証の失敗などがあります。 OWASPトップ10以外にも、アプリケーションのペネトレーション・テストでは、対象のアプリケーションに固有の可能性がある、あまり一般的ではないセキュリティー上の欠陥や脆弱性も探します。
ネットワークのペネトレーション・テストは、会社のコンピューター・ネットワーク全体を攻撃します。 ネットワークのペネトレーション・テストには、大きく分けて外部テストと内部テストの2つのタイプがあります。
外部テストでは、ペネトレーション・テストの実施者が外部ハッカーの動作を模倣して、サーバー、ルーター、Webサイト、従業員のコンピューターなどのインターネットに接続された資産のセキュリティー上の問題を見つけます。 ペネトレーション・テストの実施者が外部からネットワークに侵入しようとするため、これらは「外部テスト」と呼ばれます。
内部テストでは、ペネトレーション・テストの実施者は悪意のある内部者や盗まれた資格情報を持つハッカーの行動を模倣します。 その目的は、ネットワーク内部から人が悪用する可能性のある脆弱性(例えば、アクセス権限を悪用して機密データを盗むなど)を明らかにすることです。
これらのセキュリティー・テストでは、ノートPC、モバイル・デバイス、IoTデバイス、運用技術(OT)など、ネットワークに接続されたデバイスの脆弱性を調べます。
ペネトレーション・テストの実施者は、ハッカーがエンドポイントへのリモート・アクセスを得ることを目的としたオペレーティング システムのエクスプロイトなど、ソフトウェアの欠陥を探す場合があります。 悪意のある攻撃者が侵入する可能性のある不適切に保護されたデータセンターなど、物理的な脆弱性を探す場合もあります。 侵害されたデバイスからネットワークの他の部分への移動経路を評価することもあります。
人材のペネトレーション・テストは、サイバーセキュリティーと関連した従業員の意識における弱点を評価します。別の言い方をすれば、これらのセキュリティー・テストは、企業がソーシャル・エンジニアリング攻撃に対してどの程度脆弱かを評価します。
人材のペネトレーション・テストの実施者は、フィッシング、ヴィッシング(音声フィッシング)、スミッシング(SMSフィッシング)などの手法を使用して、従業員を騙して機密情報を漏洩させます。 人材のペネトレーション・テストによって、オフィスの物理的なセキュリティーが評価される場合もあります。 例えば、ペネトレーション・テストの実施者は配達員に変装して建物に侵入しようとする可能性があります。 「共連れ」と呼ばれるこの手口は、現実世界の犯罪者によってよく使われています。
ペネトレーション・テストを開始する前に、テスト・チームと会社はテストの範囲を設定します。 この範囲では、どのシステムがテストされるのか、いつテストが行われるのか、ペネトレーション・テストの実施者が使用できる方法が概説されます。 テスト範囲は、ペネトレーション・テストの実施者が事前にどの程度の情報を取得できるかも決定します。
ブラックボックス・テストでは、ペネトレーション・テストの実施者は攻撃対象となるシステムに関する情報を持ちません。 実際のハッカーが行うように、攻撃計画を立てるために独自の調査に頼る必要があります。
ホワイトボックス・テストでは、ペネトレーション・テストの実施者は攻撃対象となるシステムに対するあらゆる情報を持ちます。 企業は、ネットワーク図、ソースコード、認証情報などの詳細を共有します。
グレーボックス・テストでは、ペネトレーション・テストの実施者はいくつかの情報を与えられますが、多くは得られません。 例えば、企業がネットワーク・デバイスのIP範囲を共有する場合もありますが、ペネトレーション・テストの実施者は自らそれらのIP範囲の脆弱性を調査する必要があります。
範囲が設定されたら、テストを開始します。ペネトレーション・テストの実施者は、いくつかのペネトレーション・テストの手順に従う場合があります。一般的なものとしては、OWASPのアプリケーション・セキュリティー・テスト・ガイドライン(ibm.com外部へのリンク)やペネトレーション・テスト実行標準(PTES)(ibm.com外部へのリンク)、および米国国立標準技術研究所(NIST)SP 800-115(ibm.com外部へのリンク)などがあります。
テスト・チームがどの方法を使用するかに関係なく、プロセスは通常、全体として同じ手順に従います。
テスト・チームは攻撃対象となるシステムに関する情報を収集します。 ペネトレーション・テストの実施者は、攻撃対象に応じてさまざまな偵察方法を使用します。 例えば、攻撃対象がアプリの場合、ペネトレーション・テストの実施者はそのソースコードを調べるかもしれません。 攻撃対象がネットワーク全体の場合、ペネトレーション・テストの実施者はパケット・アナライザーを使用してネットワーク・トラフィック・フローを検査することがあります。
ペネトレーション・テストの実施者は、オープンソース・インテリジェンス(OSINT)もよく活用しています。ペネトレーション・テストの実施者は、公開された文書やニュース記事、さらには従業員のソーシャル・メディアやGitHubアカウントを確認して攻撃対象に関する貴重な情報を収集します。
ペネトレーション・テストの実施者は、偵察ステップで得た知識を利用して、システム内の悪用可能な脆弱性を特定します。例えば、ペネトレーション・テストの実施者は、Nmapなどのポート・スキャナーを使用して、マルウェアを送信可能で悪用できそうなポートを探す場合があります。ソーシャル・エンジニアリングのペネトレーション・テストでは、従業員の認証情報を盗むためのフィッシング・メールに使用する、偽のストーリー、つまり口実を作成することがあります。
このステップの一環として、ペネトレーション・テストの実施者はセキュリティー対策が侵入にどのように反応するかをチェックする場合があります。 例えば、何が起こるかを確認するために、不審なトラフィックを会社のファイアウォールに送信する場合があります。 ペネトレーション・テストの実施者は、学習したことを利用して、残りのテストで検知されないようにします。
テスト・チームは実際の攻撃を開始します。 ペネトレーション・テストの実施者は、攻撃対象のシステム、発見した脆弱性、テストの範囲に応じて、さまざまな攻撃を試みます。 このテストでごく一般的に使用される攻撃には、次のようなものがあります。
SQLインジェクション:テスト実施者が悪意のあるコードを入力フィールドに入力し、ウェブページまたはアプリを取得して機密データを開示させようとします。
クロスサイト・スクリプティング:テスト実施者が、企業のウェブサイトに悪意のあるコードを埋め込もうとします。
サービス拒否攻撃:ペネトレーション・テスト実施者が、サーバーやアプリ、その他のネットワーク・リソースにトラフィックを大量に送信してオフラインにしようとします。
ソーシャル・エンジニアリング:ペネトレーション・テスト実施者が、フィッシングやおとり、プリテキスティング、またはその他の戦術を使用して、従業員をだましてネットワーク・セキュリティーを侵害します。
ブルート・フォース攻撃:ペネトレーション・テストの実施者は、いくつかのパスワードを生成し、機能するまでテストするスクリプトを実行することによって、システムへの侵入を試みます。
中間者攻撃:ペネトレーション・テストの実施者は、2つのデバイスまたはユーザー間のトラフィックを傍受して、機密情報を盗んだり、マルウェアを仕掛けたりします。
ペネトレーション・テストの実施者は、脆弱性を悪用してシステムへの足がかりを得ると、移動してさらに多くのシステムにアクセスしようとします。 この段階では、ペネトレーション・テストの実施者が脆弱性から脆弱性へと横移動してネットワークの奥深くまで侵入するため、「脆弱性連鎖」と呼ばれることもあります。 例えば、従業員のコンピューターにキーロガーを仕掛けることから始めるかもしれません。 そのキーロガーを使用すると、従業員の資格情報を取得できます。 これらの資格情報を使用して、機密データベースにアクセスします。
この段階でのペネトレーション・テストの実施者の目標は、セキュリティー対策を回避しながらアクセスを維持し、より多くのシステムや情報に侵入できるようにすること(エスカレーション)です。ペネトレーション・テストの実施者はこれらすべての手順を、攻撃者として捕まるまで、数週間、数カ月、または数年間かけてシステムに潜む可能性がある標的に対して持続的に行われる攻撃APT攻撃を模倣します。
模擬攻撃が終わると、ペネトレーション・テストの実施者は、仕掛けたバックドア型トロイの木馬や変更したコンフィギュレーションなど、自分たちが残した痕跡を一掃し、現実世界のハッカーがペネトレーション・テストの実施者のエクスプロイトを利用してネットワークに侵入できないようにします。
この段階で、ペネトレーション・テストの実施者は攻撃に関するレポートを作成します。 レポートでは通常、発見した脆弱性、使用したエクスプロイト、セキュリティー対策を回避した方法の詳細、システム内部で行った行為の説明が概説されます。 レポートには、脆弱性の修復に関する具体的な推奨事項も含まれる場合があります。 社内セキュリティー・チームはこの情報を使用して、現実世界の攻撃に対する防御を強化できます。
ペネトレーション・テストの実施者は、さまざまなツールを使用して偵察を実施し、脆弱性を検知し、ペネトレーション・テスト手順の主要な部分を自動化します。 最も一般的な戦術には次のものがあります。
専用のオペレーティング・システム:ほとんどのペネトレーション・テストの実施者は、ペネトレーション・テストや倫理的ハッキングのために設計された専用OSを使用しています。 最も人気があるのは、Nmap、Wireshark、Metasploitなどのペン・テスト・ツールがプリインストールされたオープンソースのLinuxが配布した「Kali 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は、組織に侵入して、攻撃者が個人的な利益のために利用するリスクの高い脆弱性を明らかにする、エシカル・ハッカーのグローバル・チームです。
脅威ハンティングは、組織のネットワーク内で未知の脅威、または現在進行中で未修復の脅威を特定する事前対応型のアプローチです。
サイバー攻撃は、コンピューター システムへの不正アクセスを通じて情報を盗んだり、公開したり、変更したり、無効にしたり、破壊したりする望ましくない試みです。
インサイダー脅威は、企業資産への正当なアクセスを許可されたユーザーから発生し、意図的または偶発的に資産を悪用します。