LokeshTech02/IOC_Analyzer_Threat_Intelligence
GitHub: LokeshTech02/IOC_Analyzer_Threat_Intelligence
基于 Python 的威胁情报分析平台,用于批量验证失陷指标、进行风险评分与外部数据富化,并生成 SOC 调查报告和管理层执行报告。
Stars: 1 | Forks: 0
# IOC 分析器

IOC Analyzer 是一款基于 Python 3.12 的威胁情报工具,用于验证失陷指标,对其进行分类、分配风险评分、结合外部信誉数据进行富化,并为 SOC 和蓝队工作流生成具有唯一命名的调查产物。
## 项目概述
本仓库可帮助防御者处理来自 TXT 和 CSV 输入的 IOC 数据集,应用验证和低误报评分逻辑,添加威胁上下文标签,并生成基于单次扫描的 JSON、CSV 和 HTML 交付物,且不会覆盖之前的调查记录。
## 功能特性
- 支持 IPv4、IPv6、域名、URL、MD5、SHA1、SHA256 和电子邮件地址的检测
- 基于 regex 和逻辑的验证 pipeline
- 针对凭据窃取诱饵、加密货币诈骗、可疑域名、品牌冒充和网络钓鱼主题的威胁上下文分析
- 基于可疑 TLD、品牌冒充、随机域名、加密货币诈骗模式、VirusTotal 信誉度和 AbuseIPDB 置信度的风险评分
- 为受支持的 IOC 类型提供可选的 VirusTotal v3 数据富化
- 为 IPv4 和 IPv6 指标提供可选的 AbuseIPDB 数据富化
- 威胁分类:良性、可疑、恶意和未知
- 为 JSON、CSV 和 HTML 输出产物提供唯一的扫描命名
- 包含扫描元数据和富化摘要的 HTML 执行报告
- 结构化日志记录到 `logs/analysis.log`
- Pytest 测试覆盖率和 GitHub Actions CI 工作流
# 截图
## CLI 分析

分析 IOC 数据集并生成调查产物。
## 威胁情报富化

VirusTotal 富化提供恶意软件家族识别和威胁类别。
## 执行报告

生成适合管理人员阅读的调查报告。
## 恶意软件情报

从 VirusTotal 检测结果中提取恶意软件家族和威胁类别。
## 架构图
```
flowchart TD
A["Input IOCs"] --> B["Validator"]
B --> C["Classifier"]
C --> D["Risk Scoring"]
D --> E["Threat Context Analysis"]
E --> F["VirusTotal Enrichment"]
E --> G["AbuseIPDB Enrichment"]
F --> H["JSON / CSV Export"]
G --> H
H --> I["Executive HTML Report"]
```
## 安装
```
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
```
## 使用示例
分析 TXT 数据集:
```
python main.py analyze sample_data/sample_iocs.txt phishing_case
```
结合 VirusTotal 富化分析 TXT 数据集:
```
python main.py analyze sample_data/sample_iocs.txt phishing_case --vt
```
结合 VirusTotal 和 AbuseIPDB 富化分析 TXT 数据集:
```
python main.py analyze sample_data/sample_iocs.txt incident1 --vt --abuseipdb
```
分析 CSV 数据集并使用自动生成的扫描命名:
```
python main.py analyze sample_data/sample_iocs.csv
```
验证 VirusTotal API 配置:
```
python main.py test-vt
```
验证某次扫描已有的产物:
```
python main.py export phishing_case
python main.py report phishing_case
```
## 威胁上下文分析
IOC Analyzer 会添加信息性的威胁上下文标签,而不会单凭孤立的指标声称具有 ATT&CK 归因。示例标签包括:
- `credential_theft_lure`
- `crypto_scam`
- `suspicious_domain`
- `brand_impersonation`
- `phishing_lure`
## VirusTotal 集成
VirusTotal v3 富化是可选的,在提供 `--vt` 标志且配置了 `VT_API_KEY` 时运行。支持的 IOC 类型:
- IPv4
- IPv6
- 域名
- URL
- MD5
- SHA1
- SHA256
启用 VirusTotal 后,分析器将添加:
- `malicious_votes`
- `suspicious_votes`
- `harmless_votes`
- `reputation`
## AbuseIPDB 集成
AbuseIPDB 富化是可选的,在提供 `--abuseipdb` 标志且配置了 `ABUSEIPDB_API_KEY` 时运行。支持的 IOC 类型:
- IPv4
- IPv6
返回的字段包括:
- `abuse_confidence_score`
- `country_code`
- `usage_type`
- `total_reports`
## API Key 配置
VirusTotal:
1. 创建或登录您的 VirusTotal 账户。
2. 在 VirusTotal 用户门户中打开 API key 部分。
3. 复制您的 API key 并将其存储为 `VT_API_KEY`。
AbuseIPDB:
1. 创建或登录您的 AbuseIPDB 账户。
2. 从账户仪表板生成一个 API key。
3. 将该 key 存储为 `ABUSEIPDB_API_KEY`。
## 环境变量
Windows:
```
set VT_API_KEY=YOUR_KEY
set ABUSEIPDB_API_KEY=YOUR_KEY
```
Linux:
```
export VT_API_KEY=YOUR_KEY
export ABUSEIPDB_API_KEY=YOUR_KEY
```
## 唯一扫描命名
每次分析运行都会根据提供的扫描名称或自动生成的时间戳名称生成唯一的输出。
示例:
- `exports/phishing_case.json`
- `exports/phishing_case.csv`
- `reports/phishing_case.html`
- `exports/scan_20260609_201530.json`
- `reports/scan_20260609_201530.html`
## 输出产物
- `exports/` 中基于单次扫描的 JSON 结果
- `exports/` 中基于单次扫描的 CSV 结果
- `reports/` 中基于单次扫描的 HTML 报告
- `logs/analysis.log` 中的活动日志
## 未来增强功能
- 集成被动 DNS 和信誉源以进行富化
- 添加分析师自定义的威胁上下文规则
- 支持 STIX/TAXII 的摄取和导出
- 引入带有分析师反馈循环的置信度评分
- 添加 REST API 和 Web 仪表板接口
## 项目结构
- analyzer/ – IOC 验证、评分、威胁上下文和富化逻辑
- tests/ – 自动化 pytest 测试套件
- sample_data/ – IOC 数据集示例
- assets/ – 文档资源和项目 Banner
- .github/ – GitHub Actions CI/CD 工作流
标签:IOC分析, Python, 威胁情报, 安全运营, 开发者工具, 扫描框架, 无后门