はじめに
セキュリティの世界でよく耳にする 「Vulnerability(脆弱性)」、「Exploit(エクスプロイト)」、そして 「CVE」。
この記事では、それぞれの定義と役割、学習に役立つリソースをまとめます。
1. Vulnerabilities(脆弱性)
定義
ソフトウェアやハードウェア、ネットワーク設計に存在する 欠陥や弱点。
攻撃者に悪用されると、情報漏洩・権限昇格・サービス停止などの被害を招きます。
例
- 入力チェック不足 → SQL Injection
- メモリ管理ミス → Buffer Overflow
- 弱い暗号利用 → Heartbleed (CVE-2014-0160)
参考リンク
2. Exploits(エクスプロイト)
定義
脆弱性を実際に 攻撃・利用するコードや手法。
ペネトレーションテストやレッドチーム演習では合法的に使用されます。
種類
- PoC(Proof of Concept): 動作確認用のサンプルコード
- 攻撃ツール: Metasploit モジュール、Exploit-DBの公開コード
- ワーム/マルウェア: 実際に拡散・感染を行う攻撃プログラム
参考リンク
3. CVE(Common Vulnerabilities and Exposures)
定義
CVE は「共通脆弱性識別子」。世界中の脆弱性に 一意のID を付与し、同じ脆弱性を同じ名前で呼べるようにした仕組みです。
-
フォーマット:
CVE-年-番号
例:CVE-2014-0160
(Heartbleed) - 管理組織: MITRE Corporation
- 目的: 脆弱性情報の統一・混乱防止
利用の流れ
- 研究者が脆弱性を発見し、CVE ID が割り当てられる
- NVD に登録され、CVSSスコアなどの詳細情報が追加
- ベンダーがパッチを公開し、利用者が更新
有名な例
-
CVE-2014-0160 (Heartbleed)
OpenSSL の脆弱性。攻撃者がメモリから機密情報を取得可能。 -
CVE-2017-0144 (EternalBlue)
Windows SMB の脆弱性。WannaCry ランサムウェアで悪用された。
参考リンク
- CVE Program (MITRE)
- NVD Search
4. Vulnerabilities / Exploits / CVE の関係
- Vulnerability = 壊れた鍵
- Exploit = その壊れた鍵を使って侵入する方法
- CVE = その壊れた鍵に付けられた世界共通のラベル
5. 学習・演習に役立つサイト
- TryHackMe(初心者〜中級者向けの実習環境)
- Hack The Box(実際の攻撃シナリオを体験可能)
- OWASP Top 10(代表的な脆弱性のリスト)
6. 図で理解する
まとめ
- Vulnerability(脆弱性) = 欠陥や弱点
- Exploit(エクスプロイト) = 脆弱性を攻撃する方法
- CVE(共通脆弱性識別子) = 世界で統一されたID
セキュリティ担当者・開発者は、CVEを起点に脆弱性を追跡し、Exploitの有無や修正状況を確認するのが基本です。