[ SPF ]

SPF无效查找:诊断空且不存在的DNS答案

区分空DNS答案和DNS故障,并沿着实际SPF评估路径跟踪无效查找。

由EmailAuth研究团队提供 · 7 分钟阅读

[ 要点 ]

  • 无效答案和临时DNS故障是不同的类别。
  • 无效建议与十个任期限制不同。
  • 保留导致诊断的响应和分支。
在此页面上

更改DNS之前先定义问题

A 无效查找 诊断不仅仅意味着“ DNS没有提供预期的地址”。 RFC 7208描述了返回零答案的肯定响应或名称错误响应的相关查询。这些通常称为空查找。超时或服务器故障不是同一响应类别。将所有不成功的查找视为无效可能会将暂时的解析器事件转变为重写有效发件人策略的错误建议。

该标准规定,实现应该将无效查找限制为两次。它允许可配置的限制,并在这种情况下建议默认设置两个。超过适用的限制会产生 permerror。保留这些规范性区别:“二”并不是每个实现中无条件通用的“必须”,但审阅者也不应该假设未知的接收者已经提高了其限制。 RFC 7208 ,第 4.6.4 节

维护两个独立的柜台

整体 SPF 预算限制评估了 DNS 引起的术语,包括 include、a、mx、ptr、exists 和 redirect。无效限制涉及评估评估过程中遇到的空答案或不存在答案的资格。它们在操作后果上重叠,但衡量的东西不同。一项政策在用尽其总体期限预算之前可能会遇到有问题的无效响应。较长的成功依赖路径可以耗尽期限预算而不产生无效响应。

数据包捕获计数、解析器缓存命中计数和SPF术语计数不可互换。缓存可以改变网络活动,而不使逻辑策略可以自由评估。同样,一个句法术语可能需要额外的解析工作或有其自己的补充约束。将评估的术语、扩展查询名称、记录类型、答案分类和运行总计保留在不同的字段中。 RFC 7208 ,第 4.6.4 节

收集足够的响应详细信息以对事件进行分类

对于提议的授权调查,保留查询的名称和类型、 DNS响应代码、答案计数、相关返回记录、解析程序上下文和时间戳。保留原始响应或忠实的结构化记录,而不仅仅是绿色或红色仪表板标签。没有答案的积极响应不应被默默地重铸为NXDOMAIN 。两者都可能对作废记账很重要,但它们的DNS含义和补救路径可能不同。

记录SPF评估器是否确实完成了查找。静态发现工具可以探索特定消息从不评估的依赖关系。这种探索可以揭示风险,但并不能证明消息消耗了这些查找。确定连接地址、发件人输入和策略分支,以便其他审阅者可以了解评估或跳过机制的原因。

单独保留错误。超时、收集日志被截断或解析器无法访问是一种不确定性,需要单独分类。不要用假设的空答案替换缺失的观察结果。调查应该是可重复的,而不需要审阅者从散文中推断响应类型。

在提出修复建议之前解释机制

存在机制测试扩展域是否具有标准定义的地址数据。有一种机制将相关地址与连接客户端进行比较。他们的不匹配结果本身并不能证明出版商犯了错误。一些策略有意使用存在性检查。诊断问题是实际路径是否保持在适用的限制内,以及依赖关系是否仍然服务于其预期的授权目的。

不存在的包含目标值得有不同的解释。包括递归评估策略;子 none 结果映射到permerror ,而不是被视为安全失败的普通不匹配。因此,报告可能会遇到丢失的DNS数据,并且比累积无效限制解释更直接包含错误。解释最早支持的错误,而不是相同缺失名称的所有可想象的后果。 RFC 7208 ,第 5.2、5.3 和 5.7 节

操作工作表和验收标准

准备一个工作表,其中包含步骤列、包含策略、机制、扩展目标、查询类型、响应代码、答案计数、逻辑项总数、无效总数和继续决策。如果可用,请包括评估者记录的无效限制配置。如果该配置未知,请陈述假设并避免在没有证据的情况下将其归因于真实的接收服务。

对于每个可疑的空答案,分配一个可以确认目标是否是当前目标的所有者。印刷错误、退休提供商依赖、有意存在测试和暂时不可用的证据需要不同的响应。记录建议的更正及其可能影响的发件人路由。切勿仅仅因为名字看起来很熟悉而替换猜测的供应商。

接受需要一条连贯的路径和准确的失败分支,而不仅仅是草稿记录中更少的术语。审核者应该能够确定哪个响应被分类为无效、何时超过配置的阈值以及该事件确定结果的原因。在任何单独批准的更改之后,将再次需要当前证据,因为提供程序依赖项和缓存可能与规划快照不同。

虚构的诊断:空答案与不可用的解析器

想象一个完全虚构的策略,它按顺序达到三个存在检查,每个检查都返回一个零答案的肯定响应。假设一个虚构的评估器配置为无效限制为 2 并且没有较早的匹配或错误。在第三个合格响应中,建议的跟踪会识别超出的限制和permerror 。这是一个解释性场景,而不是执行的固定装置或有关任何提供商的声明。

将第三个观察更改为超时。诊断不能再说这个反应是第三个无效答案。调查者必须保留临时的DNS错误和评估者的处理,而不是强行将事件纳入之前的解释。将第二个观察结果更改为与存在机制匹配的肯定地址答案,并且后面的分支可能永远不会到达。

这些变化说明了为什么未解析主机名的简单列表是不够的。相关事实是响应语义、顺序和终止点。它们还说明了为什么相同的政策文本可以为不同的输入或DNS状态生成不同的路径,而不意味着某个观察者捏造了其结果。

保留原始证据并打开释放大门

本手稿未查询公共或私人领域。该工作表是一种建议的方法,所进行的诊断是虚构的。目录需要一个带注释的路径,显示每个计数的术语和确切的失败分支;在实际授权证据存在并得到审查之前,该要求仍然有效。

出版物应标记解析器上下文、收集时间和评估器假设。它不应该从一种实现的可配置阈值中声明通用接收器行为。来源适用性、人工审查、原始证据、生产路线、视觉可访问性和所有者发布仍然开放。任何真正的DNS修复都属于单独授权的更改过程,具有当前的发件人清单和回滚计划。

[ 外卖 ]

根据响应证据和评估者策略诊断无效限制,而不是根据原始查询计数。

[ 按角色 ]

这对您意味着什么

选择您的角色以执行后续实际步骤。

DNS运营商

保留响应语义

空响应和失败响应会导致不同的修复。

后续步骤

  1. 保留响应代码和答案计数。
  2. 编辑前确认目标所有权。

评估者维护者

暴露单独的计数器

定期预算和无效预算衡量不同的条件。

后续步骤

  1. 记录配置的阈值。
  2. 显示确切的终止点。

支持审稿人

需要失败的分支

截图不能代替痕迹。

后续步骤

  1. 将静态发现与评估分开。
  2. 明确未解决的缺失证据。

[ 常见问题解答 ]

常见问题

什么是空查找?

RFC 7208描述了此类别中具有零答案的肯定响应和名称错误响应。

RFC 7208 :发件人策略框架

超时是无效答案吗?

否。将临时DNS故障与合格的空或不存在的响应分开保存。

RFC 7208 :发件人策略框架

两个是无条件强制限制吗?

否。RFC 使用“应该”(SHOULD),允许配置,并推荐两个作为可配置的默认值。

RFC 7208 :发件人策略框架

超过适用的无效限制时会发生什么?

指定的结果是permerror 。

RFC 7208 :发件人策略框架

无效预算和十期预算相同吗?

不可以。它们的限制不同,需要单独核算。

RFC 7208 :发件人策略框架

缺失的包含会简单地失败吗?

子 none 结果映射到包含的permerror 。

RFC 7208 :发件人策略框架

是否收集了DNS响应?

不。这些示例是虚构的,原始查询记录是空的。

什么证明了这个诊断?

带注释的评估路径,具有精确的响应分类和失败的分支,在这里仍然突出。

[ 来源 ]

来源

  1. RFC 7208 :发件人策略框架

    部分 §2.3 HELO身份 · §2.4 来自身份的邮件 · §3.2 多个DNS记录 · §3.3 单个DNS记录中的多个字符串 · §4.5 选择记录 · §4.6 记录评估 · §4.6.4 DNS查找限制 · §5.1 “全部” · §5.2 “包含” · §5.3 “a” · §5.7 “存在” · §6修饰符定义 · §6.1 重定向:重定向查询 · §8 结果处理 · §8.4 失败 · §8.7 权限错误 · §10 对基础设施的影响

[ 词汇表 ]

词汇表

无效查找
SPF评估期间合格的空肯定或名称错误DNS响应。

RFC 7208 :发件人策略框架

响应分类
保留答案数据、空答案、不存在的名称和错误之间的区别。
无效阈值
实施的适用限制,遵循RFC 7208指南。

RFC 7208 :发件人策略框架

评估分支
该机制实际上达到了特定的SPF输入。

RFC 7208 :发件人策略框架

企业出处

为什么顶级金融机构和政府 退役了他们的电子邮件安全仪表板。

传统的电子邮件身份验证平台会向您出售仪表板并要求您的工程师来完成这项工作。在高风险环境中,手动监督意味着延迟执行、配置漂移和不受监控的影子域。

EmailAuth是代理电子邮件来源平台。 我们的代理人强制执行 p=reject,保持第三方发件人一致并将您的域名移至完整状态 RFC 9989 合规性、新的DMARC标准,以及人机交互审核能力。

政府 大型企业 一级金融机构

SaaS · 专用租赁 · 气隙本地部署 · BYOK 加密

知识库