MysticXTharun/phishing-email-investigation-dashboard
GitHub: MysticXTharun/phishing-email-investigation-dashboard
面向 SOC 分析师构建的钓鱼邮件自动化静态分析仪表板,通过提取认证状态、妥协指标并计算风险评分,加速可疑邮件的初步研判与历史追踪。
Stars: 0 | Forks: 0
# 钓鱼邮件调查仪表板
这是一个专注于 SOC 的应用程序,用于分析可疑邮件、提取妥协指标、检查邮件身份验证结果、计算风险评分,并存储调查历史记录。
## 项目目标
钓鱼邮件通常会冒充受信任的组织,以窃取凭证、分发恶意软件或将用户重定向到恶意网站。SOC 分析师在得出最终判定之前,必须检查邮件标头、身份验证结果、链接、附件和发件人信息。
本项目旨在自动化完成初步的静态分析和分流处理过程。
## 功能特性
- 原始邮件标头和正文分析
- SPF、DKIM 和 DMARC 结果检测
- 发件人、Reply-To 和 Return-Path 对比
- URL、域名和 IP 地址提取
- 可疑附件检测
- 钓鱼关键词检测
- SHA-256 邮件指纹生成
- 0–100 的风险评分
- 可能安全、可疑和恶意的判定结论
- 使用 SQLite 存储调查历史
- 提供 REST API 并附带 Swagger 文档
- 响应式 SOC 风格界面
- Docker 部署
- 自动化的 pytest 覆盖率测试
## 钓鱼调查工作流
1. 分析师提交完整的原始邮件。
2. 应用程序解析其标头和正文。
3. 提取 SPF、DKIM 和 DMARC 结果。
4. 对比发件人、Reply-To 和 Return-Path 域名。
5. 提取 URL、域名、IP 地址和附件。
6. 检测可疑用语和文件扩展名。
7. 生成风险评分和判定结论。
8. 将结果存储到 SQLite 中以供日后审查。
## 邮件身份验证
### SPF
Sender Policy Framework 检查发送邮件服务器是否被授权发送来自其所声明域名的邮件。
### DKIM
DomainKeys Identified Mail 使用数字签名来验证邮件是否已由发送域授权,并且在传输过程中未被篡改。
### DMARC
Domain-based Message Authentication, Reporting and Conformance 利用 SPF 和 DKIM 的结果来应用域名策略,以帮助防止邮件欺骗。
## 分析的指标
| 指标 | 用途 |
|---|---|
| 发件人地址 | 识别显示的发件人 |
| Reply-To 地址 | 检测被重定向到其他域名的回复 |
| Return-Path | 识别 envelope 发件人 |
| SPF、DKIM 和 DMARC | 检测身份验证失败情况 |
| URL 和域名 | 查找可能用于窃取凭证的链接 |
| IP 地址 | 提取基础设施信息以便进一步调查 |
| 附件 | 检测可疑的可执行文件或脚本扩展名 |
| 邮件用语 | 检测紧急性、账户威胁和凭证请求 |
| SHA-256 哈希 | 为提交的邮件创建唯一指纹 |
## 风险分类
| 风险评分 | 判定结论 | 含义 |
|---|---|---|
| 0–39 | 可能安全 | 可疑指标极少或没有 |
| 40–69 | 可疑 | 需要分析师进行额外调查 |
| 70–100 | 恶意 | 包含多个高置信度的钓鱼指标 |
评分受身份验证失败、发件人信息不匹配、可疑措辞、URL、Return-Path 差异以及危险附件等因素的影响。
## 技术栈
- Python
- FastAPI
- SQLite
- Jinja2
- HTML、CSS 和 JavaScript
- Docker 和 Docker Compose
- Pytest
## 项目结构
```
phishing-email-investigation-dashboard/
├── app/
│ ├── static/
│ │ ├── css/style.css
│ │ └── js/app.js
│ ├── templates/
│ │ ├── index.html
│ │ └── investigation.html
│ ├── analyzer.py
│ ├── database.py
│ └── main.py
├── data/
├── docs/screenshots/
├── tests/test_analyzer.py
├── compose.yaml
├── Dockerfile
├── requirements.txt
└── README.md
```
## 使用 Docker 运行
```
git clone https://github.com/MysticXTharun/phishing-email-investigation-dashboard.git
cd phishing-email-investigation-dashboard
docker compose up --build -d
```
打开仪表板:
```
http://localhost:8000
```
打开 API 文档:
```
http://localhost:8000/docs
```
检查应用程序健康状况:
```
curl http://localhost:8000/api/health
```
## 运行测试
```
docker compose exec phishing-dashboard python -m pytest -v
```
## API 端点
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | `/` | 仪表板 |
| POST | `/analyze` | 分析并保存原始邮件 |
| GET | `/investigations/{id}` | 查看调查结果 |
| GET | `/api/investigations` | 获取调查历史记录 |
| GET | `/api/investigations/{id}` | 以 JSON 格式获取单项调查记录 |
| GET | `/api/statistics` | 获取仪表板统计数据 |
| GET | `/api/health` | 应用程序健康检查 |
| GET | `/docs` | Swagger API 文档 |
## 截图
### 仪表板概览

### 调查结果

### API 文档

## 安全性限制
此应用程序仅执行静态分析。它不会打开 URL、执行附件、查询实时的威胁情报平台,也不能保证邮件绝对安全。
在真实的 SOC 调查中,应结合威胁情报、沙箱环境、端点遥测数据、邮件网关日志以及分析师的审查来验证结果。
## 免责声明
本项目仅供教育和防御性安全目的使用。
标签:多模态安全, 数据可视化, 版权保护, 网络测绘, 请求拦截, 逆向工具