跳转至

Insecure Object Serialization

不安全的对象序列化

描述

应用程序使用了来自不受信任数据的不安全反序列化方案。

不安全的对象反序列化可能导致:

  • 任意远程代码执行 (RCE)
  • 修改应用程序逻辑
  • 数据篡改,例如绕过访问控制

由于缺乏现成的漏洞利用程序并且需要针对目标漏洞利用进行调整,因此很难利用反序列化漏洞。

建议

为了防止对象序列化漏洞,应用程序必须:

  • 仅接受来自受信任来源的序列化对象
  • 仅使用序列化原始数据类型

如果无法采取这些措施,请考虑以下事项:

  • 在任何序列化对象上实施完整性检查(例如数字签名),以防止恶意对象创建或数据篡改。
  • 在对象创建之前的反序列化过程中强制执行严格的类型约束,因为代码通常期望一组可定义的类。但是,已证明有绕过此技术的手段,因此不建议仅依赖此技术。
  • 在可能的情况下,在低权限环境中隔离并运行执行反序列化的代码。
  • 记录反序列化异常和失败,例如传入的类型不是预期类型或反序列化引发异常。
  • 限制或监控执行反序列化的容器或服务器的传入和传出网络连接。
  • 监控反序列化,如果用户不断进行反序列化则发出警报。

链接

标准

  • CWE_TOP_25:
    • CWE_502
  • OWASP_ASVS_L1:
    • V5_5_1
    • V5_5_3
  • OWASP_ASVS_L2:
    • V1_5_2
    • V5_5_1
    • V5_5_3
  • OWASP_ASVS_L3:
    • V1_5_2
    • V5_5_1
    • V5_5_3
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_6_2
    • REQ_6_3
    • REQ_6_4
    • REQ_11_3
  • HIPAA_CONTROLS:
    • SECURITY212
    • SECURITY213
    • SECURITY255
    • SECURITY258
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5