将应用程序缓存与会话数据组合时发生信任边界冲突

本文关键字:信任 边界冲突 组合 数据 应用程序 缓存 会话 | 更新日期: 2023-09-27 18:20:13

我需要获取应用程序缓存对象=>会话对象,对其进行修改并使用。虽然一切正常,但我收到了来自Fortify的信任边界违规威胁(了解更多信息)https://www.fortify.com/vulncat/en/vulncat/sql/trust_boundary_violation.html.

关于如何解决这个问题有什么想法吗?

将应用程序缓存与会话数据组合时发生信任边界冲突

信任边界冲突通常不是一件简单的事情。要真正理解这一点,您需要与您的安全审计员和架构师进行协商,并确定什么是信任边界。为此,绘制应用程序的逻辑体系结构,包括缓存、最终用户以及应用程序需要与之接口的所有其他系统。

然后,在应用程序中需要保护的部分周围画一条虚线。这条线内的一切都是你不必检查的东西。。。这是所有的数据,可能是由开发人员创建的,或者是由输入验证函数删除的,并且您确信这只是您期望的数据类型。(请参见https://www.owasp.org/index.php/Data_Validation)

现在,缓存在哪里?

  1. 如果它在信任边界内,则此信任边界冲突为假阳性,您可以创建一个筛选器,以便如果源来自该文件或包,则问题将被隐藏。你的过滤器看起来像这样:

    类别:"违反信任边界"包:com.example.mycachepackage

    类别:"违反信任边界"文件:MyCacheObject.java

  2. 如果缓存在信任边界之外,则假设攻击者可能会将缓存用作攻击程序或用户的机制。然后,每次将数据放入缓存或从缓存中取出任何内容时,都必须检查所有数据。

一旦您为缓存机制定义了验证函数,您的安全审计员或Fortify顾问将编写一个自定义验证规则,使所有已修复的问题消失。