shotacure/DMARCReportViewer

GitHub: shotacure/DMARCReportViewer

一个完全离线运行的 Thunderbird 附件,用于可视化和分析 DMARC 聚合及取证报告,帮助邮件管理员解读 ISP 发来的认证数据并排查配置问题。

Stars: 0 | Forks: 0

# DMARC 报告查看器 **您的 DMARC 报告正在向您传达信息。此附加组件帮助您解读它们。** **DMARCレポートが伝えていること。このアドオンはそれを読み解く手助けをします。** ## 为什么开发此工具 / なぜこれを作ったか 您设置了 DMARC。您配置了 SPF。您轮换了 DKIM 密钥。接下来呢? 每天,ISP 都会向您发送包含在 ZIP 和 GZ 附件中的 XML 报告。它们包含了关于您邮件认证的基本事实——哪些 IP 正在以您的域名发送邮件,它们是通过还是失败,以及接收服务器对此做了什么。但没人会去阅读原始 XML。报告堆积如山。威胁被忽视。错误配置持续存在。 **DMARC Report Viewer 将这些报告转化为可操作的洞察——完全在 Thunderbird 内部,完全离线,零数据离开您的机器。** 这不是一个想要您 DNS 凭证的 SaaS 仪表板。这是一个本地工具,面向那些拥有自己基础设施并希望准确了解其域名状况的工程师。 DMARC を設定した。SPF を書いた。DKIM 鍵もローテーションした。で、その後は? 毎日 ISP から ZIP や GZ で圧縮された XML レポートが届く。そこにはメール認証の真実 — どの IP があなたのドメインで送信し、認証に成功したか失敗したか、受信サーバーがどう処理したか — がすべて記録されている。しかし誰も生の XML は読まない。レポートは積み上がり、脅威は見過ごされ、設定不備は放置される。 **DMARC Report Viewer はそれらのレポートをアクションにつながるインサイトに変える。Thunderbird の中だけで、完全にオフラインで、データは一切外に出ない。** DNS の認証情報を要求する SaaS ダッシュボードではない。自分のインフラを自分で管理し、ドメインに何が起きているかを正確に把握したいエンジニアのためのローカルツールだ。 ## 您可以做什么 / このツールでできること ### 查看真实情况 — 実態を把握する - 每个域名的 **8 项统计摘要**:总邮件数、已投递(认证通过)、已投递(认证失败)、已隔离、已拒绝、DKIM+SPF 通过、DKIM 通过、SPF 通过 - **饼图**:域名分布、处置细分(4 类)、报告者分布 - **时间序列**:随时间变化的处置趋势,支持自动周期聚合(每日 / 每周 / 每月) - **周期对比**:每个统计卡片上显示上一周期与当前周期的变化指标(↑↓→) ### 识别威胁 — 脅威を特定する - **IP 范围分类**:✅ 合法 / 🛡️ 已拦截 / ⚠️ 配置错误 / 🔴 威胁(未拦截) - **自适应 IP 聚合**:当多个 /24 共享同一个 /16 时自动合并 IP 范围 - **信封对齐**:检测 Header From / Envelope From 不匹配——区分第三方发件人与伪造 - **子域名分析**:跟踪每个子域名的认证状态 ### 深度分析 — 認証基盤の深掘り - **DKIM 签名分析**:签名域名、选择器、第三方签名检测 - **SPF 域名分析**:认证域名、mfrom/helo 范围跟踪及 helo-only 警告 - **策略建议**:针对每个域名的建议,用于 p=none → reject 迁移、adkim strict、pct=100 - **策略覆盖详情**:覆盖原因及关联的 IP 范围和转发器检测 ### 了解您的域名健康状况 — ドメインの健全度を知る - **健康徽章**:✅ 健康 / 🛡️ 遭受攻击 / ⚠️ 需要注意 / 🔴 存在风险 - **已投递(认证失败)**:最关键的指标——未能通过认证但仍被投递的邮件 ### 运维智能 — 運用インテリジェンス - **取证报告交叉引用**:按域名分组的取证报告,并链接到聚合 IP 数据 - **CSV 导出**:导出所有 IP 范围统计信息和取证报告,用于事件报告 - **结果缓存**:扫描结果在标签页重新打开后依然保留 ## 功能 / 機能一覧 - **全标签页仪表板** — 在专用的 Thunderbird 标签页中打开 - **可折叠域名部分** — 无需滚动即可管理多个域名 - **自动文件夹检测** — 根据命名约定查找 DMARC 报告文件夹 - **ISP 兼容性** — 处理 gzip 优先检测、Microsoft XML 拼写错误、零记录报告 - **周期对比** — 上一周期与当前周期的变化检测 - **DKIM/SPF/信封深度分析** — 完整的认证链可见性 - **子域名跟踪** — 每个子域名的认证状态 - **策略覆盖详情** — 覆盖原因及 IP 范围归因 - **取证交叉引用** — 链接到域名部分的取证报告 - **CSV 导出** — 用于合规性的 IP 范围 + 取证数据 - **扫描周期选择** — 1 周 / 1 个月 / 3 个月 / 6 个月 / 1 年 / 所有时间 - **深色模式** — 跟随系统偏好的完整深色模式 - **i18n** — 12 种语言:英语、日语、德语、法语、西班牙语、意大利语、韩语、中文(简体/繁体)、葡萄牙语(巴西)、俄语、阿拉伯语 - **隐私优先** — 零网络请求。一切数据都保留在您的机器上。 ## 前提条件 / 前提条件 ### DNS 配置 / DNS設定 ``` _dmarc.example.com. 300 IN TXT "v=DMARC1; p=reject; sp=reject; pct=100; adkim=s; aspf=s; fo=1; rua=mailto:dmarc-rua@example.com; ruf=mailto:dmarc-ruf@example.com" ``` ### 邮件文件夹设置 / メールフォルダ設定 ``` DMARC/ ├── Aggregate ← rua reports (auto-detected) └── Forensic ← ruf reports (auto-detected) ``` 通过 `To:` 地址使用邮件过滤器路由报告。 ## 安装 / インストール 1. `npm install` 或手动将 `jszip.min.js` 和 `pako.min.js` 放入 `lib/` 2. 构建:`./build.sh` (Linux/macOS) 或 `pwsh build.ps1` (Windows) 3. 在 Thunderbird 中安装:工具 → 附加组件 → 从文件安装附加组件 ## 架构 / アーキテクチャ ``` manifest.json Extension manifest (manifest_version 2) background.js Tab management, message scanning, decompression pipeline, folder auto-detection, result caching, period filtering, previous-period comparison, forensic domain grouping parser/ ├─ ar_parser.js RFC 7489 aggregate report parser with validation, │ IP range aggregation (adaptive /16 merging), │ deliveredPass/Fail classification, DKIM signature analysis, │ SPF domain analysis, envelope alignment detection, │ subdomain tracking, override detail attribution └─ fr_parser.js RFC 6591 forensic report parser with validation dashboard/ ├─ dashboard.html Full-tab dashboard UI with export button ├─ dashboard.css CSS variables, dark mode, 8-column grid, IP/health tags, │ collapsible sections, pie/line charts, advice boxes └─ dashboard.js Rendering logic — all analysis views, period comparison, │ CSV export, warning translation options/ ├─ options.html Settings page └─ options.js Folder selection & persistence lib/ ├─ jszip.min.js ZIP decompression (user-provided) └─ pako.min.js GZIP decompression (user-provided) _locales/ ├─ ar/ de/ en/ es/ fr/ it/ ja/ ko/ pt_BR/ ru/ zh_CN/ zh_TW/ └─ (122 keys per locale, 12 languages) ``` ### 处理流水线 ``` Period Filter (current + previous) → Auto-Detect Folders → Message Scan → Attachment Extraction → Decompress (GZ-first/ZIP) → XML Sanitize → Parse → Validate → Deduplicate → Current/Previous Period Split → DeliveredPass/Fail → IP Classification (adaptive merging) → DKIM Signature Aggregation → SPF Domain Aggregation → Envelope Alignment → Subdomain Detection → Override Detail Attribution → Forensic Cross-Reference → Domain Health Scoring → Policy Advice → Period Comparison → Cache → Render ``` ## 许可证 / ライセンス [GNU General Public License v3.0](LICENSE) Copyright (C) 2025 Shota (SHOWTIME)
标签:DKIM, DMARC, Mutation, SPF, Thunderbird插件, XML解析, 代码示例, 可视化, 域名防护, 多模态安全, 数字取证, 数据分析, 数据可视化, 欺诈检测, 电子邮件, 离线工具, 系统管理员, 网络安全, 网络安全, 自动化脚本, 自定义脚本, 邮件安全, 邮件认证, 隐私保护, 隐私保护