lekanjava/ioc-enricher

GitHub: lekanjava/ioc-enricher

自动化威胁情报富化工具,批量查询IP、域名和文件哈希的恶意性并生成带风险评分的报告,帮助安全分析师将数十分钟的手动分析缩短至三分钟。

Stars: 0 | Forks: 0

# IOC Enricher 面向安全分析师的自动化威胁情报富化工具。 接收一份入侵指标(IP、域名、文件哈希)列表,并 自动查询 VirusTotal 和 AbuseIPDB 以确定它们是否 为恶意。输出带有风险评分的 JSON 和 CSV 报告。 ## 解决的问题 如果没有此工具,一名 SOC 分析师在检查 10 个可疑 IP 时必须: 1. 打开 VirusTotal,粘贴每个 IP,读取结果 2. 打开 AbuseIPDB,粘贴每个 IP,读取结果 3. 手动整合分析结果 4. 撰写报告 这需要 20 次手动查询以及 30 多分钟的工作。 使用此工具: ``` python main.py --file iocs.txt ``` 所有 10 个 IOC 的检查、评分和报告均可在 3 分钟内完成。 ## 功能 - 自动检测 IOC 类型(IP、域名、MD5/SHA1/SHA256 哈希) - 并发查询 VirusTotal 和 AbuseIPDB - 计算标准化的 0-100 风险评分 - 判定结果:MALICIOUS / SUSPICIOUS / CLEAN - 输出完整的 JSON 报告和简明的 CSV 摘要 - 彩色终端输出 - 每次 push 时在 GitHub Actions 中自动运行 ## 设置 ### 1. 克隆仓库 ``` git clone https://github.com/YOUR_USERNAME/ioc-enricher.git cd ioc-enricher ``` ### 2. 创建虚拟环境 ``` # Mac/Linux python3 -m venv venv source venv/bin/activate # Windows python -m venv venv .\venv\Scripts\Activate.ps1 ``` ### 3. 安装依赖 ``` pip install -r requirements.txt ``` ### 4. 添加 API 密钥 ``` cp .env.example .env # 编辑 .env 并添加你的真实 keys ``` 从以下地址获取免费的 API 密钥: - VirusTotal: https://www.virustotal.com/gui/join-us - AbuseIPDB: https://www.abuseipdb.com/register ## 用法 ### 检查包含 IOC 的文件 ``` python main.py --file iocs.txt ``` ### 检查单个 IOC ``` python main.py --ioc 185.220.101.1 python main.py --ioc malware-test.com python main.py --ioc 44d88612fea8a8f36de82e1278abb02f ``` ### 指定输出文件夹 ``` python main.py --file iocs.txt --output-dir my_reports ``` ## 风险评分 | 评分 | 判定结果 | |---|---| | 70 - 100 | MALICIOUS | | 30 - 69 | SUSPICIOUS | | 0 - 29 | CLEAN | **计算公式:** - 对于 IP:`(VirusTotal 恶意比例 × 60%) + (AbuseIPDB 置信度 × 40%)` - 对于域名和哈希:`VirusTotal 恶意比例 × 100%` ## 项目结构 ``` ioc-enricher/ ├── src/ │ ├── enricher.py # Orchestrator - coordinates all API calls │ ├── virustotal.py # VirusTotal API client │ ├── abuseipdb.py # AbuseIPDB API client │ ├── utils.py # IOC type detection and risk scoring │ └── reporter.py # JSON and CSV output ├── tests/ │ └── test_enricher.py # Unit tests ├── .github/workflows/ │ └── scan.yml # GitHub Actions CI/CD pipeline ├── main.py # CLI entry point ├── iocs.txt # Input IOC list └── requirements.txt # Python dependencies ``` ## 运行测试 ``` pytest tests/ -v ``` ## 技术栈 - Python 3.14 - requests (HTTP API 调用) - python-dotenv (安全的密钥管理) - rich (终端格式化) - pytest (单元测试) - GitHub Actions (CI/CD 自动化) ## 作者 本项目作为一个安全自动化作品集构建,旨在展示: 威胁情报富化、API 集成、CI/CD pipeline, 以及安全的凭证处理。
标签:Python, 威胁情报, 安全规则引擎, 安全运营, 开发者工具, 扫描框架, 无后门, 网络调试, 自动化