[ 报告与调查 ]

防止报表处理中的 XML 实体扩展和存档炸弹问题

使用小型安全装置和明确的恢复标准独立测试解压缩和 XML 资源边界。

由EmailAuth研究团队提供

[ 要点 ]

  • 解压缩和 XML 外部资源控制保护不同的边界。
  • 在故意设定的低限度下测试少量合成投入。
  • 将未测量的访问或资源行为报告为未经验证。
在此页面上

禁用外部实体本身并不能保护报表处理器免受每个资源耗尽输入的影响。压缩附件可以在 XML 解析器启动之前展开,深度嵌套或过大的 XML 可能会消耗资源而无需访问外部实体。将解压缩、XML 解释和工作负载接纳视为单独的防御边界。

RFC 9990 明确识别归档和 XML 资源耗尽风险。 OWASP 的 XML 指南解释了为什么特定于解析器的外部资源控制很重要。这里的测试设计是一个操作建议,用于在隔离的暂存环境中验证这些边界。

定义绝对不能发生的事情

参考: RFC 9990 §8.1.

工作人员不应获取附件选择的网络资源、通过 XML 解析读取应用程序机密、写入存档提供的路径或消耗无限的 CPU、内存或磁盘。为其提供最少的文件系统访问权限,并且不要进行不必要的网络访问。使用带有合成金丝雀的一次性测试环境,而不是生产秘密。

为压缩输入、扩展输出、解析时间、嵌套、文本长度和同时作业设置可观察的限制。记录每个限制的实施地点。最终导入周围的超时无法保护早期的无限制解压步骤。

直接检查 XML 功能

参考: OWASP XML 外部实体预防,一般指南.

配置实际的解析器和任何模式验证或转换层。禁用不必要的 DTD 处理、外部实体、Xinclude 和外部资源加载。将不受支持的安全设置视为配置失败。如果稍后的验证阶段获取输入选择的模式,则可能会破坏安全的解析器设置。查看整个处理链,而不仅仅是其第一个库调用。

使用一个微型夹具,其中包含受控测试哨兵的外部参考。根据记录的策略,预期行为是拒绝或安全的非解决方案,没有哨兵访问权限。记录网络和文件访问遥测。不要将测试引用指向您无法控制的敏感本地文件或外部服务。

绑定无害扩展测试

参考: RFC 9990 §8.1.

对于减压,使用少量的合成内容并故意降低分期阈值。对于 XML,使用有界嵌套或内部扩展装置来触发类似的低限制。没有必要制造一颗真正巨大的炸弹来确定边界的执行。

说明性案例:测试工作线程具有 256 KiB 扩展字节上限和一秒的处理截止时间。 300 KiB 合成扩展流应在字节边界处停止。单独的微小外部参考夹具不应导致任何查找。通过一个案例并不能证明其他边界有效。阈值是说明性的,实际记忆和经过的时间必须被测量而不是假设。

验证故障遏制

对于每个被拒绝的夹具,断言没有提交部分报告记录,没有出现未经批准的输出文件,并且诊断包含安全输入参考和原因。诊断大小也受到限制,因为将整个被拒绝的文档复制到日志中会产生另一种资源和隐私风险。

接下来提交一份有效的小报告。检查队列处理是否恢复,临时文件是否在批准的策略内清理,并且重播不会创建重复计数。在安全测试预算内执行并发到达,以便测试总工作人员限制以及每个文件限制。

使测试证据可重复

参考: RFC 9990 §8.1, RFC 9990 §9.2.

保留固定装置哈希、解析器和运行时版本、配置、限制、预期结果和测量结果。在依赖项、解析器、容器或验证更改后重复此操作。如果测试无法观察外部访问或内存使用,请将该部分标记为未经验证,而不是声明管道安全。

拒绝证明特定输入在测试配置中遇到了特定边界。它并不能证明所有可能的恶意文档都是无害的。结合重点固定装置、审查配置、隔离和监控,并在任何边界出现故障时维护所有者进行跟进。

审查包仅执行小型有界解压演示和语义模型。上述外部引用、内存隔离、并发工作人员和实际数据库包含测试仍然是验收要求,而不是已完成的测试。

[ 外卖 ]

将未测量的访问或资源行为报告为未经验证。

[ 按角色 ]

这对您意味着什么

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

IT/邮件管理员

分别测试解压缩和 XML 边界。

衡量外部访问和资源使用。验证拒绝后的干净恢复。

后续步骤

  1. 分别测试解压缩和 XML 边界。
  2. 衡量外部访问和资源使用。
  3. 验证拒绝后的干净恢复。

CISO / SecOps

检查完整的验证链。

需要最少的特权和隔离。将经过测试的案例与普遍保证区分开来。

后续步骤

  1. 检查完整的验证链。
  2. 需要最少的特权和隔离。
  3. 将经过测试的案例与普遍保证区分开来。

创始人/非技术人员

需要测试所有者和恢复标准。

不要让固定装置泄露生产秘密。跟踪未解决的控制故障直至关闭。

后续步骤

  1. 需要测试所有者和恢复标准。
  2. 不要让固定装置泄露生产秘密。
  3. 跟踪未解决的控制故障直至关闭。

[ 常见问题解答 ]

常见问题

禁用 XXE 是否可以阻止存档炸弹?

不会。在 XML 解释之前,解压缩有其自身的扩展和资源风险。

RFC 9990 §8.1

模式验证可以重新引入网络访问吗?

是的,如果它遵循不受信任的外部位置。单独检查该层。

测试必须分配大量数据吗?

不需要。使用具有低分段限制的小型装置来安全地验证停止行为。

外部测试参考应该指向哪里?

仅适用于隔离授权环境中的受控合成哨兵。

哪些测量有用?

扩展字节、运行时间、峰值内存、文件访问、网络访问和已提交行计数。

被拒绝的文档是否应该复制到日志中?

避免无限制的完整内容日志记录。保留有界诊断和受保护的输入参考。

什么证明康复了?

随后的有效夹具可以正确处理,没有重复或部分度量。

套件什么时候应该再次运行?

解析器、运行时、解压缩器、验证或隔离配置更改后。

[ 来源 ]

来源

  1. RFC 9990

    部分 §8.1 · §9.2

  2. OWASP XML 外部实体预防

    部分 一般指导

[ 词汇表 ]

词汇表

外部实体
其替换内容在输入文档外部引用的 XML 实体;不安全的解析可能会暴露资源。
资源边界
对工作(例如字节、时间、内存或并发作业)的配置和测量限制。
合成哨兵
受控测试资源,用于检测意外访问而不暴露真正的秘密。

企业出处

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

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

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

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

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

知识库