nlink-jp/mail-analyzer

GitHub: nlink-jp/mail-analyzer

一款结合规则引擎与 Gemini LLM 的可疑邮件分析工具,支持解析多种格式邮件并输出包含安全风险评估的结构化 JSON。

Stars: 0 | Forks: 0

# mail-analyzer 可疑邮件分析器,结合了基于规则的指标和 Gemini LLM。 解析 `.eml` 和 `.msg` 文件并输出结构化的 JSON,包含 SHA-256 哈希值、 认证结果、发件人完整性检查、URL/附件风险评估, 以及由 LLM 驱动的内容分析。 ## 功能 - **双重分析引擎**:确定性基于规则的指标 + Gemini LLM 内容分析 - **支持 EML 和 MSG**:完整的字符集处理(ISO-2022-JP、Shift_JIS、EUC-JP 等) - **SHA-256 哈希**:文件哈希和每个附件的哈希,用于 IoC 关联 - **认证分析**:SPF、DKIM、DMARC 结果解析 - **发件人完整性**:From/Return-Path 不匹配、显示名欺骗、Reply-To 偏差 - **URL 分析**:提取、去激活(Defanging)、免费托管 / 短链接 / 可疑 TLD 检测 - **附件分析**:危险扩展名、启用宏的 Office、双重扩展名 - **路由分析**:X-Mailer 分类、可疑的 Received 头检测 - **离线模式**:无 LLM 的基于规则分析(无 API 调用) - **Prompt injection 防御**:带有 nonce 标签的 XML 边界,并在 prompt 顶部提供防御指令 ## 安装说明 ``` git clone https://github.com/nlink-jp/mail-analyzer.git cd mail-analyzer make build # → dist/mail-analyzer ``` ## 运行说明 ``` # 使用 Gemini LLM (需要配置包含 Vertex AI 的 GCP project) export MAIL_ANALYZER_PROJECT=your-project-id mail-analyzer email.eml # 离线模式 (仅基于规则,无 API 调用) mail-analyzer --offline email.eml # MSG 格式 mail-analyzer message.msg # 支持 Pipe mail-analyzer email.eml | jq '.judgment' mail-analyzer email.eml | jq '.indicators.urls[] | select(.suspicious)' ``` ## 配置 配置按以下优先级加载: 1. **环境变量**(`MAIL_ANALYZER_*` 或 `GOOGLE_CLOUD_*`) 2. **TOML 配置文件**(`~/.config/mail-analyzer/config.toml`) 3. **默认值** ``` # 设置 config file (可选) mkdir -p ~/.config/mail-analyzer cp config.example.toml ~/.config/mail-analyzer/config.toml # 编辑 project ID ``` | 变量 | 默认值 | 描述 | |----------|---------|-------------| | `MAIL_ANALYZER_PROJECT` | (必填) | 用于 Vertex AI 的 GCP project ID | | `MAIL_ANALYZER_LOCATION` | `us-central1` | Vertex AI location | | `MAIL_ANALYZER_MODEL` | `gemini-2.5-flash` | Gemini model 名称 | | `MAIL_ANALYZER_LANG` | (自动) | 强制输出语言 | | `--config ` | | 覆盖配置文件路径 | ## 输出 Schema ``` { "source_file": "alert.eml", "hash": "sha256...", "message_id": "<...>", "subject": "...", "from": "...", "to": ["..."], "date": "...", "indicators": { "authentication": { "spf": "fail", "dkim": "pass", "dmarc": "fail" }, "sender": { "from_return_path_mismatch": true, ... }, "urls": [{ "url": "hxxps://evil[.]com/path", "suspicious": true, "reason": "..." }], "attachments": [{ "filename": "...", "hash": "sha256...", "suspicious": false }], "routing": { "hop_count": 7, "x_mailer": "...", "x_mailer_suspicious": false } }, "judgment": { "is_suspicious": true, "category": "phishing", "confidence": 0.95, "summary": "...", "reasons": ["...", "..."], "tags": ["...", "..."] } } ``` ## 构建 ``` make build # Build for current platform → dist/ make build-all # Cross-compile all platforms make test # Run tests make clean # Remove dist/ ``` ## 文档 - [架构](docs/architecture.md) — 设计决策、分析方法、原理 - [README.md](README.md) (英语) - [README.ja.md](README.ja.md) (日语) - [CHANGELOG.md](CHANGELOG.md)
标签:AI辅助分析, EVTX分析, Go, Python安全, Ruby工具, 威胁情报, 开发者工具, 日志审计, 邮件分析, 钓鱼检测