unknownspy333/Threat-Intelligence-Aggregator
GitHub: unknownspy333/Threat-Intelligence-Aggregator
基于 Python 的威胁情报聚合工具,从多种格式的情报源中提取、规范化并关联 IOC,自动评级后生成可直接部署的黑名单和威胁报告。
Stars: 0 | Forks: 0
# 威胁情报聚合器
一个基于 Python 的安全自动化工具包,用于从多个威胁情报源收集、解析、规范化
并关联入侵指标 ——
无需 AI 或机器学习。
## 项目结构
```
ti_aggregator/
├── main.py # Pipeline orchestrator — run this
├── feed_parser.py # IOC extraction from all feed formats
├── normalizer.py # Schema normalization & deduplication
├── correlator.py # Cross-feed correlation & severity rating
├── blocklist_generator.py # Blocklist export (TXT / CSV / JSON)
├── reporter.py # Threat report generation
├── requirements.txt # Python dependencies
├── sample_feeds/
│ ├── feed1.csv # Sample CSV feed
│ ├── feed2.json # Sample JSON feed
│ ├── feed3.txt # Sample plain-text feed
│ └── feed4_stix.json # Sample STIX 2.x bundle
└── output/
├── blocklists/ # Generated blocklist files
└── reports/ # Generated threat reports
```
## 快速开始
### 1. 安装依赖
```
pip install -r requirements.txt
```
### 2. 运行 pipeline
```
python main.py
```
### 3. 检查输出
```
output/
├── blocklists/
│ ├── ip_blocklist.txt <- paste into firewall
│ ├── ip_blocklist.csv
│ ├── ip_blocklist.json
│ ├── domain_blocklist.txt <- paste into DNS sinkhole
│ ├── url_blocklist.txt <- import into web filter
│ ├── hash_blocklist.txt <- import into EDR / AV
│ ├── email_blocklist.txt
│ └── firewall_ipset.txt <- Linux ipset / iptables
└── reports/
├── ti_report_YYYYMMDD_HHMMSS.json
└── ti_report_YYYYMMDD_HHMMSS.csv
```
## 添加情报源
编辑 `main.py` 中的 `FEEDS` 列表:
```
FEEDS = [
# Local CSV file
{"name": "AbuseIPDB_Export", "type": "csv", "path": "feeds/abuseipdb.csv"},
# Local JSON file
{"name": "Custom_Feed", "type": "json", "path": "feeds/custom.json"},
# Plain text file
{"name": "Internal_IOCs", "type": "txt", "path": "feeds/internal.txt"},
# STIX 2.x bundle
{"name": "MISP_Feed", "type": "stix", "path": "feeds/misp_bundle.json"},
# Remote URL (fetched at runtime)
{"name": "URLhaus", "type": "url",
"path": "https://urlhaus.abuse.ch/downloads/text/"},
]
```
## 支持的 IOC 类型
| 类型 | 类别 | 示例 |
|---------|----------|------------------------------------------------------------------|
| ip | network | 185.220.101.45 |
| domain | network | malware.example.com |
| url | network | https://evil.ru/payload.exe |
| md5 | file | 44d88612fea8a8f36de82e1278abb02f |
| sha1 | file | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
| sha256 | file | aabbccdd...11223344 (64 hex chars) |
| email | identity | phish@attacker-domain.xyz |
## 严重性评级
| 严重性 | 条件 | 建议操作 |
|----------|--------------------------------|--------------------------------------------|
| High | 在 3 个及以上独立源中出现 | 立即阻断 + SOC 升级处理 |
| Medium | 在 2 个源中出现 | 加入黑名单 + 分析师审查 |
| Low | 在 1 个源中出现 | 仅监控 / 记录 |
## 支持的情报源格式
| 格式 | 描述 |
|--------|----------------------------------------------------------|
| TXT | 纯文本,每行一个指标 |
| CSV | 列式结构;扫描所有列(与 schema 无关) |
| JSON | 任意 JSON 结构;搜索整个文档 |
| STIX | STIX 2.x bundles;解析 indicator pattern 字段 |
| URL | 返回文本的任何远程 HTTP/HTTPS 情报源 |
## Pipeline 架构
```
[Feed Files / URLs]
|
v
feed_parser.py <- Load + extract IOCs (regex)
|
v
normalizer.py <- Validate, deduplicate, add metadata
|
v
correlator.py <- Cross-feed grouping + severity rating
|
+---------> blocklist_generator.py -> output/blocklists/
|
+---------> reporter.py -> output/reports/
```
## 使用的库
除 `requests` 外均为标准库:
- `re` — 通过编译后的 regex 模式提取 IOC
- `json` / `csv` — 情报源解析和结构化输出
- `requests` — 获取远程情报源
- `ipaddress` — IPv4 验证(过滤私有/保留范围)
- `collections` — 用于关联的 Counter 和 defaultdict
- `datetime` — ISO 8601 UTC 时间戳
- `os` / `sys` — 文件 I/O 和路径管理
## 控制台输出示例
```
==============================================================
THREAT INTELLIGENCE AGGREGATOR — REPORT SUMMARY
==============================================================
Generated : 2026-05-27 10:30:00 UTC
Feeds : 4
- SampleFeed_CSV
- SampleFeed_JSON
- SampleFeed_TXT
- SampleFeed_STIX
--------------------------------------------------------------
Total unique IOCs : 47
High severity : 8
Medium severity : 14
Low severity : 25
--------------------------------------------------------------
IOC Type Breakdown:
ip : 12 ############
domain : 9 #########
url : 8 ########
sha256 : 6 ######
md5 : 4 ####
sha1 : 3 ###
email : 5 #####
--------------------------------------------------------------
Top High-Risk Indicators (showing up to 15):
[ip ] 185.220.101.45 feeds=4
[domain] malware.example.com feeds=4
[sha256] aabbccdd11223344... feeds=3
[ip ] 91.108.4.0 feeds=3
==============================================================
```
标签:IOC聚合, Python, 威胁情报, 开发者工具, 无后门, 逆向工具, 黑名单生成