企業のセキュリティ維持にはなぜペネトレーションテストが重要なのか:4種類のツールを使う
WhiteSourceはペネトレーションテストに関する解説記事を公開した。テストの目的と重要性の他、ペネトレーションテストと脆弱性評価との違い、テストを進める7つのステップ、主要なテストアプローチ、テストに使うツールについて紹介した。
オープンソースセキュリティとライセンスコンプライアンス管理プラットフォームを手掛けるWhiteSourceは2021年7月1日(米国時間)、ペネトレーションテストに関する解説記事を公式ブログで公開した。テストの目的と重要性の他、テストの目的と重要性の他、ペネトレーションテストと脆弱性(ぜいじゃく)評価との違い、テストを進める7つのステップ、主要なテストアプローチ、テストに使うツールについて紹介した。
Ponemon InstituteとWhiteSourceによる調査によると、外部からの攻撃やデータの盗難、権限の乱用を防ぐために、企業はアプリケーションセキュリティをますます優先するようになってきている。調査対象となった回答者のうち、53%が外部のペネトレーションテストを利用してアプリケーションを保護しており、46%が内部のペネトレーション手法を利用している(関連記事)。
ペネトレーションテストとは
ペネトレーションテスト(「ペンテスト」や「倫理的ハッキング」と呼ばれることもある)は、攻撃者が悪用する可能性があるコンピュータシステムの脆弱性を発見する目的で、関係者が実行する疑似攻撃。ITインフラに対してセキュリティの状態を分析するための一般的な手法だ。
テスターは基本的に攻撃者の目線でアプリケーションを調査し、攻撃者より早くセキュリティの穴を見つけようとする。テストの最終段階では通常、見つかった脆弱性や悪用方法、修正策の提案をまとめたレポートを作成する。テスト結果は、アプリケーションのセキュリティ対策を改善し、見つかった問題に対処するのに役立つ。
攻撃者が悪用する可能性がある脆弱性は、次のようなさまざまな問題に起因する。
- ソフトウェアの未知または既知の欠陥
- アプリケーションの不適切な構成
- 脆弱なソフトウェア設計フレームワーク
- 脆弱な脅威特定メカニズム
- セキュリティポリシーエラー
- チームのセキュリティ意識の欠如
ペネトレーションテストを実行する前に、まずテスト対象のシステムを保有する企業とテスター双方の同意が必要だ。さもないと、悪意ある違法行為ということになる。企業の経営陣の承認に基づいてテストを実施しなかった場合、テストによって企業の弱点が不正に暴露され、企業が打撃を受ける恐れがある。
企業は通常、外部契約者にペネトレーションテストを委託する。サードパーティーのセキュリティ専門家は、システムの仕組みについて内部者が持つような知識がないため、より自由な発想で、より徹底的なテストができるからだ。
一部の企業は、セキュリティ専門家が自社のシステムをハッキングして脆弱性を発見した場合に、報奨金や賞金を支払うバグバウンティプログラム(バグ報奨金制度)を実施している。
ペネトレーションテストはなぜ重要なのか
ペネトレーションテストにより、アプリケーションのセキュリティをチェックし、重大な脆弱性を発見できる。企業のオンラインサービスへの依存が高まる中、サイバー攻撃が増加の一途をたどっているため、こうした弱点を解消し、攻撃者に隙を与えないことは、これまでになく重要になっている。
それだけでなく、ペネトレーションテストは強力なセキュリティ対策を実装するために役立つ。アプリケーションの防御をテストすることで、どんな異常が発生した場合に、セキュリティが損なわれるかが分かる。これは、新しいセキュリティ対策のコンテキストを提供し、実装を検証する最良の方法だ。
ペネトレーションテストはさまざまなセキュリティ基準の順守に役立つ。GDPR(一般データ保護規則)やHIPAA(医療保険の携行性と責任に関する法律)、PCI DSS(Payment Card Industry Data Security Standard)といったセキュリティ規制基準だ。現在ではデータセキュリティが重視されており、企業はユーザーのデータを安全に保つことを求められている。ペネトレーションテストを行い、機密データの抜き取りに悪用される恐れがあるセキュリティの穴をふさぐことで、コンプライアンス基準を満たすことができる。
ペネトレーションテストと脆弱性評価の違いとは
ペネトレーションテストと脆弱性評価は、いずれも脆弱性の検知と、ITインフラのセキュリティ強化を目的としている。だが、両者は別物だ。
脆弱性評価(脆弱性スキャンとも呼ばれる)は、システムの既知の弱点や脆弱性を発見するテストを行うことを指す。一般に、自動化された脆弱性スキャナーを使って、脅威を特定するとともに、個々の脆弱性の定量化可能な重大性を評価する。
これに対し、ペネトレーションテストでは、意図的に疑似的なサイバー攻撃を仕掛け、特定された脆弱性の悪用によって何ができるかを調べる。
脆弱性スキャンは、ペネトレーションテストの重要な段階と位置付けられる。ペネトレーションテストを行う際に、対象システムの弱点を検知するのに役立つ。
ペネトレーションテストの7つのステップ
ペネトレーションテストは主に、次の7つのステップで行われる。
(1)ペネトレーションテストのスコープ定義
テスト対象のシステムとテスト手続きを定義する。
(2)対象システムの調査
システムの脆弱性をスキャンし、攻撃ベクトルを特定する。
(3)脆弱性の評価
脆弱性データを探索し、脅威モデルを作成する。
(4)疑似攻撃の試行
脆弱性を突いた攻撃を対象ネットワークまたはシステムに対して試行する。
(5)横展開の試行
侵入後、対象ネットワークへの制御メカニズムのインストールと、より多くのシステムへのアクセスの取得を試行する。
(6)リスク分析と推奨事項の取りまとめ
発見した脆弱性とセキュリティシステムの弱点を文書化する。
(7)ペネトレーションテストの報告
経営幹部向けの要約と技術的な詳細を含むレポートを準備する。
ペネトレーションテストには3つのアプローチがある
ペネトレーションテストの手法は、対象システムやテスト条件、目的によって違ってくる。企業は通常、対象システムに関するさまざまなレベルの情報をテスターに提供する。ペネトレーションテストの主要アプローチは、その提供内容の違いに応じた3つに大別できる。
ブラックボックステスト
企業はテスターに対して、事前にほとんど、または全く情報を提供しない。テスターは実際の攻撃と同様の条件でテストを行う。
ホワイトボックステスト
事前にできるだけ多くの情報(アーキテクチャ文書、サーバへの管理者アクセス、ソースコードへのアクセスなどを含む)を企業がテスターに提供する。テスターは対象システムの仕組みを完全に把握した上で、テストを行う。
グレーボックステスト
事前に一定の情報(対象システムの挙動に関する情報、プラットフォーム上のユーザーアカウントへの限定的なアクセス、非公開の一部のシステムへのアクセスなど)を企業がテスターに提供する。テスターはある程度具体的な文脈に沿って詳細なテストを行える。
ペネトレーションテストに使うツールとは
ペネトレーションテストツールはさまざまなものがあるが、主に次のカテゴリーに分類できる。
ポートスキャナー
ネットワークホストとオープンポートを調査し、それらの情報を収集するために使う。
脆弱性スキャナー
システムの既知の脆弱性を発見するために使う。通常、CVE(Common Vulnerabilities and Exposures)が割り当てられた脆弱性を検知し、NVD(National Vulnerability Database)のようなリポジトリに報告されている脆弱性と比較照合する。
アプリケーションスキャナー
攻撃者が悪用する可能性のあるWebアプリケーションの欠陥を評価する。
Webアプリケーションプロキシツール
テスターのWebブラウザと対象Webサーバの間のトラフィックを傍受できる、中間者プロキシや他の特殊なWebプロキシを用いる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 狙われるWebアプリケーション、脆弱性対策とWAFに期待できることとは
当連載ではWebアプリケーションのセキュリティが置かれている状況と、サイバー攻撃について具体的なデータを示し、防御策を紹介している。第1回と第2回ではWebアプリケーションの攻撃対象となる領域と、領域ごとの被害例に加えて、Webアプリケーションが攻撃を受けるまでにたどるプロセスについて簡単に整理した。今回は、Webアプリケーション側で可能な対策について脆弱性への対応とWAFを中心に解説していく。 - 脆弱性テストツールの最新版「Metasploit Framework 5.0」が公開
Rapid7が中心となって開発しているオープンソースのペネトレーション(脆弱性調査)テストフレームワークの最新版「Metasploit Framework 5.0」が、公開された。 - 本当に攻撃されたら何するの?――クラウド環境での脆弱性検査とサイバー攻撃の検知・確認に関する基礎知識
親子の会話で出てくるような素朴な疑問点から、クラウド環境における情報セキュリティの技術を学習する連載。今回は、クラウド環境での脆弱性検査と、サイバー攻撃を受けた場合の検知・確認方法に関する基礎知識について。