
CVEリサーチから検知シグネチャ設計までのエンジニアリングプロジェクト: vsftpd 2.3.4バックドア(CVE-2011-2523)を外部から大規模にフィンガープリントし、検証済みの誤検知/見逃し処理を備えた - Python製
CVEから検知シグネチャエンジニアリングへのプロジェクト: 開示された脆弱性をリサーチし、それを外部から識別するフィンガープリントを構築し、実在するラボターゲットに対して検知品質を検証します。
ほとんどの脆弱性リサーチポートフォリオは「Xを悪用した」で終わります。このプロジェクトは、検知エンジニアリングが実際に問うている、より本質的な問いを中心に構築されています:
CVEが一度開示されたら、何も悪用せずに、外部から・大規模に、どのインターネット向けアセットが実際にその脆弱なテクノロジーを稼働しているかを、確実に特定するにはどうすればよいか?
このリポジトリは、実際のCVE 1件(CVE-2011-2523、vsftpd 2.3.4バックドア)に関する完全なワークフローを文書化しています。脆弱性リサーチからフィンガープリント設計、検知スクリプトエンジニアリング、実在するラボターゲットに対する検証までを網羅しており、意図的に検知として構築され、悪用を目的としていません。
CVE Disclosure → Research & Version Analysis → Fingerprint Design
→ Detection Script → Validation (TP/FP/FN review) → Evidence Output
220ウェルカムバナーで正確なバージョンを通知します。このバナーがフィンガープリントの対象面であり、読み取るために認証も悪用も不要です。fingerprint_vsftpd_cve_2011_2523.pyが接続し、バナーを取得して、既知の脆弱シグネチャと正規表現でマッチングし、結果を分類します。undeterminedを報告することを確認)に対して実行します。
/screenshotsにアップロードしたら、スクリーンショットのファイル名をこれらに合わせて変更するか、これらのパスを更新してください。
| フィンガープリントスクリプト | 検証出力 |
|---|---|
| スクリプト | 出力 |
追加の実行詳細:
詳細 詳細 詳細 詳細
# Single target
python3 fingerprint_vsftpd_cve_2011_2523.py --target 192.168.56.101
# Batch — multiple hosts, evidence-style JSON output
python3 fingerprint_vsftpd_cve_2011_2523.py --targets-file targets.json \
--output evidence/vsftpd_fingerprint_findings.json
サンプル出力:
{
"scan_type": "vsftpd_2.3.4_backdoor_fingerprint",
"cve": "CVE-2011-2523",
"total_targets": 1,
"vulnerable_count": 1,
"findings": [
{
"host": "192.168.56.101",
"port": 21,
"banner": "220 (vsFTPd 2.3.4)",
"verdict": "vulnerable",
"reason": "Banner matches known vulnerable signature (vsftpd 2.3.4)"
}
]
}
この3方向の分割が、このプロジェクトの中核となる検知品質管理です。素朴な検知器は「確認できなかった」と「確認して問題なし」を同じ結果にまとめてしまいますが、まさにそれが本番の検知ロジックで偽陰性が潜む仕組みです。
.
├── fingerprint_vsftpd_cve_2011_2523.py
├── docs/
│ └── CVE-RESEARCH.md
├── evidence/
│ └── vsftpd_fingerprint_findings.json
├── screenshots/
│ └── (script + validation run screenshots)
└── README.md
サイバーセキュリティエンジニア | 検知エンジニア | 脆弱性リサーチャー | パープルチーム | SIEM | エンタープライズセキュリティ
リサーチから検知までのパイプラインに注力: 開示されたCVEをアドバイザリから、脆弱なテクノロジーを外部かつ大規模に識別できる、実動・検証済みのフィンガープリントへと昇華させます。理論だけでなく、実践的な攻撃・防御ラボ業務に基づいて構築されています。
https://www.linkedin.com/in/bassey-solomon-henry/
GitHub
https://github.com/solomonhenry-afk/Bassey-Solomon-Henry
メール
「脆弱性は、どのシステムが実際にそれを抱えているかを大規模に証明できて初めて、現実のリスクになります。リサーチは何が可能かを教え、検知エンジニアリングは何が真実かを教えます。」
このプロジェクトが役に立つと思ったら、リポジトリへのスターを検討してください。
| コア機能 | このリポジトリ内の該当箇所 |
|---|
| 新たに開示されたCVEとアドバイザリのリサーチ | docs/CVE-RESEARCH.md — CVE-2011-2523の背景、影響を受けるバージョン、開示タイムライン |
| テクノロジーのフィンガープリントと検知シグネチャの設計 | fingerprint_vsftpd_cve_2011_2523.py — バナーベースのバージョンマッチングシグネチャ |
| スケーラブルな検知ロジックの構築 | バッチモード(--targets-file)による複数ホストのフィンガープリントを1回の実行で実施 |
| 実世界のアセットを用いた検知の検証 | 実在するラボターゲット(Metasploitable2 + クローズドポート対照)に対して実行・検証済み |
| 誤検知 / 見逃しの低減 | ブール値ではなく3状態の判定ロジック(vulnerable / not_vulnerable / undetermined)— クローズ/フィルタリングされたポートが「脆弱ではない」に黙って統合されることはありません |
| リサーチと検証のためのPythonスクリプティング | 検知スクリプト全体 + JSONエビデンス出力、手動ステップなし |
| HTTP/HTTPS、ネットワーキングの基礎 | 生のTCP/ソケットレベルのサービス対話、バナー解析 |
| インターネット公開インフラへのフォーカス | 外部・未認証のフィンガープリント用に設計 — 認証情報なし、悪用なし、サービス中断なし |
| テストケース | ターゲット種別 | 期待される判定 | 結果 |
|---|
| 既知の脆弱ホスト | Metasploitable2 (vsftpd 2.3.4) | vulnerable | 確認済み |
| クローズ/フィルタリングされたポート | リスニングしていないポート | undetermined(黙った偽陰性ではない) | 確認済み |
| vsftpd以外のサービス | 他のFTPバナー | not_applicable | 確認済み |