kbugra/ThreatLens
GitHub: kbugra/ThreatLens
ThreatLens 是一个基于 Python 的网络威胁情报融合与优先级排序平台,将公开漏洞情报和恶意 URL 指标转化为可评分、可映射、可导出的结构化蓝队输出。
Stars: 1 | Forks: 0
# ThreatLens
ThreatLens 是一个基于 Python 的网络威胁情报 (CTI) 优先级排序平台。它将公开的漏洞情报和 URLhaus IOC 数据转化为可供分析师直接使用的输出内容:评分后的指标、优先级排序的漏洞、MITRE ATT&CK 映射、STIX 风格的捆绑包、Sigma 搜索模板、IOC 监控列表、截图以及每日威胁简报。

## 项目意义
公开的 CTI 源非常有用,但如果没有组织上下文,它们通常充满噪音、重复、过时且难以划分优先级。ThreatLens 展示了一个真实的蓝队工作流程:
```
Collect -> Normalize -> Deduplicate -> Score -> Map to ATT&CK -> Export STIX/Sigma -> Report
```
我们的目标不是构建另一个 IP 信誉检查器,而是展示如何将原始的 CTI 数据转化为可划分优先级、可解释、可报告且随时可用于检测的情报。
## ThreatLens 是什么
ThreatLens 是:
- 一个公开 CTI 收集器
- 一个 IOC 和 CVE 规范化工具
- 一个去重流水线
- 一个可解释的评分引擎
- 一个漏洞优先级引擎
- 一个 MITRE ATT&CK 映射层
- 一个 STIX 风格的导出生成器
- 一个 Sigma 搜索模板和 IOC 监控列表生成器
- 一个 Markdown 分析师报告生成器
ThreatLens 不是:
- 一个 SIEM
- 一个 EDR
- 一个恶意软件沙箱
- 一个归因平台
- 一个生产环境检测规则验证器
## 功能
- 从 CISA KEV 和 EPSS 收集公开的漏洞情报
- 从 URLhaus 收集恶意 URL 指标
- 将原始的 IOC 和 CVE 记录规范化为通用 schema
- 对重复的指标进行去重
- 结合来源、时效性、状态和恶意软件标签信号对指标进行评分
- 结合 KEV、批量 EPSS、暴露程度和严重性上下文对漏洞进行优先级排序
- 将观察到的主题映射到 MITRE ATT&CK 技术
- 将高优先级指标导出为 STIX 2.1 风格的捆绑包
- 生成实验性的 Sigma 搜索模板和 IOC 监控列表,用于 SIEM/代理验证
- 生成供分析师直接使用的每日威胁简报
- 包含截图、自检和针对性单元测试
## 架构
```
collectors/
CISA KEV, EPSS, URLhaus
|
normalizer/
Indicator and Vulnerability schemas
|
scoring/
IOC severity and CVE priority
|
enrichment/
MITRE ATT&CK mapping
|
export/ + detection/
Markdown report, STIX bundle, Sigma rules, IOC watchlists
```
## 数据来源
| 来源 | 用途 | API 密钥 |
|---|---|---|
| CISA KEV | 已知被利用的漏洞 | 否 |
| FIRST EPSS | 批量 CVE 利用概率上下文 | 否 |
| URLhaus | 恶意软件分发 URL | 是,abuse.ch Auth-Key |
将密钥保存在本地 `.env` 文件中。请使用 `.env.example` 作为模板。
## 快速开始
安装依赖:
```
python -m pip install -r requirements.txt
```
创建本地密钥:
```
copy .env.example .env
```
然后在 `.env` 中设置您的 abuse.ch URLhaus 密钥:
```
URLHAUS_AUTH_KEY=replace_with_your_urlhaus_auth_key
```
运行完整流水线:
```
python threatlens.py collect --sources kev epss urlhaus
python threatlens.py normalize
python threatlens.py score
python threatlens.py map-attack
python threatlens.py export-stix
python threatlens.py generate-sigma
python threatlens.py report
python threatlens.py self-test
python -m pytest
```
## 命令
| 命令 | 功能说明 |
|---|---|
| `python threatlens.py collect --sources kev epss urlhaus` | 下载原始公开 CTI 数据 |
| `python threatlens.py normalize` | 将原始数据转换为通用 IOC/CVE schema |
| `python threatlens.py score` | 对指标进行评分并对漏洞进行优先级排序 |
| `python threatlens.py map-attack` | 将证据主题映射到 MITRE ATT&CK 技术 |
| `python threatlens.py export-stix` | 将高优先级指标导出为 STIX |
| `python threatlens.py generate-sigma` | 生成实验性的 Sigma 模板和 IOC 监控列表 |
| `python threatlens.py report` | 构建每日分析师威胁简报 |
| `python threatlens.py self-test` | 验证预期的输出产物 |
| `python -m pytest` | 运行针对匹配、评分、规范化和 STIX 导出的针对性单元测试 |
## 演示结果
最近一次本地演示运行生成:
- 28,627 个规范化指标
- 1,587 条漏洞记录
- 2,547 个高优先级指标
- 72 个 P1 优先级漏洞
- 5 个已映射的 MITRE ATT&CK 主题
- 100 个已导出的 STIX 指标
- 5 个已生成的 Sigma 规则模板
- 2 份针对高优先级 URL 和域名的 IOC 监控列表
由于 URLhaus 是一个实时源,每次运行的计数可能会有所变化。
## 输出示例
| 输出 | 路径 |
|---|---|
| 分析师报告 | `reports/daily_threat_brief.md` |
| STIX 捆绑包 | `exports/threatlens_indicators_stix.json` |
| Sigma 规则 | `detection/rules/*.yml` |
| IOC 监控列表 | `detection/watchlists/*.txt` |
| ATT&CK 映射 | `data/enriched/attack_mapping.json` |
| 演示 HTML 快照 | `docs/demo_snapshot.html` |
| 演练指南 | `docs/walkthrough.md` |
## 截图
### 流水线状态

### 评分分布

### STIX 导出和 Sigma 规则

### 最高优先级漏洞

## MITRE ATT&CK 映射
ThreatLens 使用保守的、基于规则的 ATT&CK 映射。它不执行攻击者归因。
| 主题 | 技术 |
|---|---|
| 恶意软件 URL 传递 | T1105 - Ingress Tool Transfer |
| 脚本 payload 传递 | T1059 - Command and Scripting Interpreter |
| 面向公众的应用程序利用 | T1190 - Exploit Public-Facing Application |
| 远程服务利用 | T1210 - Exploitation of Remote Services |
| RDP 远程服务 | T1021.001 - Remote Services: Remote Desktop Protocol |
正确的 CTI 表述:
```
Observed evidence is consistent with ATT&CK technique X.
```
而不是:
```
This activity belongs to actor Y.
```
## 局限性
- 公开的 CTI 源可能包含过时、嘈杂、不完整或相互冲突的数据。
- 评分是启发式的,旨在用于分诊。
- 不执行攻击者归因。
- 生成的 Sigma 规则和 IOC 监控列表是实验性的,需要进行 SIEM/代理验证。
- STIX 导出是 STIX 2.1 风格的指标捆绑包;经过验证的关系建模是未来的工作。
- 当前的组织配置文件是一个演示配置文件,而不是真实的资产清单。
## 未来工作
- 添加 AbuseIPDB IP 信誉丰富功能
- 添加 AlienVault OTX 丰富功能和来源重叠比对
- 添加 MalwareBazaar 哈希丰富功能
- 添加 Streamlit 仪表盘
- 添加 FastAPI 端点
- 添加 OpenCTI 或 MISP 导入/导出工作流
- 针对边缘情况下的规范化和评分增加更多单元测试
## 作品集总结
ThreatLens 展示了如何将公开的漏洞情报和恶意软件 URL 指标转化为经过优先级排序的蓝队输出内容:可解释的 IOC 严重性、P1 漏洞优先级排序、ATT&CK 上下文、STIX 风格的共享产物、Sigma 搜索模板、IOC 监控列表以及可供分析师直接使用的报告。
标签:CISA KEV, CISA项目, Cloudflare, CVE, EPSS, Go语言工具, GPT, IOC, IP 地址批量处理, MITRE ATT&CK, Python, Sigma 规则, STIX 2.1, URLhaus, 去重, 域名分析, 威胁情报, 威胁评分, 安全规则引擎, 安全运营, 开发者工具, 情报归一化, 情报融合, 扫描框架, 数字签名, 无后门, 每日威胁简报, 漏洞优先级评估, 漏洞管理, 网络安全, 网络安全开源项目, 逆向工具, 隐私保护