A DMARC 汇总报告 将观察结果分组到记录中。仅读取源 IP 或红色状态会丢弃诊断该行所需的策略、身份和报告上下文。从外部报告向内进行工作,并保留原始 XML 以及您的解释。
建立报告背景
在反馈下,report_metadata 标识报告组织、报告 ID 和日期范围。 policy_published 描述接收方观察到的策略配置。 RFC 9990 每个报告需要一个策略域,但该报告可以包含使用该策略的多个作者域。不要假设policy_published/domain 等于每个记录的header_from。
检查声明的命名空间和格式。当前的RFC 9990架构和旧的RFC 7489时代的报告有所不同,因此请记录您使用的验证配置文件。如果文档与预期格式不匹配,请将其隔离或明确标记部分解释,而不是默默地将格式错误的数据视为干净的报告。解析不受信任的 XML,无需解析任意外部实体,并绑定压缩输入和扩展大小。
通过三层跟踪记录
该行包含source_ip、count 和policy_evaluated。 IP 是接收者看到的连接系统,而不是自动生成的应用程序。计数给出了观察值组合的权重;计算 XML 记录并不是计算消息。
标识符部分提供 header_from 和可选的信封信息。 auth_results 包含原始数据 SPF 和 DKIM DMARC解释前的结果。 policy_evaluated/dkim 和policy_evaluated/spf 描述相应的DMARC 结盟 评估,而处置描述了政策下的处理。保留覆盖原因,而不是将整个记录减少为单个通过/失败标签。
注释合成行
假设 header_from 是brand.example ,count 是 25, 邮件来自 域是vendor.example并且原始SPF通过。 DKIM通过d=brand.example. SPF身份与作者域无关,因此不提供对齐的SPF ;精确域 DKIM签名 确实提供对齐的DKIM 。 spf=fail和dkim=pass的策略结果与这些事实一致。尽管 SPF 策略失败, DMARC仍可以通过DKIM 。
此示例是一个现场级教学装置,而不是完整的模式有效的 XML 文档或测量的客户结果。它说明了为什么将连接 IP 添加到brand.example的SPF可能无关紧要:针对vendor.example评估了SPF ,并且DMARC已经具有对齐的DKIM路径。
将争议转变为自有调查
将 IP 和身份与授权的发件人记录、提供商证据和受控消息测试相关联。在声明未知来源恶意或更改DNS之前指定所有者。在事件记录中保留报告间隙和时间界限。
有用的注释包括出处、时期、策略域、作者域、原始结果、对齐结果、处置、计数和下一步操作。这种结构可以让另一位调查员在不依赖仪表板颜色的情况下重现你的推理。
保留现场地图和预期结果
部分合成报告地图使用报告者虚构接收者 A、报告 ID field-map-25 和 UTC 纪元间隔 1704067200–1704153600(2024 年 1 月 1 日 00:00 到 2024 年 1 月 2 日 00:00 UTC)。其策略域是brand.example p=reject、 aspf=r和adkim=r.该记录具有 source_ip= 192.0.2.10 、 count=25, header_from= brand.example和envelope_from= vendor.example 。原始SPF通过vendor.example ;原始DKIM传递给brand.example 选择器 计费1.对于当前的RFC 9990报告配置文件示例,报告的策略结果为spf=fail, dkim=pass和 disposition=pass。附录 A 定义了在执行策略下通过DMARC通行证;附录 B 对此进行了说明。
现场比较描述了 25 个观察结果,其中包含通过的对齐DKIM路径和无对齐SPF路径。处置是提供的接收者字段,而不是计算的收件箱放置。元数据确定出处和时期; policy_published 提供历史配置;标识符和 auth_results 提供比较输入。该装置是部分字段映射,而不是完整的 XML,并且没有声明架构有效的报告或实时接收器测试。
完成一行注释
- 报告者和间隔:保留原始报告 ID 和 UTC 开始/结束时间。
- 权重:使用计数,而不是 XML 行数。
- 上下文:记录策略域、header_from 和适用的策略。
- 身份验证:记录原始SPF域/结果和每个DKIM域/结果;比较传递域的对齐情况。
- 结果:将对齐结果、处置和覆盖原因保留在单独的字段中。
- 下一步行动:在更改DNS之前,列出可疑的路由、仍然缺少的证据以及负责的所有者。
区分当前和遗留配置
RFC 9990 Appendix A defines disposition pass as no action for passing DMARC with an enforcing policy.它不保留任何内容,因为没有采取任何行动。 Older RFC 7489 -format reports lack the pass disposition and can report none for a passing message. Check the namespace, reporting profile and aligned results together: none is not universally invalid, but it should not silently stand in for the current-profile pass example.这两个值都不能证明收件箱的放置情况。