対象試験と出題頻度
脆弱性診断は、情報セキュリティマネジメント・基本情報技術者・応用情報技術者試験で出題されるセキュリティの重要キーワードです。
「ペネトレーションテスト」との違いがよく問われるので、両者の違いを明確に理解しておきましょう。
詳細をクリックして確認
情報セキュリティマネジメント
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
用語の定義
脆弱性診断(Vulnerability Assessment)とは、一言で言うと「システムやアプリケーションに存在するセキュリティ上の弱点(脆弱性)を、ツールや手動検査によって網羅的に洗い出す検査手法」のことです。
イメージとしては、「家の防犯診断」のようなものです。専門家が家中をチェックして、「この窓の鍵は古くて壊れやすい」「この玄関ドアはピッキングに弱い」「勝手口に防犯カメラがない」といった弱点を一覧にしてくれる。これが脆弱性診断の考え方です。実際に泥棒役として侵入を試みるわけではなく、あくまで「弱点のリストアップ」が目的です。
情報処理試験を勉強していると、「脆弱性診断とペネトレーションテストって何が違うの?」と混乱しがちです。結論から言えば、脆弱性診断は「弱点を網羅的に洗い出す」、ペネトレーションテストは「実際に侵入できるか試す」。この違いを押さえれば、試験問題は確実に解けます。
📊 脆弱性診断とペネトレーションテストの違い
| 項目 | 脆弱性診断 | ペネトレーションテスト |
|---|---|---|
| 目的 | 脆弱性を網羅的に洗い出す | 実際に侵入できるか検証する |
| アプローチ | ツールによる自動スキャンが中心 | 専門家による手動テストが中心 |
| 範囲 | 広く浅く(網羅性重視) | 狭く深く(実現性重視) |
| 侵入の試行 | しない | する |
| 例え | 家の弱点をすべてリストアップ | 実際に侵入を試みる |
解説
脆弱性診断は、システムのセキュリティ状態を把握するための基本的な検査手法です。定期的に実施することで、新たに発見された脆弱性や、設定ミスによるセキュリティホールを早期に発見・対処できます。
脆弱性診断の種類
脆弱性診断は、診断対象によって大きく2種類に分けられます。試験では両方の特徴が問われることがあるので、違いを理解しておきましょう。
プラットフォーム診断(ネットワーク診断)は、サーバーやネットワーク機器のOS、ミドルウェア、ネットワーク設定などを対象とした診断です。ポートスキャンを行い、不要なポートが開いていないか、既知の脆弱性を持つバージョンのソフトウェアが動作していないか、設定ミスがないかなどを検査します。
Webアプリケーション診断は、Webサイトやwebアプリケーションを対象とした診断です。SQLインジェクション、クロスサイトスクリプティング(XSS)、クロスサイトリクエストフォージェリ(CSRF)など、Webアプリケーション特有の脆弱性を検査します。
📊 プラットフォーム診断とWebアプリ診断の比較
| 項目 | プラットフォーム診断 | Webアプリケーション診断 |
|---|---|---|
| 診断対象 | OS、ミドルウェア、ネットワーク機器 | Webサイト、Webアプリケーション |
| 主な検査項目 | 不要なポート、古いバージョン、設定ミス | SQLi、XSS、CSRF、認証の不備など |
| 診断方法 | ポートスキャン、バナー取得など | リクエスト改ざん、入力値の検証など |
| 代表的なツール | Nessus、OpenVASなど | OWASP ZAP、Burp Suiteなど |
脆弱性診断の流れ
脆弱性診断は、一般的に以下の流れで実施されます。
①スコープ定義では、診断対象のシステム、IPアドレス、URL、診断項目などを明確にします。
②情報収集では、対象システムの構成情報を収集します。ポートスキャン、バナー取得、Webクローリングなどを行います。
③脆弱性スキャンでは、診断ツールを使用して、既知の脆弱性がないかを自動的にスキャンします。
④手動検査では、ツールでは検出できない脆弱性を、専門家が手動で検査します(特にWebアプリ診断で重要)。
⑤結果分析・レポート作成では、検出された脆弱性を重要度(Critical、High、Medium、Lowなど)で分類し、対策を含めた報告書を作成します。
💡 脆弱性診断で検出される代表的な脆弱性
【プラットフォーム診断】
・不要なポートの開放(Telnet、FTPなど)
・パッチ未適用のOS・ソフトウェア
・デフォルトパスワードの使用
・暗号化されていない通信(HTTP、Telnet)
【Webアプリケーション診断】
・SQLインジェクション
・クロスサイトスクリプティング(XSS)
・クロスサイトリクエストフォージェリ(CSRF)
・認証・セッション管理の不備
・ディレクトリトラバーサル
脆弱性の重要度評価(CVSS)
脆弱性診断の結果は、CVSSスコアなどを用いて重要度が評価されます。
CVSS(Common Vulnerability Scoring System:共通脆弱性評価システム)は、脆弱性の深刻度を0.0〜10.0のスコアで評価する国際的な基準です。スコアが高いほど深刻な脆弱性であり、優先的に対処する必要があります。
一般的に、9.0〜10.0はCritical(緊急)、7.0〜8.9はHigh(重要)、4.0〜6.9はMedium(警告)、0.1〜3.9はLow(注意)と分類されます。
⚠️ 脆弱性診断の限界と注意点
① 誤検知(False Positive):実際には問題ない箇所を脆弱性として検出することがある。結果の精査が必要
② 検出漏れ(False Negative):ツールでは検出できない脆弱性もある。特にロジックの問題は手動検査が必要
③ 一時点の評価:診断時点でのセキュリティ状態を評価するもの。新たな脆弱性は日々発見されるため、定期的な実施が必要
④ 対策は別途必要:脆弱性を発見しただけでは安全にならない。修正・対策の実施が不可欠
試験ではこう出る!
脆弱性診断は、情報セキュリティマネジメント・基本情報・応用情報技術者試験で出題されます。「ペネトレーションテストとの違い」「プラットフォーム診断とWebアプリ診断の違い」が定番の出題パターンです。
【試験で狙われるポイント】
- 脆弱性診断 = 脆弱性を網羅的に洗い出す(侵入はしない)
- ペネトレーションテスト = 実際に侵入を試みて検証
- プラットフォーム診断 = OS、ミドルウェア、ネットワーク機器が対象
- Webアプリ診断 = SQLi、XSS、CSRFなどWeb特有の脆弱性が対象
- CVSSスコアで脆弱性の深刻度を評価
試験問題で「システムの脆弱性を網羅的に調査し、一覧化する」や「ツールを使用して既知の脆弱性をスキャンする」という記述があれば、それは「脆弱性診断」に関する記述です。
試験ではここまで押さえておけばOKです。具体的な診断ツールの操作方法やCVSSスコアの計算方法までは問われないので、「網羅的に脆弱性を洗い出す」という基本概念を確実に理解しておきましょう。
📊 セキュリティ評価手法の整理(試験対策)
| 手法 | 特徴 |
|---|---|
| 脆弱性診断 | 脆弱性を網羅的に洗い出す(ツール中心) |
| ペネトレーションテスト | 実際に侵入を試みて検証(専門家中心) |
| プラットフォーム診断 | OS、ミドルウェア、ネットワーク機器を対象 |
| Webアプリ診断 | WebサイトのSQLi、XSS等を対象 |
📝 IPA試験での出題ポイント
脆弱性診断は「網羅的に洗い出す」「ツールによる自動スキャン」がキーワードです。ペネトレーションテストとの違いを聞かれたら、「侵入を試みるかどうか」で区別しましょう。また、「プラットフォーム」「Webアプリケーション」という診断対象の違いも押さえておくと、より確実に得点できます。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. 脆弱性診断に関する説明として、最も適切なものはどれでしょうか?
- A. システムやアプリケーションに存在するセキュリティ上の弱点を、ツールや手動検査によって網羅的に洗い出す検査手法
- B. 実際に攻撃者の視点でシステムへの侵入を試み、脆弱性が悪用可能かを検証する手法
- C. 攻撃者をおびき寄せるために意図的に設置する「おとり」のシステム
正解と解説を見る
正解:A
解説:
脆弱性診断(Vulnerability Assessment)は、システムやアプリケーションに存在するセキュリティ上の弱点(脆弱性)を、診断ツールや手動検査によって網羅的に洗い出す検査手法です。プラットフォーム診断(OS、ミドルウェア、ネットワーク機器が対象)とWebアプリケーション診断(SQLi、XSS等が対象)の2種類があります。実際に侵入を試みるわけではなく、脆弱性の「リストアップ」が主な目的です。
選択肢Bは「ペネトレーションテスト(侵入テスト)」の説明です。ペネトレーションテストは実際に侵入を試みる点が脆弱性診断との違いです。選択肢Cは「ハニーポット」の説明であり、いずれも脆弱性診断とは異なります。