manvithareddy5858-lab/Threat---Intelligence---Aggregator

GitHub: manvithareddy5858-lab/Threat---Intelligence---Aggregator

一个轻量级Python工具,自动从多个威胁情报源收集、清洗、关联IOC指标,并生成可直接导入各类安全设备的阻止列表和情报报告。

Stars: 0 | Forks: 0

# 威胁情报聚合器 一个基于 Python 的网络安全工具,可从多个来源收集、解析、关联并报告威胁指标 (IOC)。 作为 **Unified Mentor 网络安全实习** 计划的一部分构建。 ## 该项目的功能 在网络安全领域,威胁指标 (IOC) 通常指恶意 IP 地址、可疑域名、危险 URL、恶意软件文件哈希或攻击者的电子邮件地址。安全团队利用这些信息来拦截威胁并保护其网络。 问题在于,这些指标来自许多不同的来源,且格式各异,分析师必须手动处理所有这些信息。本工具旨在自动化这项工作。 **提供一个包含威胁情报源的文件夹 → 它将生成清理后的阻止列表和完整的报告。** ## 工作原理 该工具分 6 个步骤运行: 1. **加载情报源** — 从文件夹中读取所有威胁情报源文件(支持 CSV、TXT、JSON) 2. **解析 IOC** — 使用正则表达式提取 IP 地址、域名、URL、文件哈希和电子邮件 3. **规范化** — 验证并清理所有内容;移除重复项和无效条目 4. **关联** — 检查哪些指标出现在多个情报源中,并根据风险对其进行评分(0–100) 5. **生成阻止列表** — 为不同的安全工具写入 8 个即用型阻止列表文件 6. **报告** — 生成 TXT、JSON 和 CSV 格式的完整情报报告 ## 如何运行 ``` # 基本运行 — 处理 feeds/ 文件夹中的所有文件 python main.py # 使用不同的文件夹 python main.py --feeds /path/to/your/feeds # 在 blocklists 中仅包含 risk score 为 30 或以上的 indicators python main.py --min-score 30 # 手动指定所有内容 python main.py --feeds ./feeds --output ./results --min-score 25 ``` 无需安装。仅使用 Python 3 标准库。 ## 项目结构 ``` ti_aggregator/ │ ├── main.py ← Run this to start the tool ├── requirements.txt ← No external packages needed ├── README.md │ ├── feeds/ ← Put your threat feed files here │ ├── feed1_ips.csv │ ├── feed2_mixed.txt │ └── feed3_structured.json │ ├── modules/ ← The 5 Python modules │ ├── parser.py ← Reads and parses feed files │ ├── normalizer.py ← Cleans and validates indicators │ ├── correlator.py ← Cross-feed correlation + risk scoring │ ├── blocklist_gen.py ← Generates blocklist files │ └── reporter.py ← Writes the final report │ └── output/ ├── blocklists/ │ ├── ip_blocklist.txt │ ├── domain_blocklist.txt │ ├── url_blocklist.txt │ ├── hash_blocklist.txt │ ├── email_blocklist.txt │ ├── master_blocklist.csv │ ├── master_blocklist.json │ └── high_risk_only.csv └── reports/ ├── ti_report.txt ├── ti_report.json └── ioc_database.csv ``` ## 支持的情报源格式 | 格式 | 扩展名 | 备注 | |--------|-----------|-------| | CSV | .csv | 需要包含以下列:indicator, type, severity, source | | 纯文本 | .txt | 每行一个指标,以 # 开头的行将被忽略 | | JSON | .json | 需要一个名为 "indicators" 的键,包含一个对象列表 | ## 工具处理的 IOC 类型 | 类型 | 示例 | |------|---------| | IP 地址 | 185.220.101.45 | | 域名 | malware.evil-domain.ru | | URL | http://malicious-site.net/payload.exe | | 文件哈希 (MD5/SHA1/SHA256) | 44d88612fea8a8f36de82e1278abb02f | | 电子邮件地址 | attacker@evil-domain.ru | ## 风险评分 每个指标都会获得一个 0 到 100 之间的分数: - 基于严重程度的基准分数 (低 = 5,中 = 15,高 = 30,严重 = 40) - 每增加一个包含该指标的情报源,分数增加 +10(最多 +30) - 如果出现在 3 个或更多情报源中,额外增加 +10 分 - 最终分数上限为 100 **评分阈值:** 严重 ≥ 75 | 高 ≥ 50 | 中 ≥ 25 | 低 < 25 ## 示例结果(来自测试运行) - 已处理的情报源:4 - 收集的原始指标:57 - 清理后的有效唯一指标:35 - 在 2 个以上情报源中出现的指标:13 - 高风险指标(分数 ≥ 50):3 - 已创建的阻止列表文件:8 - 运行时间:不到 1 秒 ## 使用的库 全部来自 Python 标准库 — 无需 pip install: | 库 | 用途 | |---------|----------| | re | 使用正则表达式提取 IOC 模式 | | csv | 读取/写入 CSV 文件 | | json | 读取/写入 JSON 文件 | | os | 文件系统导航 | | ipaddress | IP 地址验证和 RFC 1918 过滤 | | datetime | 为指标添加时间戳 | | argparse | 命令行界面 | ## 输出文件 ### 阻止列表 | 文件 | 适用工具 | |------|-------------| | ip_blocklist.txt | iptables, pfSense, Palo Alto 防火墙 | | domain_blocklist.txt | Pi-hole, DNS sinkhole | | url_blocklist.txt | Squid 代理, Nginx | | hash_blocklist.txt | CrowdStrike, Windows Defender, YARA | | email_blocklist.txt | SpamAssassin, Postfix, Office 365 | | master_blocklist.csv | 所有类型汇总 — 用于 SIEM 导入 | | master_blocklist.json | 所有类型的 JSON 格式 — 用于 API 集成 | | high_risk_only.csv | 仅包含最高风险的指标 | ### 报告 | 文件 | 描述 | |------|-------------| | ti_report.txt | 完整的可读性摘要 | | ti_report.json | 用于机器处理的结构化数据 | | ioc_database.csv | 包含所有指标的完整电子表格 | *Unified Mentor 实习 — 网络安全 — 2026 年 4 月*
标签:IOC, Python, TTP, 关联分析, 后端开发, 域名, 威胁情报, 威胁指标, 安全报告, 开发者工具, 开源安全工具, 恶意IP, 情报收集, 情报聚合, 数据清洗, 数据解析, 文件哈希, 无后门, 漏洞研究, 网络安全, 逆向工具, 逆向工程平台, 隐私保护, 黑名单生成