我需要获取应用程序缓存对象=>会话对象,对其进行修改并使用它。尽管一切正常,但我收到了Fortify发出的“违反信任边界冲突”威胁(有关更多信息)https://www.fortify.com/vulncat/en/vulncat/sql/trust_boundary_violation.html

有想法该怎么解决这个吗?

最佳答案

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

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

现在,缓存在哪里?


如果它在信任边界之内,则此信任边界违规是误报,您可以创建一个过滤器,以便如果源来自该文件或软件包,则问题将被隐藏。您的过滤器如下所示:

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

要么

类别:“违反信任边界”文件:MyCacheObject.java
如果高速缓存在信任边界之外,则假定攻击者可能将高速缓存用作攻击程序或用户的机制。然后,每次将数据放入缓存或从缓存中取出任何数据时,都必须检查所有数据。


为缓存机制定义验证功能后,安全审核员或Fortify顾问将编写自定义验证规则,该规则将使所有已解决的问题都消失。

07-24 09:34