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

时间:2012-01-12 21:37:10

标签: c# asp.net session caching fortify

我要求获取应用程序缓存对象=>会话对象,修改它并使用它。虽然一切正常,但我收到了Fortify的Trust Boundary Violation威胁(更多信息)https://www.fortify.com/vulncat/en/vulncat/sql/trust_boundary_violation.html

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:4)

信任边界违规通常不是一件容易修复的事情。要真正理解这一点,您需要与您的安全审核员和您的架构师商量,并确定什么是信任边界。为此,请绘制应用程序的逻辑体系结构,包括缓存,最终用户以及应用程序需要与之交互的所有其他系统。

然后,在需要保护的应用程序部分周围画一条虚线。这一行中的所有内容都是您无需检查的内容...这些数据可能是由开发人员创建的,或者是您的输入验证函数清除了它并且您确定它只是那种数据你期待。 (见https://www.owasp.org/index.php/Data_Validation

现在,缓存在哪里?

  1. 如果它位于信任边界内,则此信任边界违规是误报,您可以创建过滤器,以便在源来自该文件或包时,问题将被隐藏。您的过滤器看起来像这样:

    类别:“信任边界违规”包:com.example.mycachepackage

    类别:“信任边界违规”文件:MyCacheObject.java

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

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