Kuyenda18/ioc-enrichment-threat-intelligence-pipeline
GitHub: Kuyenda18/ioc-enrichment-threat-intelligence-pipeline
自动化IOC富化管道,从分类报告中提取威胁指标,结合多个CTI源进行情报富化、MITRE ATT&CK映射和风险评分,辅助SOC和DFIR调查。
Stars: 0 | Forks: 0
# 使用威胁情报的自动化 IOC 丰富管道
本项目是一个小型的基于 Python 的管道,用于从分类式的 JSON 遗物中提取威胁指标(IOC),使用威胁情报源丰富网络 IOC,将选定发现映射到 MITRE ATT&CK 技术,并生成用于调查支持的风险评分报告。
本项目旨在作为 SOC、Blue Team 和 DFIR 实习申请的作品集项目。它并不宣称可用于生产部署或具备真实的企业事件响应经验。
## 功能说明
该管道支持分析式工作流程:
1. 解析分类 JSON 报告,查找可疑的公共 IP 连接和内存注入指标。
2. 使用 VirusTotal 和 AlienVault OTX 元数据丰富提取出的 IP 地址。
3. 将进程和网络行为映射到相关的 MITRE ATT&CK 技术。
4. 为每项发现计算简单的风险评分和严重性标签。
5. 生成最终的 JSON 报告,可供直接审查或加载到 Streamlit 仪表板中。
## 安全用例
本项目涉及:
- 用于提供调查背景的 IOC 丰富。
- 使用公共 CTI API 进行威胁情报查询。
- 通过添加风险评分、严重性和 ATT&CK 上下文来提供告警分类支持。
- 从原始遗物到丰富后发现的 Blue Team 调查工作流。
- 使用网络连接和内存注入证据进行 DFIR 式的遗物审查。
## 技术栈
- Python 3
- Requests
- python-dotenv
- VirusTotal API
- AlienVault OTX API
- MITRE ATT&CK 技术映射
- Streamlit
- Plotly
- Pandas
- 基于JSON的管道输出
## 仓库结构
```
.
|-- README.md
|-- requirements.txt
|-- .env.example
|-- .gitignore
|-- docs/
| `-- security-review.md
|-- sample-data/
| |-- triage_lockdown_report.sample.json
| |-- raw_iocs.sample.json
| |-- enriched_iocs.sample.json
| |-- mapped_iocs.sample.json
| `-- enriched_report.sample.json
`-- src/
|-- main.py
|-- paths.py
|-- ioc_extractor.py
|-- cti_enricher.py
|-- mitre_mapper.py
|-- risk_scorer.py
`-- cti_dashboard.py
```
## 管道工作流
```
triage_lockdown_report.sample.json
|
v
ioc_extractor.py
|
v
raw_iocs.json
|
v
cti_enricher.py
|
v
enriched_iocs.json
|
v
mitre_mapper.py
|
v
mapped_iocs.json
|
v
risk_scorer.py
|
v
enriched_report.json
```
运行时输出将写入到本地的 `output/` 目录中,该目录会被 Git 忽略。
## 设置
创建一个虚拟环境并安装依赖项:
```
python -m venv .venv
pip install -r requirements.txt
```
从模板创建本地 `.env` 文件:
```
cp .env.example .env
```
然后添加你自己的 API 密钥:
```
VT_API_KEY=your_virustotal_api_key
OTX_API_KEY=your_otx_api_key
```
切勿提交 `.env`。
## 用法
运行完整管道:
```
python src/main.py
```
运行仪表板:
```
streamlit run src/cti_dashboard.py
```
仪表板在可用时会加载 `output/enriched_report.json`。如果不存在运行时输出,它将回退到 `sample-data/enriched_report.sample.json`。
## 评分逻辑
风险评分被有意设计得简单且透明:
- VirusTotal 的恶意检测最高贡献 50 分。
- OTX 脉冲数量最高贡献 30 分。
- 带有 `MZ` 标头的注入内存增加 20 分。
- 映射的 MITRE ATT&CK 技术最高贡献 20 分。
严重性标签:
- `HIGH`:score >= 70
- `MEDIUM`:score >= 40
- `LOW`:score >= 10
- `INFO`:score < 10
## 注意事项与限制
- MITRE ATT&CK 映射是基于规则的,仅限于示例工作流程中使用的选定行为。
- 该分数是一种分类辅助工具,而不是决定恶意程度的最终裁决。
- 示例数据已经过脱敏处理,在测试时应替换为授权的实验数据。
- 存在 API 速率限制,这尤其适用于免费的 VirusTotal 账户。
## GitHub 安全性
原始的本地工作区包含 API 密钥、虚拟环境、原始分类输出以及个人的学术报告。这些内容并未被复制到可发布的公开项目结构中。有关清理记录的详情,请参阅 `docs/security-review.md`。
标签:API集成, Ask搜索, Cloudflare, IOC自动化富化, IP 地址批量处理, Kubernetes, MITRE ATT&CK, Plotly, Python, Streamlit, VirusTotal, 内存注入分析, 可观测性, 告警分诊, 威胁情报, 威胁指标提取, 字符串匹配, 安全分析师工具, 安全可视化, 安全工具开发, 安全调查, 安全运营中心, 开发者工具, 开源安全项目, 恶意IP分析, 攻击技战术映射, 数字取证与应急响应, 无后门, 网络信息收集, 网络安全, 网络映射, 访问控制, 隐私保护