TOP8-Software or Data Integrity Failures(软件或数据完整性故障)

817 字
0 浏览

OWASP Top 10:2025 里,Software or Data Integrity Failures 排在 A08,也就是第 8 位。它延续了 2021 的排名,只是名字做了轻微澄清。这个类别关注的是:系统没有验证软件、代码、更新包或数据对象的完整性,就直接把它们当成可信内容使用了
来源:OWASP Top 10:2025 Introduction
来源:A08:2025 Software or Data Integrity Failures

它和 A03 很像,但不完全一样:

  • A03 更偏“整条软件供应链治理失效”
  • A08 更偏“某个软件、模块、更新、对象或数据在被使用前没有验证完整性”

也可以理解成:A03 更像“链路层面的问题”,A08 更像“对象层面的信任问题”。

常见表现

  • 从不可信 CDN、仓库、网站、插件源引入代码或功能。
  • 自动更新下载后没有验签、验来源、验完整性。
  • CI/CD 会拉取外部代码或制品,但不会验证签名或来源。
  • 代码和配置变更缺少审查流程,恶意内容可以混入流水线。
  • 客户端传来的序列化对象、状态对象、Cookie 或数据结构可以被篡改,但服务端仍然信任。
  • 反序列化不可信数据,最终触发远程代码执行。

OWASP 官方典型场景

  • 企业把支持系统映射到了自己的子域名上,结果主域 Cookie 也会一起发给外部服务商,任何能接触外部服务基础设施的人都可能拿到用户会话。
  • 固件或设备更新不做签名校验,攻击者可以推送伪造更新。
  • 开发者没有从官方包管理器下载依赖,而是从网上随便找了个包,包里直接夹带恶意代码。
  • 前后端之间来回传递可序列化对象,攻击者识别出对象签名后利用反序列化链打到应用服务器。

怎么防

  • 对软件包、更新包、关键数据对象使用数字签名或等效完整性校验。
  • 依赖和库只从可信仓库获取;高风险场景下可以建立内部“已知可信”仓库。
  • 对代码与配置变更建立强制审查流程,降低恶意代码混入概率。
  • 强化 CI/CD 的隔离、配置和访问控制,保证构建与部署链路完整性。
  • 不要直接接受来自不可信客户端的未签名、未加密序列化数据。
  • 对 Cookie、状态对象、关键参数增加防篡改验证,而不是只做“能解析就算合法”。

一句话总结
Software or Data Integrity Failures 的本质是:系统在还没确认“这个代码/数据有没有被改过、是不是来自可信来源”之前,就先选择了信任。

Licensed under CC BY-NC-SA 4.0