JattyB/ThreatLens

GitHub: JattyB/ThreatLens

ThreatLens 是一款结合正则提取与 Claude AI 的威胁情报分析工具,能够自动从威胁报告中提取 IOC、映射 MITRE ATT&CK 技术、生成 YARA 和 Sigma 检测规则,并集成多个外部情报源,帮助安全分析师高效完成从情报摄入到检测规则生成的全流程工作。

Stars: 0 | Forks: 0

# ThreatLens **AI 驱动的威胁情报分析器** [![Python 3.11+](https://img.shields.io/badge/python-3.11+-3776ab?style=flat-square&logo=python&logoColor=white)](https://python.org) [![Claude API](https://img.shields.io/badge/Claude_API-Anthropic-d4a574?style=flat-square)](https://anthropic.com) [![MITRE ATT&CK](https://img.shields.io/badge/MITRE-ATT%26CK-e34f26?style=flat-square)](https://attack.mitre.org) [![License: MIT](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE) [![Tests](https://img.shields.io/badge/tests-passing-brightgreen?style=flat-square)]() 分析威胁情报、提取 IOC、映射至 MITRE ATT&CK、生成检测规则 — 由 AI 和实时网络搜索提供支持。
## 什么是 ThreatLens? ThreatLens 是一个混合正则表达式与 LLM 的流水线,用于分析威胁报告和安全公告。粘贴任意威胁公告,它将提取 12 种 IOC 类型(IP、域名、URL、哈希、CVE、注册表键、文件路径、互斥体等),通过关键字匹配将行为映射到 60 多项 MITRE ATT&CK 技术,随后使用 Claude AI 进行丰富,提供执行摘要、严重性评级和可操作的建议。 对于自然语言查询 —— 例如“针对医疗保健领域的勒索软件攻击者”或“最近的 LockBit 活动”—— ThreatLens 会使用 DuckDuckGo 搜索网络以获取最新情报,并生成结构化简报。两种模式均将结果保存在本地 SQLite 数据库中,支持跨报告的 IOC 关联以及跨会话的威胁行为者画像跟踪。 检测工程功能已内置:每次分析都会自动生成随时可部署的 YARA 和 Sigma 规则。报告可导出为 Markdown、JSON、PDF 和 DOCX 格式。FastAPI + htmx Web 仪表板提供了一个基于浏览器的界面,用于分析、订阅监控、历史浏览、行为者画像和 IOC 搜索。 ## 快速开始 **前置条件:** Python 3.11+,一个 [Anthropic API key](https://console.anthropic.com) ``` git clone https://github.com/JattyB/ThreatLens.git cd ThreatLens python -m venv .venv source .venv/bin/activate # Linux/Mac # .venv\Scripts\Activate # Windows pip install -e ".[dev]" cp .env.example .env # add your ANTHROPIC_API_KEY threatlens analyze -f samples/apt29_advisory.txt ``` ## 两种分析模式 ### 模式 1:粘贴威胁报告 当您提供完整的公告或报告时,ThreatLens 会通过正则表达式提取 IOC,通过关键字匹配将行为映射到 ATT&CK,并使用 Claude AI 分析进行丰富。 ``` # 分析本地公告文件 threatlens analyze -f samples/apt29_advisory.txt # 分析内联文本,跳过 LLM (无需 API 密钥) threatlens analyze -t "192.168.1.1 dropped ransomware.exe" --no-llm # 分析并导出 PDF + DOCX threatlens analyze -f advisory.txt --format pdf --format docx ``` ### 模式 2:提出问题 当您输入自然语言查询时,ThreatLens 会搜索网络以获取最新情报,然后生成结构化简报。 ``` # 查询当前威胁态势 threatlens analyze -t "ransomware actors targeting healthcare 2025" # 查询特定攻击者 threatlens analyze -t "LockBit tactics and known IOCs" # 查询近期攻击活动 threatlens analyze -t "attacks on telecom industry this year" ``` ## 实时威胁情报源 | 情报源 | 来源 | 认证 | 描述 | |------|--------|------|-------------| | `nvd` | NIST NVD | 无 | 带有 CVSS 评分的最新 CVE | | `cisa_kev` | CISA | 无 | 已知被利用漏洞目录 | | `github_advisory` | GitHub | 无 | 来自 GitHub 的安全公告 | | `hackernews` | The Hacker News | 无 | 最新网络安全新闻 | | `bleepingcomputer` | BleepingComputer | 无 | 恶意软件和违规事件报道 | | `otx` | AlienVault OTX | 可选 (`OTX_API_KEY`) | 威胁情报 pulse | | `pulsedive` | Pulsedive | 可选 (`PULSEDIVE_API_KEY`) | 丰富的威胁指标 | ``` # 获取并分析 CISA KEV feed threatlens feed cisa_kev # 获取过去 14 天的 NVD CVE threatlens feed nvd --days 14 --limit 20 # 获取但不运行 LLM 分析 threatlens feed hackernews --no-analyze ``` ## 功能 ### 威胁关联 在本地 SQLite 数据库中,IOC 会在每份报告中受到跟踪。当新的分析与过去的报告共享指标时,ThreatLens 会标记重叠部分并链接相关报告。运行 `threatlens correlate ` 以探索关联。 ### 检测规则 每次分析都会自动生成 YARA 和 Sigma 规则 —— 其范围限定为提取的 IOC 和映射的 ATT&CK 技术。将它们导出为 `.yar` 和 `.yml` 文件,即可部署到您的 SIEM 或终端工具中。 ### 报告导出 每份报告都可以导出为 Markdown、JSON、PDF(带图表)或 DOCX 格式。在分析期间使用 `--format all`,或稍后使用 `threatlens export ` 导出任何已保存的报告。 ### 威胁行为者跟踪 报告中提及的行为者将被提取并存储在持久化档案中。档案会在各个会话中累积别名、归因技术、关联的 IOC 和链接的报告。使用 `threatlens merge-actors` 可合并重复的档案。 ### Web 仪表板 启动 `threatlens dashboard` 以在 `http://127.0.0.1:8000` 访问浏览器界面。选项卡包括:分析、情报源、历史、行为者、IOC 搜索、关联。 ## CLI 参考 | 命令 | 描述 | 示例 | |---------|-------------|---------| | `analyze` | 分析文本或提出问题 | `threatlens analyze -f advisory.txt` | | `iocs` | 不使用 LLM 提取 IOC | `threatlens iocs -t "1.2.3.4 evil.com"` | | `feed` | 获取实时威胁情报源 | `threatlens feed nvd --days 7` | | `history` | 列出过去的报告 | `threatlens history --limit 10` | | `report` | 显示已保存的报告 | `threatlens report ` | | `search` | 跨报告搜索 IOC | `threatlens search evil.com` | | `correlate` | 显示关联报告 | `threatlens correlate ` | | `stats` | 聚合统计信息 | `threatlens stats` | | `rules` | 显示 YARA/Sigma 规则 | `threatlens rules ` | | `export` | 将报告导出为文件 | `threatlens export --format pdf` | | `export-rules` | 导出 .yar 和 .yml 文件 | `threatlens export-rules ` | | `generate-rules` | 从文本生成规则 | `threatlens generate-rules -f advisory.txt` | | `actors` | 列出威胁行为者 | `threatlens actors --sort-by last_seen` | | `actor` | 显示行为者档案 | `threatlens actor "APT29" --techniques` | | `merge-actors` | 合并重复的行为者 | `threatlens merge-actors "APT29" "Cozy Bear"` | | `dashboard` | 启动 Web 仪表板 | `threatlens dashboard --port 8000` | | `db` | 管理数据库 | `threatlens db --reset` | ## 架构 ``` src/threatlens/ ├── cli.py # Click CLI entry point ├── core/ │ ├── analyzer.py # Main pipeline (LLM + deterministic) │ ├── ioc_extractor.py # Regex IOC extraction (12 types) │ ├── attck_mapper.py # MITRE ATT&CK keyword mapping │ ├── query_detector.py # Detects natural language queries │ └── query_handler.py # Web search + LLM briefing ├── db/ │ ├── database.py # SQLite persistence layer │ ├── correlator.py # Cross-report IOC correlation │ └── actor_tracker.py # Threat actor profile management ├── feeds/ │ ├── cve.py # NVD feed │ ├── cisa.py # CISA KEV feed │ ├── github_advisories.py │ ├── news.py # The Hacker News + BleepingComputer │ ├── otx.py # AlienVault OTX │ └── pulsedive.py # Pulsedive ├── rules/ │ ├── yara_generator.py │ └── sigma_generator.py ├── output/ │ ├── reporter.py # Markdown + JSON output │ ├── pdf_exporter.py # PDF with charts │ ├── docx_exporter.py # Word document export │ └── chart_builder.py # matplotlib charts ├── dashboard/ │ └── app.py # FastAPI + htmx web UI └── models/ └── schemas.py # Pydantic data models ``` **流水线:** ``` Text Input → IOC Extraction → ATT&CK Mapping → LLM Analysis → Report NL Query → Web Search → LLM Briefing → Report ``` ## 技术栈 | 组件 | 技术 | |-----------|-----------| | 语言 | Python 3.11+ | | AI | Claude API (Anthropic) | | Web 框架 | FastAPI + htmx | | CLI | Click + Rich | | 数据模型 | Pydantic v2 | | 数据库 | SQLite | | 网络搜索 | duckduckgo-search (ddgs) | | HTTP 客户端 | httpx | | 图表 | matplotlib | | PDF 导出 | reportlab | | DOCX 导出 | python-docx | ## 测试 ``` pytest tests/ -v ``` 60 多项测试,涵盖单元测试、集成测试和边缘情况 —— 包括参数化测试、测试固件、边界测试、格式错误的输入处理和已消除危险性的 IOC 解析。 ``` tests/ ├── unit/ # ioc_extractor, attck_mapper, schemas, rules, reporter ├── integration/ # database, analyzer pipeline, feeds, correlator, actor_tracker └── edge_cases/ # malformed input, defanged IOCs, hash disambiguation ``` ## 许可证 MIT — Jatin Bhardwaj
标签:AI安全分析, AV绕过, Claude API, Cloudflare, CVE提取, DAST, DNS信息、DNS暴力破解, DNS枚举, FastAPI, HTMX, IOC提取, LLM安全工具, masscan, MITRE ATT&CK, nuclei, Python, Sigma规则, SQLite, TIP, YARA规则, 威胁分析器, 威胁情报, 威胁情报平台, 安全仪表盘, 安全报告, 安全运营, 实时网络搜索, 开发者工具, 恶意软件分析, 情报收集, 扫描框架, 攻击者画像, 无后门, 检测规则生成, 漏洞研究, 目标导入, 结构化数据, 网络信息收集, 网络安全, 网络安全工具, 运行时操纵, 逆向工具, 隐私保护