ペネトレーション・テスト

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

ペネトレーション・テストは、セキュリティを評価するためにコンピュータ・システムで実行される、許可されたシミュレーション攻撃です。ペネトレーション・テスターは、システムの弱点がビジネスにもたらす影響を見つけて実証するために、攻撃者と同じツール、テクニック、プロセスを使用します。

ペネトレーション・テストでは、通常、ビジネスを脅かす可能性のあるさまざまな攻撃をシミュレーションします。ペネトレーション・テストでは、認証された状態と認証されていない状態、およびさまざまなシステム・ロールからの攻撃に対抗できるほどシステムが堅牢であるかどうかを確認できます。スコープが適切であれば、ペネトレーション・テストは評価する必要のあるシステムのあらゆる側面を深く掘り下げることができます。

ペネトレーション・テストの利点

危険なセキュリティ上の欠陥を排除するため、ソフトウェアやシステムを自社組織で一から設計することが理想です。ペネトレーション・テストは、その目的をどの程度達成できたかについての知見を提供します。ペネトレーション・テストは次のようなセキュリティ・アクティビティに対応します。詳しくはこちらをご覧ください

  • システムの弱点を見つける
  • コントロールの堅牢性を判定する
  • データのプライバシーおよびセキュリティに関する法令(PCI DSSHIPAAGDPRなど)への準拠を支援する
  • 現在のセキュリティ体制と予算の優先順位を管理するための定性的・定量的な例を提供する

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

ペネトレーション・テストの目的に応じて、組織は、ターゲット・システムに関するさまざまなレベルの情報やアクセスをテスターに提供します。場合によっては、ペネトレーション・テスト・チームが最初に設定した1つのアプローチに従います。また、ペネトレーション・テスト中のシステムに対する意識向上に伴って、テスト・チームが戦略を進化させていく場合もあります。業界では、以下の3種類のペネトレーション・テストが注目されています。

  • ブラックボックス チームはターゲット・システムの内部構造について何も知りません。テストはハッカーのように機能し、外部から悪用可能な弱点を探ります。
  • グレーボックス チームには1つ以上の資格情報セットに関する知識があります。また、ターゲットの内部データ構造、コード、アルゴリズムについても知っています。ペネトレーション・テスターは、ターゲット・システムのアーキテクチャ図など、詳細な設計ドキュメントに基づいてテストケースを作成する場合があります。
  • ホワイトボックス ホワイトボックス・テストでは、ペネトレーション・テスターは、システムやシステム・アーティファクト(ソースコード、バイナリ、コンテナ、場合によってはシステムを実行しているサーバー)にアクセスできます。ホワイトボックス・アプローチは最短時間で最高レベルの保証を実現します。

ペネトレーション・テストのフェーズ

ペネトレーション・テスターは、意欲的な敵対者によって行われた攻撃をシミュレーションすることを目指しています。これを行うには、通常、以下のステップを含む計画を実行します。

  • 事前調査 攻撃戦略を知らせるために、パブリック・ソースとプライベート・ソースからターゲットに関する情報を可能な限り多く収集します。ソースには、インターネット検索、ドメイン登録情報の取得、ソーシャル・エンジニアリング、非侵入型ネットワーク・スキャン、場合によってはダンプスター・ダイビング(ゴミ漁り)などが含まれます。この情報は、ペネトレーション・テスターがターゲットのアタックサーフェスと潜在的な脆弱性をマッピングするために役立ちます。事前調査はペネトレーション・テストの範囲と目的によって異なる場合があり、電話1本でシステムの機能を通しテストするだけの簡単なものになる場合もあります。
  • スキャン ペネトレーション・テスターはツールを使用して、対象のWebサイトまたはシステムの弱点(オープンサービス、アプリケーション・セキュリティの問題、オープンソースの脆弱性など)を調べます。ペネトレーション・テスターは、事前調査やテスト中の発見に基づいて、さまざまなツールを使用します。
  • アクセスの取得 攻撃者の動機は、データの盗難、変更、削除から、資金移動や単なる評判の毀損までさまざまです。各テストケースを実行するには、ペネトレーション・テスターは、SQLインジェクションなどの弱点を利用するか、マルウェア、ソーシャル・エンジニアリングなどの方法でシステムにアクセスするための最適なツールとテクニックを決定する必要があります。
  • アクセスの維持 ターゲットにアクセスした後、ペネトレーション・テスターはシミュレーションによる攻撃がデータの抽出、変更、機能の乱用などの目標を達成するために十分な長さで接続を維持する必要があります。潜在的な影響を実証することが目的です。
ペネトレーション・テスト | Synopsys

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

ペネトレーション・テスト用の万能ソリューションはありません。ポート・スキャン、アプリケーション・スキャン、Wi-Fiへの侵入、ネットワークへの直接侵入に対して、さまざまなツールセットが必要になり、必要なツールはターゲットによって異なります。しかし、大まかに言えば、ペネトレーション・テスト・ツールの種類は次の5つに分類されます。

  1. ネットワーク・ホストとオープンポートを検出するための事前調査用ツール
  2. ネットワーク・サービス、Webアプリケーション、APIの問題を検出するための脆弱性スキャナー
  3. プロキシツール(例:特殊なWebプロキシや一般的な中間者プロキシ)
  4. システムへの侵入の足がかりの取得や資産へのアクセスを実現するためのエクスプロイト・ツール
  5. システムとの通信、アクセスの維持と拡大、攻撃目標の達成のためのポスト・エクスプロイテーション・ツール

マネージド・ペネトレーション・テスト・サービスの詳細

詳細はこちら

ペネトレーション・テストと自動テストの比較

ペネトレーション・テストは、主に手動で行う作業です。ペネトレーション・テスターは、その過程で自動スキャンおよびテスト・ツールを使用します。しかしそれだけではなく、最新の攻撃技術の知識を用いて、脆弱性評価(自動テスト)よりも詳細なテストを行うために、セキュリティ障壁を乗り越える方法を考えます。手動ペネトレーション・テストと自動テストの利点を比較していくつか紹介します。

手動ペネトレーション・テスト

ペネトレーション・テストでは、一般的なリスト(OWASP Top 10など)に見つからない脆弱性と弱点を明らかにし、自動テストでは見落とされる可能性があるビジネス・ロジック(データ検証、整合性チェックなど)をテストします。また、手動によるペネトレーション・テストのレビューは、自動テストによって報告された誤検知の発見に役立ちます。総じて、手動ペネトレーション・テスターは敵対者のように「考える」専門家であり、スクリプト化されたルーチンに従った自動テスト・ソリューションでは不可能な方法で、攻撃を標的にしてデータを分析し、システムやWebサイトをテストすることができます。

自動テスト

自動テストは、完全な手動ペネトレーション・テスト・プロセスよりも迅速に結果が得られ、必要な専門技術者も少なく済みます。自動テスト・ツールでは、結果を自動的に追跡し、場合によっては一元管理されたレポート・プラットフォームに出力することができます。また、手動ペネトレーション・テストの結果はテストによって異なる場合がありますが、同じシステムで自動テストを繰り返し実行すると、同じ結果が得られます。

ペネトレーション・テストの長所と短所

セキュリティ侵害の頻度と深刻さが年々増していく中、攻撃に耐える方法を可視化する必要性がこれまでになく高まっています。PCI DSSやHIPAAなどの規制では、要件を最新の状態に保つために定期的なペネトレーション・テストが義務付けられています。こうした圧力を念頭に置いて、このタイプの欠陥発見手法の長所と短所の一部を紹介します。

ペネトレーション・テストの長所

  • 自動化ツール、構成およびコーディング標準、アーキテクチャ解析、より簡便なその他の脆弱性評価アクティビティなど、アップストリームのセキュリティ保証プラクティスの穴を見つける
  • 既知のソフトウェアおよび未知のソフトウェアの欠陥とセキュリティ脆弱性(それ自体で大きな懸念を引き起こさないが、複雑な攻撃パターンの一部として重大な危害をもたらす可能性がある軽微な脆弱性を含む)を発見する
  • 多くの悪意のあるハッカーがどのように振る舞うかを模倣して、現実世界の敵対者に可能な限り近付けてシミュレーションし、あらゆるシステムを攻撃することができる

ペネトレーション・テストの短所

  • 人手とコストがかかる
  • バグや欠陥が実稼働環境に入り込むことを包括的に防ぐことはできない