ryuk27/ioc-threat-intel

GitHub: ryuk27/ioc-threat-intel

一款集成多源威胁情报API的IOC自动化分析工具,支持IP、域名、URL和文件哈希的风险评分与MITRE ATT&CK映射。

Stars: 2 | Forks: 0

# IOC 威胁情报引擎 面向安全团队和 SOC 分析师的自动化威胁情报富化工具。 针对 **5 个独立威胁情报源**分析 IP、域名、URL 和文件哈希,并将发现结果映射到 **MITRE ATT&CK 技术**,以进行情境化的威胁评估。 ``` Input: Single IOC or file of IOCs ↓ Detection: Automatic type identification (IPv4, IPv6, domain, URL, hash) ↓ Enrichment: Query 5 threat feeds simultaneously ├─ VirusTotal (AV engine aggregator) ├─ AbuseIPDB (IP reputation) ├─ AlienVault OTX (threat pulses) ├─ Feodo Tracker (botnet C2 tracker) └─ URLhaus (malware URL database) ↓ Scoring: Composite risk score (0-100) ↓ Mapping: MITRE ATT&CK technique & tactic ↓ Report: Markdown or JSON output ``` ## 功能特性 **多 IOC 支持** 分析 IPv4、IPv6、域名、URL 和文件哈希(MD5、SHA1、SHA256、SHA512) **5 个独立威胁源** - VirusTotal(多引擎 AV 扫描结果) - AbuseIPDB(IP 信誉与滥用报告数据库) - AlienVault OTX(威胁脉冲与众包情报) - Feodo Tracker(实时僵尸网络 C2 阻断列表) - URLhaus(恶意软件 URL 数据库) **自动 IOC 类型检测** 零用户配置的智能验证和类型分类 **综合风险评分** 结合所有来源信号的加权评分算法(0-100 分制,含 5 个严重级别) **MITRE ATT&CK 映射** 针对所有检测结果的自动技术及战术映射 —— 将发现结果与已知攻击模式关联 **批量处理** 通过单条命令处理 10、100 或 1000 个 IOC **专业报告** 清晰的 Markdown 报告,包含摘要统计、风险细分和可操作建议 **生产级** 速率限制、错误处理,以及单个源失败时的优雅降级 ## 安装说明 ### 前置条件 - Python 3.8+ - pip ### 设置 ``` # Clone 或 download repository cd ioc-threat-intel # Install dependencies pip install -r requirements.txt # Copy .env.example 到 .env 并添加 API keys cp .env.example .env # Edit .env 填入你的 credentials # Required keys: VT_API_KEY, ABUSEIPDB_API_KEY, OTX_API_KEY # Optional: SHODAN_API_KEY ``` ### 所需 API 密钥 | 服务 | 密钥 | 免费套餐 | 注册地址 | |---------|-----|-----------|---------| | VirusTotal | `VT_API_KEY` | 是(有限制) | https://www.virustotal.com | | AbuseIPDB | `ABUSEIPDB_API_KEY` | 是(有限制) | https://www.abuseipdb.com | | AlienVault OTX | `OTX_API_KEY` | 是 | https://otx.alienvault.com | | Shodan | `SHODAN_API_KEY` | 是 | https://www.shodan.io | | **Feodo Tracker** | 不需要 | 是(无需认证) | https://feodotracker.abuse.ch | | **URLhaus** | 不需要 | 是(无需认证) | https://urlhaus.abuse.ch | ## 使用方法 ### 单个 IOC 分析 ``` python main.py --ioc 8.8.8.8 # Output: # Type: ipv4 # Risk Score: 10/100 — CLEAN # VirusTotal: 0 malicious, 0 suspicious # AbuseIPDB: Confidence 0%, 0 reports # Feodo Tracker: Not listed # MITRE: T1071 — Application Layer Protocol (Command and Control) # Verdict: [+] CLEAN — No immediate action recommended ``` ### 批量文件处理 ``` # Process 多个 IOCs (来自文件) python main.py --file iocs.txt --output report.md # Input file 格式 (每行一个): # 8.8.8.8 # malware.example.com # d41d8cd98f00b204e9800998ecf8427e # https://evil-site.net/malware ``` ### 抑制控制台输出 ``` python main.py --file iocs.txt --output report.md --quiet ``` ## 示例输出 ### 控制台输出 ``` [1] IOC: 185.220.101.1 Type: IPv4 Address Risk Score: 95/100 — CRITICAL Threat Intelligence: [+] VirusTotal: 45 malicious, 3 suspicious [+] AbuseIPDB: Confidence 94%, 312 reports [!] Feodo Tracker: LISTED — Known Botnet C2 (Emotet) MITRE ATT&CK: Technique: T1071.001 — Web Protocols Tactic: Command and Control Verdict: [!] MALICIOUS — Recommend immediate block ``` ### Markdown 报告 ``` # IOC Threat Intelligence Report Generated: 2026-03-16 14:32:11 UTC ## [1] IOC: 185.220.101.1 Type: ipv4 Risk Score: 95/100 — CRITICAL ### Threat Intelligence **VirusTotal:** - Malicious: 45/72 - Suspicious: 3/72 - Categories: Trojan.Generic, Botnet, C2 **AbuseIPDB:** - Confidence Score: 94% - Total Reports: 312 - ISP: Hosting Provider X **Feodo Tracker:** - [!] LISTED — Known Botnet C2 - Malware: Emotet/Trickbot variant - Status: Active --- # Summary Total IOCs Analyzed: 3 Critical: 1 | High: 1 | Medium: 0 | Low: 0 | Clean: 1 ## Recommendations [!] IMMEDIATE ACTION REQUIRED - Block detected malicious IOCs at perimeter - Alert security team for incident response - Isolate affected endpoints ``` ## 项目结构 ``` ioc-threat-intel/ ├── main.py # Entry point ├── ioc_intel/ │ ├── __init__.py │ ├── validator.py # IOC type detection & validation │ ├── enricher.py # API integration (all 5 sources) │ ├── scorer.py # Risk scoring algorithm │ ├── mitre_mapper.py # MITRE ATT&CK mapping │ └── reporter.py # Report generation & formatting ├── tests/ │ ├── test_validator.py # IOC detection tests │ ├── test_scorer.py # Risk scoring tests │ └── test_mitre_mapper.py # MITRE mapping tests ├── samples/ │ ├── sample_iocs.txt # Example IOC file │ └── sample_report.md # Example report output ├── docs/ │ └── case-study.md # Real-world investigation scenario ├── .env.example # Template for API keys ├── .gitignore ├── requirements.txt └── README.md ``` ## 评分原理 风险评分由多个加权信号计算得出: | 信号 | 权重 | 最大分值 | |--------|--------|------------| | VirusTotal 恶意检测数 (≥5) | 80 | 80 | | VirusTotal 可疑检测数 | 2 | 20 | | AbuseIPDB 置信度评分 | 0.8 | 80 | | AbuseIPDB 总报告数 | 0.5 | 20 | | Feodo Tracker 列入名单 | +30 | 30 | | URLhaus 列入名单 | +25 | 25 | | OTX 脉冲数 | 5 | 30 | | Shodan 漏洞 | 10 | 25 | | | | **最大值: 100** | ### 严重级别 | 级别 | 分值 | 行动 | |-------|-------|--------| | 🔴 **危急 (CRITICAL)** | 80-100 | 立即拦截,进行调查 | | 🟠 **高危 (HIGH)** | 60-79 | 升级处理,尽可能拦截 | | 🟡 **中危 (MEDIUM)** | 40-59 | 监控,调查 | | 🔵 **低危 (LOW)** | 15-39 | 记录日志,监控 | | ✅ **安全 (CLEAN)** | 0-14 | 批准使用 | ## MITRE ATT&CK 覆盖范围 | 技术 ID | 技术名称 | 战术 | |---|---|---| | T1071 | 应用层协议 | 命令与控制 | | T1071.001 | Web 协议 | 命令与控制 | | T1566 | 钓鱼 | 初始访问 | | T1204 | 用户执行 | 执行 | | T1041 | 经 C2 通道渗出 | 渗出 | | T1020 | 自动渗出 | 渗出 | | T1189 | 路过式入侵 | 初始访问 | ## 测试 运行单元测试以验证功能: ``` # Install pytest (如果尚未安装) pip install pytest # Run 所有 tests pytest tests/ -v # Run 特定 test 文件 pytest tests/test_validator.py -v # Run 并附带 coverage pytest tests/ --cov=ioc_intel ``` **当前状态:** ✅ 47 项测试通过 ## 案例研究 请参阅 [docs/case-study.md](docs/case-study.md) 查看展示该工具实际运作的真实事件调查场景。 ### 场景亮点 - C2 回连检测 - 多源威胁验证 - MITRE 技术映射 - 8 分钟内完成事件遏制 ## 性能 - **单个 IOC 分析:** 约 2-3 秒(取决于 API) - **批量处理(10 个 IOC):** 约 15-30 秒(受速率限制) - **报告生成:** <1 秒 - **零外部依赖:** 所有威胁源查询仅使用公共/商业 API ## 错误处理 该工具可优雅处理以下情况: - API 密钥缺失 → 跳过该源,继续使用其他源 - 网络超时 → 使用可用数据返回部分结果 - 无效 IOC → 标记为未知,处理剩余项 - 速率限制 → 带退避机制的自动重试 - 文件未找到 → 清晰的错误提示并退出 ## 安全说明 [!] **重要** - 切勿将包含真实 API 密钥的 `.env` 文件提交到版本控制 - `.env` 默认已添加到 `.gitignore` 中 - 请使用包含占位符值的 `.env.example` 模板作为参考 - 定期轮换 API 密钥 - 如果您的威胁源提供商支持,请考虑使用短期令牌 ## 作者 由 **Ryuk27** 构建 —— 威胁情报安全工程师 **找我:** - [GitHub](https://github.com/ryuk27) - [LinkedIn](https://www.linkedin.com/in/ram0912/) ## 路线图 计划中的增强功能: - 更多威胁源集成(URLScan、Censys、AbuseIPDB API v2) - 自定义风险评分规则和阈值 - Slack/Teams 集成以实现自动告警 - 历史追踪和趋势分析 - 针对企业级规模的批量 API 优化 ## 许可证 本工具按“原样”提供,用于教育和安全研究目的。 ## 资源 - **MITRE ATT&CK 框架:** https://attack.mitre.org/ - **VirusTotal API:** https://developers.virustotal.com/ - **AbuseIPDB API:** https://docs.abuseipdb.com/ - **AlienVault OTX:** https://otx.alienvault.com/ - **Feodo Tracker:** https://feodotracker.abuse.ch/ - **URLhaus:** https://urlhaus.abuse.ch/ **最后更新:** 2026年3月 **状态:** 积极开发中
标签:AMSI绕过, ATT&CK映射, DAST, IOC分析, IP信誉检测, Python安全工具, SOC工具, URL安全检测, 威胁情报, 威胁检测, 安全脚本, 开发者工具, 异常检测, 恶意软件分析, 情报丰富, 沙箱集成, 漏洞发现, 病毒扫描, 结构化查询, 网络安全, 自动化安全, 逆向工具, 速率限制处理, 隐私保护, 风险评分