AlexWhitaker/ioc-feed-pipeline
GitHub: AlexWhitaker/ioc-feed-pipeline
从多个公开威胁情报源拉取 IOC 数据,标准化后发送到 Datadog 进行安全关联分析与告警的自动化管道工具。
Stars: 0 | Forks: 0
# threat-intel-pipeline
从公开威胁情报源拉取失陷标志 (IOC),并将其作为结构化日志事件发送到 Datadog,以进行关联和告警。
## 情报源
| 情报源 | 来源 | 指标类型 |
|---|---|---|
| CISA KEV | cisa.gov | CVE(已知被利用的漏洞) |
| AlienVault OTX | otx.alienvault.com | IP、域名、URL、文件哈希 |
| ThreatFox | abuse.ch | 恶意软件 C2 IP、域名、URL |
| MalwareBazaar | abuse.ch | 恶意软件文件哈希 (SHA256、SHA1、MD5) |
| Feodo Tracker | abuse.ch | 僵尸网络 C2 服务器 IP |
| URLhaus | abuse.ch | 托管恶意软件的恶意 URL |
| OpenPhish | openphish.com | 网络钓鱼 URL |
## 工作原理
每个情报源模块暴露两个函数:
- `fetch_data()` — 从情报源的 API 或公开 endpoint 拉取原始数据
- `process_data(data, standardize_indicator_type)` — 将条目标准化为结构化的 Datadog 日志 payload
`main.py` 动态加载每个情报源模块,运行这两个函数,并将生成的 IOC 日志事件批量发送到 Datadog。
所有指标类型都会通过 `standardize_indicator_type()` 标准化为统一的分类体系(`ip`、`domain`、`url`、`md5`、`sha1`、`sha256`、`cve`、`email`、`file`)。
## 设置
```
pip install -r requirements.txt
cp .env.example .env
# 填写你的 API keys
python main.py
```
## 必需的环境变量
| 变量 | 描述 |
|---|---|
| `DD_API_KEY` | 具有日志写入权限的 Datadog API 密钥 |
| `OTX_API_KEY` | AlienVault OTX API 密钥 |
| `THREATFOX_API_KEY` | ThreatFox API 密钥 |
| `MALWAREBAZAAR_API_KEY` | MalwareBazaar API 密钥 |
CISA、URLhaus、OpenPhish 和 Feodo Tracker 是无需认证的公开情报源——不需要 API 密钥。
## 添加新情报源
1. 创建 `feeds/myfeed.py`,按照现有的模式编写 `fetch_data()` 和 `process_data()`
2. 将情报源名称添加到 `main.py` 的 `feeds` 列表中
## 安全
没有硬编码的凭据。所有 API 密钥均从环境变量中加载。请参阅 `.env.example`。
标签:API集成, Datadog, Python, 可观测性, 威胁情报, 安全运营, 开发者工具, 扫描框架, 无后门, 逆向工具