Atri2-code/Phishing-Analyzer-Threat-Intelligence-
GitHub: Atri2-code/Phishing-Analyzer-Threat-Intelligence-
基于纯Python标准库的轻量级钓鱼邮件分析工具,通过多维度启发式规则对.eml文件进行IOC提取与威胁评分,帮助安全团队快速批量研判钓鱼邮件。
Stars: 0 | Forks: 0
# phishing-analyzer (威胁情报)
## 快速开始
```
git clone https://github.com/YOUR_USERNAME/phishing-analyzer.git
cd phishing-analyzer
# 分析包含 .eml 文件的文件夹
python src/analyze.py --input data/samples/ --output reports/
# 单个文件
python src/analyze.py --input data/samples/sample1.eml
```
无外部依赖。纯 Python 标准库。
## 示例输出
```
phishing-analyzer
────────────────────────────────────────
IOC feed: 7 known-bad domains loaded
🔴 [ 90/100] sample1.eml
Subject : Urgent: Your account has been suspended
From : security-alert@paypa1.com
Signals : 4 → Report: reports/sample1_threat_report.md
🔴 [ 90/100] sample2.eml
Subject : Action Required: Microsoft 365 Password Expiry Notice
From : it-helpdesk@micros0ft-support.net
Signals : 5 → Report: reports/sample2_threat_report.md
🟢 [ 0/100] sample3.eml
Subject : Your Amazon order has shipped
From : noreply@amazon.com
Signals : 0 → Report: reports/sample3_threat_report.md
────────────────────────────────────────
Summary: 3 emails analysed
🔴 Phishing : 2
🟡 Suspicious : 0
🟢 Clean : 1
```
## IOC 提取
每封电子邮件都会被解析以提取:
| IOC 类型 | 示例 |
|----------|---------|
| URL | `http://paypa1-secure-login.xyz/verify?token=abc` |
| 域名 | `paypa1-secure-login.xyz` |
| IP 地址 | `192.168.1.1` |
| 电子邮件地址 | `security-alert@paypa1.com` |
| 可疑附件 | `invoice.exe`, `reset.ps1` |
## 威胁评分启发式规则
| 信号 | 最高分 | 逻辑 |
|--------|-----------|-------|
| IOC 情报源匹配 | +40 | 域名位于已知恶意列表中 |
| 发件人伪造 | +30 | 发件人中包含品牌名称但域名不正确 |
| 可疑附件 | +35 | .exe, .bat, .ps1, .vbs, .js 等 |
| 同形字 / 域名抢注 | +25 | 包含数字替换的品牌域名 (paypa**1**, micros**0**ft) |
| 可疑 TLD | +20 | .xyz, .tk, .ru, .pw, .ga, .cf, .ml |
| 高度紧急用语 | +20 | 主题/正文中包含 3 个及以上紧急指示词 |
| 紧急用语 | +10 | 1–2 个紧急指示词 |
**判定结果:** 0–29 = 正常 · 30–59 = 可疑 · 60–100 = 钓鱼
## 项目结构
```
phishing-analyzer/
├── src/
│ ├── analyze.py # Batch CLI entry point
│ ├── extractor.py # IOC extraction from .eml files
│ ├── scorer.py # Weighted threat scoring engine
│ └── reporter.py # Markdown report generator
├── data/
│ ├── samples/ # .eml test files
│ └── ioc_feeds/ # Known-bad domain lists (.txt)
├── reports/ # Generated reports (gitignored)
├── tests/
│ └── test_scorer.py # Unit tests for scoring engine
└── README.md
```
## IOC 情报源格式
纯文本,每行一个域名。将任何 `.txt` 文件放入 `data/ioc_feeds/` 中:
```
paypa1-secure-login.xyz
m1crosoft-365.login-reset.ru
login-verify-account.tk
```
兼容来自 URLhaus、OpenPhish、PhishTank 导出的威胁情报源。
## 运行测试
```
python tests/test_scorer.py
```
## 涉及的技能
| 安全能力 | 实现 |
|---|---|
| IOC 提取 | 通过正则表达式从原始 .eml 文件中解析 URL、域名、IP、电子邮件 |
| 钓鱼分析 | 发件人伪造、同形字、紧急用语、TLD 启发式分析 |
| 威胁情报源集成 | 可插拔的 IOC 情报源加载器 (URLhaus / PhishTank 格式) |
| Python 自动化 | 批处理 Pipeline 可处理海量电子邮件样本 |
| 威胁报告 | 生成包含建议操作的结构化单封邮件报告 |
| 测试自动化 | 7 个单元测试,覆盖所有评分信号类型 |
## 路线图
- [ ] VirusTotal API 丰富化以获取 URL 信誉
- [ ] MISP 集成以实现 IOC 共享
- [ ] 对附件正文进行 YARA 规则扫描
- [ ] 针对高严重性命中的 Slack/Teams 告警 Webhook
- [ ] 导出 CSV 以供 SIEM 接收
## 许可证
MIT
标签:DAST, IOC提取, IT安全, meg, Python, SOC工具, SOC自动化, YARA, 云资产可视化, 信息安全, 垃圾邮件检测, 威胁情报, 安全分析与运营, 安全评分, 开发者工具, 恶意软件分析, 文档结构分析, 无后门, 沙箱, 漏洞发现, 电子邮件安全, 结构化查询, 网络安全, 自动化安全, 逆向工具, 钓鱼邮件分析, 防御加固, 隐私保护