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, 情报收集, 情报聚合, 数据清洗, 数据解析, 文件哈希, 无后门, 漏洞研究, 网络安全, 逆向工具, 逆向工程平台, 隐私保护, 黑名单生成