
Python CLIツール。6つの無料脅威インテリジェンスAPIを使用してIOC(IP、ドメイン、CVE)を迅速に分析。出力:色分けされたExcel、JSON、CSV。使用API:VT、Shodan、AbuseIPDB。
IP、ドメイン、ハッシュ、CVEを6つの無料脅威インテリジェンスAPIで調査 — ブラウザのタブを切り替えることなく。
🚀 公式の Awesome OSINT リポジトリに掲載されています。
ThreatLens は、最も信頼されている無料のOSINTソース全体にわたる脅威インテリジェンス検索を統合する単一のコマンドラインツールです。IPを5つの異なるウェブサイトに貼り付ける代わりに、ThreatLensはそれらすべてを並列に照会し、結果を正規化して、明確な判定を提供します — ターミナル上で、あるいは洗練された色分けされたExcel/JSON/CSVレポートとして。
SOCアナリスト、インシデントレスポンダー、脅威ハンター、そしてシェルを離れることなく迅速で信頼性の高いIOCエンリッチメントを求めるすべての人のために構築されています。
|
ThreatLensを選ぶ理由
|
対象外
|
| 機能 | 詳細 |
|---|---|
| 🎯 IOC タイプ | IP、ドメイン、URL、ファイルハッシュ (MD5 / SHA1 / SHA256)、CVE |
| 🔌 統合 API | AbuseIPDB、VirusTotal、AlienVault OTX、Shodan、URLScan.io、NVD、CISA KEV、EPSS |
| 📄 ログ解析 | プレーンテキスト/ログファイルから IOC を自動抽出。さらに Zeek、Suricata eve.json、Sysmon (JSON)、汎用 JSONL をネイティブサポート |
| 🧭 CVE 判断カード | CISA KEV、EPSS、CVSS、および相関付けられた資産の露出状況に基づく、CVE ごとの決定論的で説明可能な Patch / Isolate / Monitor / Not affected 推奨 |
| 🗂️ 資産インベントリ | 重要度とインターネット公開状況を含むホスト/IP の CSV をインポートし、CVE 結果と相関付け |
| 📤 SIEM エクスポート | オプトインによる Splunk HEC、Elastic _bulk、Microsoft Sentinel (最新の Logs Ingestion API) へのエクスポート |
| 🧾 証拠パック | 基本的な証拠保全 (chain-of-custody) のための SHA-256 マニフェスト付きで調査結果を ZIP エクスポート |
| 📊 レポート | Excel (色分け)、JSON、CSV |
| 💾 ローカルキャッシュ | 設定可能な TTL を持つ SQLite キャッシュ — 既知の IOC の再クエリを省略。さらにキャッシュされた CISA KEV フィード (24 時間 TTL) |
| 🛡️ セキュリティ | リダイレクトのブロック、ホストの許可リスト、ログ内の API キー秘匿化、スプレッドシート数式の中和、CSV/ログの DoS 制限 |
| 🔒 ロックファイル | 再現可能なインストールのための SHA-256 ハッシュ付き requirements.lock |
| 💻 CLI エクスペリエンス | リッチなプログレスバー、色付きテーブル、明快な判定サマリー |
| 🧩 アーキテクチャ | モジュール式のエンリッチャー/パーサー/エクスポーター、型付きモデル、関心の厳格な分離 |
| ✅ テスト済み | pytest による 155 のユニットテストおよび統合テスト。GitHub Actions による CI |
| ⚡ 耐障害性 | 1 つの API や SIEM 送信先が失敗しても他をブロックしない — エラーは分離されログに記録される |
# 1. Clone & install
git clone https://github.com/AbdaullahAG/threatlens.git
cd threatlens
pip install -r requirements.txt
# 2. Configure your API keys
cp config/keys.env.example config/keys.env
# → edit config/keys.env and fill in your keys
# 3. Run your first scan
python main.py -i 45.33.32.156
💡 NVD(CVE 検索)は API キーなしですぐに利用できます。 その他の API はすべて無料枠を提供しており、サインアップは 2 分もかかりません — 下記の API キー を参照してください。
pip install --require-hashes -r requirements.lock
| 基本的な単一IOC検索 |
| 1回の実行で複数のIOCタイプを組み合わせ可能 |
| 生ログから直接一括調査 |
| パイプライン向けの機械可読出力 |
| エンリッチメントを選択したソースに限定する |
| 1回の実行でExcel + JSON + CSV |
| NIST NVD による CVE エンリッチメント(無料、キー不要) |
| トラブルシューティング用のリクエスト/レスポンスの完全なログ記録 |
| パッチ適用 / 隔離 / 監視 / 影響なしの推奨 |
| SOCログ取り込み → SIEMエクスポート |
| チェーン・オブ・カストディ用の SHA-256 マニフェストを含む ZIP |
| フラグ | 説明 |
|---|---|
-i, --ip | 調査する IP アドレス |
-d, --domain | 調査するドメイン |
-s, --hash | ファイルハッシュ — MD5 / SHA1 / SHA256 |
-c, --cve | CVE ID(例: CVE-2021-44228) |
--file | IOC を自動抽出するログ/テキストファイルのパス |
--log-format | --file の形式: auto(デフォルト) | text | zeek | suricata | sysmon | jsonl |
--apis | エンリッチメントを特定の API セットに制限(現在は cisa_kev、epss を含む) |
--format | 出力形式: excel(デフォルト) | json | csv | all |
--output | レポートを保存するディレクトリ(デフォルト: ./output) |
--no-report | 結果をターミナルにのみ出力し、ファイル保存をスキップ |
--import-assets | アセットインベントリ CSV をインポート(hostname/ip、criticality、internet_facing、owner、product) |
--decision-cards | すべての CVE 結果に対して Patch/Isolate/Monitor/Not-affected カードを生成 |
--export | 結果を 1 つ以上の SIEM 送信先へ送信: splunk | elastic | sentinel(オプトイン、config/keys.env での設定が必要) |
--export-insecure-tls | SIEM エクスポートの TLS 検証を無効化(テスト専用、大きな警告をログ出力) |
--evidence-pack | 調査を SHA-256 マニフェスト付き ZIP にパッケージ化 |
--cache-path | ローカルキャッシュ用 SQLite パス(デフォルト: .threatlens/investigations.db) |
--cache-ttl | キャッシュの有効期間(秒)(デフォルト: 3600) |
--no-cache | ローカルキャッシュを完全にバイパス |
--max-requests | 1 回の実行あたりの外部 API 呼び出し上限(デフォルト: 250) |
--max-iocs | 1 回の実行あたりのユニーク IOC の最大数(デフォルト: 1000) |
--allow-private-iocs | プライベート/ループバック IP を許可(デフォルトでは無効) |
--delay | レート制限調整のための API 呼び出し間の遅延 |
-v, --verbose | デバッグログを有効化 |
ThreatLens は IOC ルックアップにとどまらず、軽量な CVE トリアージとログ取り込みにも対応します: