いまさら聞けないセキュリティ診断 第1回:脆弱性診断とペネトレーションテストの違い
執筆者: | チーフコンサルタント 橋本 皓司 |

不正アクセスやランサムウェアなどのサイバー攻撃による企業や組織の被害が後を絶ちません。そして、これらの攻撃の手口として「脆弱性」が悪用されるケースが少なくありません。脆弱性は、システムやソフトウェア上の欠陥です。とりわけ重要インフラ企業等においては、影響範囲が広く、社会的な信頼性を脅かす深刻な問題であるため、定期的なセキュリティ対策が求められます。その対策として必要となるのが、脆弱性診断とペネトレーションテストです。
どちらもシステムのセキュリティレベルを評価する手法ですが、その目的、範囲、実施方法には明確な違いがあります。
本コラムは、2回にわたりセキュリティ診断について解説します。第1回では、脆弱性診断とペネトレーションテストとの違い、第2回では、より実践的な攻撃シミュレーションであるTLPT(Threat-Led Penetration Testing、脅威ベースのペネトレーションテスト)とレッドチーム演習の違いを取り上げます。
脆弱性診断とは
1. 脆弱性診断の定義
脆弱性診断とは、組織のITシステム、インフラストラクチャ、アプリケーションに存在するセキュリティ上の弱点(脆弱性)を特定、定量化、優先順位付けすることで、不正アクセスや情報漏洩につながる可能性のある潜在的な欠陥を明らかにする評価手法です。システムやデータへの不正アクセスを試みる権限のないユーザーによって悪用される可能性のある脆弱性を特定します。診断対象は、ネットワーク機器、サーバ機器、Webサイト、Webアプリケーション、オペレーティングシステム、ソフトウェアプログラムなど多岐にわたります。
2. 脆弱性診断の手法
脆弱性診断は、主に自動化されたスキャンと手動による分析という2つの手法を組み合わせて実施されます。
自動スキャン
専用のソフトウェアツールを使用し、既知の脆弱性に関するデータベース(CVEなど)に基づいて、システムやアプリケーションを広範囲にスキャンします。ツールは、設定ミス、古いソフトウェア、その他の潜在的な弱点を効率的に検出することができます。よく使用される代表的なツールには、Nessus、QualysGuard、OpenVAS、InsightVMなどがあります。
手動分析
セキュリティ専門家が、システムの構成やコードを手動で詳細に調査し、自動化ツールでは検出が難しい脆弱性を特定します。例えば、ビジネスロジックの欠陥や複数の脆弱性が連鎖して生じるような複雑な攻撃経路などが該当します。具体的には、Webアプリケーションの入力フォームにおける複数のパラメータを組み合わせることで、本来想定されていない処理が実行される脆弱性や、特定の条件下でのみ発生する権限昇格の脆弱性などは、手動精査によって初めて発見されることがあります。
3. 脆弱性診断の種類
脆弱性診断には、サーバやネットワーク機器を対象とするネットワーク診断や、Webアプリケーションを対象とするWebアプリケーション診断など、対象範囲に応じた種類があります。ネットワーク診断では、サーバやファイアウォール、ルータなどの設定不備、不要なポートの開放、既知の脆弱性を持つソフトウェアの利用状況などを調査し、外部からの不正アクセスや内部ネットワークへの侵入リスクを評価します。一方、Webアプリケーション診断では、SQLインジェクションやクロスサイトスクリプティング(XSS)といったWebアプリケーション特有の脆弱性の有無を検証し、情報漏洩やWebサイトの改ざんリスクを特定します。
ネットワーク診断 | ルーター、スイッチ、ファイアウォール、OS、ミドルウェアにおける脆弱性を特定します。この診断は、企業によっては「プラットフォーム診断」と呼ばれることもあります。診断には、Nessus、QualysGuard、OpenVAS等のツールがよく使用されます。 |
---|---|
Webアプリケーション診断 | SQLインジェクション、クロスサイトスクリプティング(XSS)、セキュアでない認証処理など、Webアプリケーション特有の脆弱性を対象とします。また、ソースコードを直接確認する診断手法も存在します。診断には、Burp Suite、OWASP ZAP、Vexなどのツールがよく使用されます。 |
スマートフォンアプリケーション診断 | インジェクション、セキュアでないデータストレージ、認証処理の不備、APIの不適切な実装など、スマートフォンアプリケーション特有の脆弱性を対象とします。 |
クラウド設定診断 | クラウド環境における設定ミスや脆弱性を評価します。診断にはAmazon Inspector(AWS)、Microsoft Defender for Cloud(Microsoft Azure)、Web Security Scanner(Google Cloud Platform)などのツールがよく使用されます。 |
4. 脆弱性診断の利点と限界
脆弱性診断には多くのメリットがありますが、一方で限界も存在します。
表2 利点と限界
利点 | 限界 |
---|---|
|
|
これらにより、自動スキャナだけに頼るのではなく、経験豊富なセキュリティ専門家による手動分析と組み合わせることで、組織のセキュリティ体制をより包括的かつ正確に評価することが重要です。
ペネトレーションテストとは
1. ペネトレーションテストの定義
ペネトレーションテストとは、攻撃者と同じ視点で作成した攻撃シナリオを用いて、企業のシステムに対して疑似サイバー攻撃を実施し、セキュリティ対策の有用性や耐性を評価するセキュリティテストです。テストでは、 サイバー攻撃者が実際に利用する様々な手法、ツールを用いて侵入テストを行い、どこまで防御できるのかを検証します。2. ペネトレーションテストの手法
ペネトレーションテストは、攻撃者がターゲットシステムに関する情報をどの程度事前に把握しているかに応じて、いくつかの手法に分類できます。ブラックボックステスト
対象システムに関する事前の知識を一切持たず、外部の攻撃者の視点からテストを実施する手法です。ホワイトボックステスト
ネットワーク図、ソースコード、認証情報など、対象システムに関する完全な情報を把握したうえでテストを実施する手法です。グレーボックステスト
ユーザー認証情報やネットワーク構成図の一部など、対象システムに関する限定的な情報を持った状態でおこなうテストです。内部の脅威や、ある程度のアクセス権を持つ攻撃者をシミュレートするのに適しています。3. ペネトレーションテストの種類
ペネトレーションテストは、対象範囲と目的に応じてさらに細かく分類できます。注目すべきは、外部ペネトレーションテストがインターネット経由の侵入を、内部ペネトレーションテストが標的型攻撃等で社内ネットワークからの起点として想定し、異なる防御レイヤーを評価する点です。さらに、TLPTは特定の攻撃者を模倣した実践的な評価を行い、レッドチーム演習はITシステムに留まらず、物理的なセキュリティや従業員の意識まで含めた広範な評価を行います。
外部ペネトレーションテスト | ウェブサイト、ウェブアプリケーション、メールサーバ、DNSサーバなど、インターネットに公開されている資産を対象とし、外部からの侵入テストを行います。 |
---|---|
内部ペネトレーションテスト | 組織のネットワーク内で実施され、悪意のある内部関係者や侵害されたアカウントからの攻撃を起点とします。シナリオには、脆弱なパスワードのテスト、アクセス制御の評価、セキュアでないファイル共有の検出、特権昇格の可能性の調査などが含まれます。 |
脅威ベースのペネトレーションテスト(TLPT) | 実際の攻撃手法を模倣し、組織全体の対応力を検証するアプローチです。従来のテストが脆弱性の洗い出しにとどまるのに対し、TLPTはレッドチームの攻撃に対するブルーチームやCSIRT、経営層の対応力を評価し、サイバーレジリエンスを強化します。 |
レッドチーム演習 | レッドチーム演習は、組織のセキュリティ対策全般に対し、攻撃者の視点から侵入・攻撃を試みることで、その有効性と改善点を洗い出す活動です。TLPTとの違いはITシステムに留まらず、物理的なセキュリティ、従業員のセキュリティ意識、インシデント対応プロセスなど、組織全体の脆弱性までを評価対象とすることです。高度な専門知識を持つレッドチームは、制約の少ない条件下で多様な攻撃シナリオを実行し、組織の弱点を徹底的に洗い出します。その目的は、システムの脆弱性の発見に加え、組織全体のセキュリティ体制に潜むリスクを明らかにし、サイバーレジリエンスを強化することにあります。 |
4. ペネトレーションテストの利点と限界
ペネトレーションテストを実施することで、組織はセキュリティ評価を特定のニーズや目的に応じて調整することができます。基本的な外部・内部テストから、重要なシステムのターゲットテストや高度な脅威シミュレーションまで、セキュリティ成熟度やリスクの優先度に応じた手法を選択することが可能です。ただし、ペネトレーションテストにも限界はあり、すべての脅威やリスクを完全に把握できるわけではない点には留意が必要です。
表4 利点と限界
利点 | 限界 |
---|---|
|
|
脆弱性診断とペネトレーションテストの比較
脆弱性診断とペネトレーションテストは、どちらも組織のセキュリティ強化に不可欠なセキュリティ対策の手法です。前述の通り、その目的、方法、対象範囲といったことに加え、実施頻度などにおいても明確な違いがあります。簡単に2つの手法の特徴を比較した表にまとめました(表5)。
表5 脆弱性診断とペネトレーションテストの比較
項目 | 脆弱性診断 | ペネトレーションテスト |
---|---|---|
目的 | 潜在的な脆弱性を網羅的に洗い出す | 既知の脆弱性を悪用し、攻撃者の視点でシステムのセキュリティ対策の実効性を評価する |
方法 | 自動ツールと手動分析を組み合わせ、既知の脆弱性情報を基に幅広く検査を実施 | 事前に定義された攻撃シナリオに基づき、実際にシステムへの侵入を試みる |
対象 | サーバ、ネットワーク機器、Webアプリケーションなど、システムを構成する要素 | 特定の目標システムや情報資産、場合によっては組織全体のセキュリティ体制 |
深さと広さ | 幅広く浅い検査 | 狭く深い検査 |
発見できること | システムに存在する可能性のある脆弱性のリスト | 実際に攻撃が成功するかどうか、侵入経路、影響範囲、セキュリティ対策の有効性 |
実施者のスキル | 脆弱性に関する一般的な知識、ツールの利用スキル | 高度なネットワーク、OS、アプリケーションに関する知識、攻撃手法に関する深い理解、セキュリティ対策の回避スキル |
実施頻度 | 定期的(四半期、半期、年次など) | 必要に応じて(年次、システムの大幅な変更時、セキュリティインシデント発生後など) |
主な利点 | 脆弱性の早期発見と対策、セキュリティレベルの底上げ | 実際の攻撃に対する耐性の評価、セキュリティ対策の有効性の検証、具体的な改善点の特定 |
主な限界 | 誤検出、検出漏れ、文脈的理解の不足 | 時間とリソースを消費、スコープの制限、テスターのスキルに依存 |
両者の特徴は次のようにまとめることができるでしょう。
- 脆弱性診断:
-
- システムの潜在的な弱点を広範囲にわたって洗い出し、全体像を把握します。
- 網羅的なスキャンにより、多数の脆弱性を効率的に検出します。
- ペネトレーションテスト:
-
- 検出された弱点が実際にどのように悪用されるかを、攻撃者の視点から深く検証します。
- 実的な攻撃シナリオをシミュレーションすることで、具体的なリスクと影響を評価します。
したがって、組織は上記の点を考慮し、両者を効果的に組み合わせることが重要です。より強固なセキュリティ体制の構築に向けては、両者が相互に補完し合えるよう、実施計画を立てる必要があります。
まとめ
脆弱性診断とペネトレーションテストは、どちらもセキュリティを
今後のセキュリティ対策に向けて、脆弱性診断とペネトレーションテストの違いを理解し、両者を効果的に活用することで、より安全で信頼性の高いシステムを維持していきましょう。
次回は、ペネトレーションテストの一形態として取り上げた、より高度なセキュリティ診断手法であるTLPT(脅威ベースのペネトレーションテスト)とレッドチーム演習の違いについて詳しく解説いたします。