haghfizzuddin/ti-aggregator

GitHub: haghfizzuddin/ti-aggregator

威胁情报聚合器,规范化多源 IOC 并以概率或然法统一置信度,解决数据重复与评分不一致问题。

Stars: 0 | Forks: 0

# TI Feed Aggregator 从开放威胁情报源拉取 IOC,将其规范化为通用模式,跨来源去重,并使用概率或然法重新计算置信度。 ## 支持的源 | 源 | IOC 类型 | 是否需要 API 密钥 | |------------|------------------------------|-------------------| | URLhaus | URL、域名 | 否 | | AbuseIPDB | IP | 是(免费层级) | | OTX | IP、域名、URL、Hash、电子邮件 | 是(免费账户) | ## 通用 IOC 模式 每个源的 IOC 都会被规范化为: ``` { "value": "http://malicious.tk/payload", "ioc_type": "url", "source": "urlhaus", "first_seen": "2024-01-15T10:22:00+00:00", "tags": ["malware", "emotet"], "confidence": 0.850, "threat_type": "malware", "reference_url": "https://urlhaus.abuse.ch/url/12345/" } ``` 当同一 IOC 出现在多个源时,来源会被合并,并使用概率或然法重新计算置信度,以确保评分不超过 1.0。 ## 快速开始 ``` pip install -r requirements.txt # URLhaus — no key needed python cli.py run --feeds urlhaus --output iocs.json # Multiple feeds (set env vars first) export ABUSEIPDB_API_KEY=your_key export OTX_API_KEY=your_key python cli.py run --feeds urlhaus abuseipdb otx --output iocs.csv # Filter by confidence python cli.py run --feeds urlhaus --min-confidence 0.8 # List available feeds and their env vars python cli.py feeds ``` ## 置信度评分 各源的基础置信度(根据数据质量设定): | 源 | 基础置信度 | |------------|------------| | URLhaus | 0.85 | | AbuseIPDB | 分数 / 100 | | OTX | 0.70 | 多源置信度使用概率或然法计算:`P = 1 - ∏(1 - Pᵢ)` 示例:URLhaus (0.85) + OTX (0.70) → `1 - (0.15 × 0.30)` = **0.955** ## 添加新源 1. 创建 `feeds/myfeed.py`,并实现 `fetch(limit=500) -> list[IOC]` 函数 2. 将该源的字段映射到 `schema.py` 中的 `IOC` 数据类 3. 在 `cli.py` 的 `AVAILABLE_FEEDS` 中添加对应条目
标签:AbuseIPDB, IOCs归一化, IOC聚合, masscan, OTX, Python, REST API, URLhaus, 内存取证对抗, 去重, 命令行接口, 多源关联, 威胁情报, 威胁情报平台, 威胁情报馈送, 威胁类型, 安全数据标准化, 开发者工具, 情报可信度, 情报归一化, 数据来源合并, 文档结构分析, 无后门, 概率校正, 置信度评分, 逆向工具