Lowingx/threat-intelligence-feed-parser
GitHub: Lowingx/threat-intelligence-feed-parser
威胁情报查询管道,聚合多源数据并加权评分,为 SOC 提供可落地的 IOC enrichment 与风险分级。
Stars: 0 | Forks: 0
# 🧠 威胁情报查询管道






## 检测工作流集成
```
┌─────────────────────────────────────────────────────────────────┐
│ Detection Engineering Stack │
│ │
│ Project 2: Honeypot Project 1: Log Analyzer │
│ honeypot_events.jsonl → alerts.db │
│ │ │ │
│ └──────────┬────────────┘ │
│ ▼ │
│ Project 3: TI Enrichment Pipeline │
│ ┌─────────────────────────────────┐ │
│ │ 7 feeds queried in parallel │ │
│ │ Weighted score 0-100 │ │
│ │ Risk band classification │ │
│ │ ASN correlation analysis │ │
│ │ MITRE ATT&CK heuristic hints │ │
│ │ STIX 2.1 IOC export │ │
│ └──────────────┬──────────────────┘ │
│ ▼ │
│ SOC-ready report / SIEM feed │
└─────────────────────────────────────────────────────────────────┘
```
## 架构
```
graph TD
A[IP Sources\nHoneypot · Alerts DB · File · CLI] --> B[ti_lookup.py\nOrchestrator]
B --> C[core/cache.py\nSQLite TTL cache\nhit ratio display]
C -->|miss| D[feeds/implementations.py\n7 feeds in parallel]
C -->|hit| E[FeedResult cached]
D --> D1[AbuseIPDB]
D --> D2[OTX]
D --> D3[VirusTotal]
D --> D4[Shodan]
D --> D5[IPInfo]
D --> D6[Feodo Tracker]
D --> D7[Emerging Threats]
D --> F[core/scoring.py\nWeighted 0-100\nRisk band]
F --> G[core/correlation.py\nASN clustering\nHosting ratio]
F --> H[core/history.py\nTimeline awareness\nfirst/last seen]
F --> I[outputs/report.py]
I --> I1[Text — terminal]
I --> I2[JSON — pipeline]
I --> I3[Markdown — reports]
I --> I4[STIX 2.1 — TI ecosystem]
```
## 功能特性
- **7 个威胁情报源** 并行查询
- **加权风险评分**:显式 0-100 公式及每个来源的分项拆解
- **风险带分类**:LOW / SUSPICIOUS / MALICIOUS / CRITICAL
- **标准化标签分类法**:`known_attacker`、`c2_server`、`scanner`、`tor_exit`、`botnet` 等
- **MITRE ATT&CK 提示**:基于标签的启发式技术映射
- **ASN 相关性**:按基础设施聚类 IP,检测协同攻击
- **托管与住宅比例**:VPS = 很可能为租用的攻击基础设施
- **时间线感知**:`first_seen`、`last_seen`、`lookup_count` 跨会话统计
- **SQLite 缓存**:每个来源的 TTL 及命中率显示 — 可绕过速率限制
- **STIX 2.1 导出**:标准 IOC 格式,便于集成到 TI 平台
- **蜜罐增强**:将 TI 上下文注入 JSONL 日志的每个事件
- **零依赖要求**:纯 Python 标准库,`requests` 可选
## 项目结构
```
threat-intel/
├── ti_lookup.py # CLI entry point
├── core/
│ ├── models.py # TIResult, FeedResult, RiskBand, Tags
│ ├── cache.py # SQLite cache with TTL + hit ratio
│ ├── scoring.py # Weighted scoring engine + risk band
│ ├── correlation.py # ASN clustering + multi-IP patterns
│ └── history.py # Timeline tracking per IP
├── feeds/
│ ├── base.py # BaseFeed interface + HTTP helper
│ └── implementations.py # All 7 feeds + REGISTERED_FEEDS registry
├── outputs/
│ └── report.py # text / JSON / Markdown / STIX 2.1
├── config/
│ └── keys.env.example # API key template
├── data/ # SQLite DBs + downloaded blocklists
├── samples/
│ └── ips.txt # Sample IPs for testing
├── README.md
└── EXPLICACAO_TECNICA_COMPLETA.md
```
## 快速开始
```
git clone https://github.com/Lowingx/threat-intel.git
cd threat-intel
# 无所需依赖(requests 可选但推荐)
pip install requests # optional
# 配置 API 密钥(全部免费)
cp config/keys.env.example config/keys.env
# 编辑 config/keys.env 以添加您的密钥
# 检查哪些数据源处于活跃状态
python ti_lookup.py --list-feeds
# 查询 IP 地址
python ti_lookup.py 203.0.113.50 198.51.100.7
# 来自蜜罐日志
python ti_lookup.py --from-honeypot ../honeypot-v2/logs/honeypot_events.jsonl
# 来自日志分析数据库
python ti_lookup.py --from-alerts ../log-analyzer-v2/logs/alerts.db
# 带关联性的完整报告
python ti_lookup.py --file samples/ips.txt --correlate \
--format markdown --output report.md
```
## 风险评分公式
```
risk_score = weighted_score(
abuseipdb = 0.35, # largest attacker corpus
otx = 0.20, # malware / C2 coverage
virustotal = 0.20, # AV engine consensus
shodan = 0.10, # infrastructure context
ipinfo = 0.05, # ASN / type context
feodo = 0.05, # C2 blocklist (binary)
emerging = 0.05, # compromised IP blocklist
)
# 阻止列表增强:如果 IP 出现在 Feodo 或 Emerging Threats 中,则 +20
# 分数始终可通过 --format json 解释 → score_breakdown
```
| 风险带 | 分数 | 含义 |
|---|---|---|
| `LOW` | 0–24 | 无显著威胁信号 |
| `SUSPICIOUS` | 25–49 | 部分指标,需持续监控 |
| `MALICIOUS` | 50–74 | 多个威胁信号,很可能为攻击者 |
| `CRITICAL` | 75–100 | 高置信度威胁,命中封禁列表/C2 |
## 源配置
| 来源 | 提供内容 | 免费额度 | 环境变量 |
|---|---|---|---|
| AbuseIPDB | 滥用评分 0-100,攻击类别 | 1000/天 | `ABUSEIPDB_API_KEY` |
| AlienVault OTX | 脉冲计数、恶意软件家族 | 10000/天 | `OTX_API_KEY` |
| VirusTotal | AV 引擎检测数 | 4/分钟 | `VIRUSTOTAL_API_KEY` |
| Shodan | 开放端口、CVE、Banner | 1/秒 | `SHODAN_API_KEY` |
| IPInfo | ASN、组织、国家、IP 类型 | 5万/月 | `IPINFO_API_TOKEN` |
| Feodo Tracker | C2 IP 列表(Emotet、Cobalt Strike) | 无限制 | 无需密钥 |
| Emerging Threats | 被妥协 IP 列表 | 无限制 | 无需密钥 |
Feodo 与 Emerging Threats 在首次下载后本地缓存离线使用 — 无需 API 密钥、无速率限制。
## 使用参考
```
python ti_lookup.py [ips...] [options]
INPUT
ips Direct IP addresses
--file, -f PATH Text file of IPs
--from-honeypot PATH Extract IPs from honeypot JSONL
--from-alerts PATH Extract IPs from Log Analyzer SQLite DB
--enrich-honeypot PATH Enrich honeypot JSONL with TI context
OUTPUT
--format text | json | markdown | stix
--output, -o PATH Save to file
--correlate Include ASN correlation analysis
--min-band LOW | SUSPICIOUS | MALICIOUS | CRITICAL
CACHE
--no-cache Force live queries (bypass cache)
--cache-stats Show hit ratio and exit
--invalidate-cache F Clear cache for feed F and exit
MISC
--workers N Parallel feed threads (default: 4)
--list-feeds Show feed status and exit
--quiet, -q Suppress progress output
```
## STIX 2.1 导出
```
# 导出 IOC 为 STIX 2.1 Bundle
python ti_lookup.py --file samples/ips.txt --format stix --output iocs.stix.json
# 导入 OpenCTI、MISP 或任何 STIX 兼容平台
```
每个 SUSPICIOUS+ 的 IP 会生成一个 STIX `indicator` 对象,包含:
- `pattern`:`[ipv4-addr:value = 'x.x.x.x']`
- `confidence`:从风险带映射
- `labels`:标准化标签 + MITRE 技术 ID
- `external_references`:各来源分数归属
## 蜜罐管道集成
```
# 为每个蜜罐事件丰富 TI 上下文
python ti_lookup.py --enrich-honeypot logs/honeypot_events.jsonl
# 创建:logs/honeypot_events_enriched.jsonl
# 每个事件现在包含:
# "ti": {
# "risk_score": 85, "risk_band": "CRITICAL",
# "tags": ["known_attacker", "c2_server"],
# "country": "NL", "asn": "AS60781",
# "mitre": [{"tactic": "Command and Control", "technique": "T1071"}]
# }
```
## 许可证
MIT — 可自由使用与学习。
标签:7个来源, ASN关联分析, C2通信, Cloudflare, Feeds查询, Feeds聚合, IOC导出, MITRE ATT&CK, MITRE ATT&CK启发式, Python, Python 3.11, SOC分析师, STIX 2.1, TI丰富化, TI流程, 加权评分, 威胁情报, 威胁情报查询, 安全情报, 安全运营, 并行查询, 开发者工具, 恶意IP, 扫描框架, 数据统计, 无后门, 日志分析项目, 检测工作流, 端口扫描, 蓝队组合, 蜜罐, 蜜罐项目, 证书利用, 逆向工具, 风险分级, 风险带分类