akshay1389/email-phishing-detection
GitHub: akshay1389/email-phishing-detection
高级电子邮件钓鱼检测器,通过多技术融合实现精准风险识别。
Stars: 0 | Forks: 0
# 高级电子邮件钓鱼检测器 V3
该工具分析电子邮件文件(.eml、.msg),通过多角度方法检测潜在的钓鱼尝试,包括头部分析、内容检查、外部威胁情报(VirusTotal)、图像的光学字符识别(OCR)以及可选的 AI 评估。
项目参考:https://github.com/akshayb220194/email-phishing-detector-test
## 功能
### 全面解析
- 从 .eml 和 .msg 文件中提取头部、正文(文本/HTML)、附件和结构。
### 头部分析
- 解码标准头部(主题、发件人、收件人、回复地址)。
- 从头部解析身份验证结果(SPF、DKIM、DMARC)。
- 执行 DNS 查询以获取 DMARC 策略(需要 dnspython)。
- 识别可疑模式(例如发件人与回复地址不匹配)。
- 从 Received 头部提取原始 IP 地址。
### 正文分析
- 提取纯文本和 HTML 内容。
- 识别和提取 URL。
- 检测 HTML 中的可疑元素(表单、隐藏文本、JavaScript、缩短链接)。
- 分析链接是否存在品牌冒充和域名滥补(需要 python-Levenshtein)。
### 附件分析
- 提取附件元数据(文件名、大小、内容类型)。
- 生成 MD5、SHA1、SHA256 哈希。
- 识别可疑附件类型/名称(可执行文件、压缩包、双扩展名)。
- OCR 集成:从图像附件中提取文本(需要 Tesseract、Pillow、pytesseract)。
### VirusTotal 集成
- 将提取的 IP、URL 和附件哈希与 VirusTotal API v3 进行比对。
- 使用异步请求(aiohttp)提升效率。
- 在本地 SQLite 数据库中缓存 VT 结果,以减少 API 调用并加快重复分析速度。
### AI 评估(可选)
- 将详细报告发送至配置的 AI 模型(例如通过 OpenRouter)。
- 提示 AI 提供结构化 JSON 响应,包括:
- 钓鱼评分(0-10)
- 判定结果(CLEAN、SUSPICIOUS、MALICIOUS)
- 置信度评分
- 详细解释
- 可疑元素列表
- 识别出的品牌
### 报告
- 在控制台生成带颜色的详细报告(colorama)。
- 可选择将完整分析结果(包括 AI 响应)保存为 JSON 文件。
## 安装
### 1. 克隆仓库
```
git clone
cd
```
### 2. 创建虚拟环境(推荐)
```
python -m venv venv
source venv/bin/activate # On Windows use venv\Scripts\activate
```
### 3. 安装依赖
```
pip install -r requirements.txt
```
### 4. 安装 Tesseract OCR 引擎
**Ubuntu/Debian:**
```
sudo apt update && sudo apt install tesseract-ocr tesseract-ocr-eng
```
**macOS:**
```
brew install tesseract tesseract-lang
```
**Windows:** 从 Tesseract OCR GitHub 下载安装程序,并在安装过程中确保将 Tesseract 添加到系统 PATH。
### 5. 配置 API 密钥
**VirusTotal API 密钥:**
```
export VIRUSTOTAL_API_KEY="your_vt_api_key"
# Windows (cmd): set VIRUSTOTAL_API_KEY=your_vt_api_key
# Windows (PowerShell): $env:VIRUSTOTAL_API_KEY="your_vt_api_key"
```
**AI 提供商 API 密钥(可选,例如 OpenRouter):**
```
export OPENROUTER_API_KEY="your_ai_api_key"
```
### 6. 检查配置
修改 config/config.py 以进行更多设置:
- AI_MODEL:指定 AI 模型。
- DATABASE_PATH:设置数据库位置。
- CACHE_DURATION_SECONDS:设置 VirusTotal 缓存时长。
- OCR_ENABLED、OCR_LANGUAGES、TESSERACT_CMD。
- LOG_LEVEL。
## 使用
从命令行运行分析:
```
python main.py -f [options]
```
### 参数
- -f, --file:要分析的电子邮件文件(.eml 或 .msg)路径(必需)。
- --ai:启用基于 AI 的分析(可选)。
- -o, --output:将分析结果保存为 JSON 文件(可选)。
- -v, --verbose:启用详细控制台输出(可选)。
### 示例
基础分析:
```
python main.py -f suspicious_email.eml
```
启用 AI 并将结果保存为 JSON:
```
python main.py -f urgent_invoice.msg --ai -o report.json
```
带详细控制台的报告:
```
python main.py -f newsletter.eml -v
```
## 流程图
```
+-------------------------+ +-------------------------+ +-----------------------+
| Start (main.py) | ---> | Parse Command Line Args| ---> | Validate Input File |
| (Input: email file path)| | (file, --ai, -o, -v) | | (Exists? Size? Ext?) |
+-------------------------+ +------------+------------+ +-----------+-----------+
| | (Error -> Exit)
| |
v v (OK)
+-------------------------+ +------------+------------+ +-----------+-----------+
| Initialize Components | <--+ | Run Full Analysis Async | | Parse Email File |
| (DB Manager, VT Client)| | (run_full_email_analysis)| ---> | (email_parser.py) |
+-------------------------+ +------------+------------+ +-----------+-----------+
| | (Error -> Exit)
| |
v v (OK)
+-------------------------+ +-------------------------+ +-----------+-----------+
| Generate File Hashes | | Start Concurrent Tasks | | EmailMessage Obj |
| (security_analyzer) | <--- | (analyze_headers, | | Raw Content String |
+-------------------------+ | analyze_body, | +-----------------------+
| analyze_attachments) |
+------------+------------+
|
v (Await Tasks)
+---------------------------+ +-------------------------+ +-------------------------+
| Analyze Attachments | <---| | ---> | Analyze Headers |
| - Metadata, Hashes | | Gather Task Results | | - Decode, Auth, IPs |
| - OCR (if image, enabled) | | (Handle Exceptions) | | - VT IP Checks |
| - VT Hash Checks | +-----------+-------------+ | - Suspicious Indicators |
| (security_analyzer) | | | (security_analyzer) |
+---------------------------+ | +-------------------------+
| | |
|------------------------------------|------------------------------------|
|
v
+-------------------------+ +-------------+-----------+ +-------------------------+
| Analyze Body | <----| Combine Analysis Data | | AI Analysis (Optional) |
| - Text/HTML Content | +-------------------------+ ---> | - Build Prompt |
| - Links, URL Checks (VT)| | | - Call AI API |
| - Typosquatting | | | - Parse JSON Response |
| - Brand Impersonation | | | (ai_integration.py) |
| (security_analyzer) | | +-----------+-------------+
+-------------------------+ | | (Store AI Result)
v
+-------------------------+ +-------------------------+ +-----------+-----------+
| Generate Console Report| <--- | Finalize Results Dict | | Save Results to JSON? |
| (report_generator.py) | | (Set Status, Duration) | ---> | (If -o specified) |
+-------------+-----------+ +------------+------------+ +-----------------------+
| |
v v
+-------------+-----------+ +----------+----------+
| Display Report to User | | Prune Database Cache|
+-------------------------+ +---------------------+
|
v
+-------------+-----------+
| End (Exit Code) |
+-------------------------+
```
## 核心组件
- **main.py**:协调分析流程。
- **config/config.py**:管理 API 密钥和设置。
- **src/email_parser.py**:解析 .eml 和 .msg 文件。
- **src/database_manager.py**:在 SQLite 中管理 VirusTotal 缓存。
- **src/security_analyzer.py**:执行头部、正文和附件分析。
- **src/ai_integration.py**:处理基于 AI 的评估。
- **src/report_generator.py**:生成控制台报告。
## 待办事项 / 潜在改进
- **DMARC 对齐检查**:实现完整的 DMARC 验证。
- **URL 解码**:集成服务以解析缩短的 URL。
- **沙箱集成**:提交附件到沙箱环境。
- **HTML 渲染**:使用 BeautifulSoup 和 html2text 改进解析。
- **配置更新**:将已知域名和可疑 TLD 移至外部配置文件。
- **错误处理**:在部分失败时提高容错能力。
- **测试**:添加单元测试和集成测试。
## 关于开发者
该项目由 Akshay Basavalingaiah 维护,他是一名后端软件工程师,拥有超过 5 年构建可扩展 API、微服务和分布式系统的经验。凭借在 Python、Golang 和 Java 方面的扎实背景,Akshay 专注于开发高性能安全工具和数据处理工作流。
联系方式:
- 邮箱:akshayb220194@gmail.com
- GitHub:akshayb220194
- LinkedIn:akshay-basavalingaiah
标签:AI评估, API安全, Ask搜索, CDN识别, DKIM, DMARC, DNS查询, JSON输出, MD5, OCR, OpenRouter, Pillow, SHA1, SHA256, SPF, SQLite, Tesseract, URL检测, VirusTotal, 光学字符识别, 压缩包检测, 双扩展名, 反钓鱼, 可执行文件检测, 品牌冒充, 哈希计算, 图像文本提取, 域名钓鱼, 头部分析, 威胁情报, 开发者工具, 异步请求, 机器学习评分, 结构化报告, 缓存, 逆向工具, 邮件分析, 邮件安全, 邮件解析, 钓鱼检测, 附件分析