我有一个受Security保护的Spring应用程序。生活似乎如此平静,直到我被迫做了一个静态的应用程序安全测试(SAST),并且这个工具抛出了许多安全问题。看看这里:

我已经浏览了所有的CVEs,并粗略地了解了这些漏洞。我有几个问题:
发布于 2017-10-18 08:07:43
来自弹簧安全手册
Security是一个功能强大且高度定制的身份验证和访问控制框架。它是保护基于Spring的应用程序的事实上的标准。
将spring安全性看作一个身份验证框架,它涵盖了安全难题的一部分。
作为一个例子,让我们看看OWASP十大应用程序安全风险中的#1:A1 - Injection
假设您使用jar访问SQL数据库(例如hibernate),并且它存在注入漏洞,那么您的应用程序也可能容易受到攻击。但是,即使hibernate没有任何安全漏洞,如果程序员将SQL查询连接在一起而没有正确地转义用户输入,应用程序也容易受到注入攻击。
Spring安全性并不能保护您的应用程序免受任何一种注入攻击。
如果一个jar存在漏洞,并且您正在调用易受攻击的方法/特性,那么您的应用程序也可能存在该漏洞,这在很大程度上取决于漏洞是什么、如何执行以及应用程序如何配置为使用jar。
快速查看另一个OWASP十大应用程序安全风险
A1-注入-不受弹簧安全的保护
A2-中断身份验证和会话管理- Spring安全性可以帮助管理其中的一些,但是配置的不正确的spring安全性将暴露这些安全性。
A3-跨站点脚本(XSS) -不受Spring安全性的保护
A4-不安全的直接对象引用-没有增加对Security的保护( Security为您提供了管理这一点的工具)
A5-安全错误配置-不受春季安全保护
A6敏感的数据公开- Spring安全性可以帮助解决这个问题,但是它也在很大程度上取决于您如何存储和管理数据(例如日志文件)。
A7-缺少函数级访问控制-如果访问控制被遗漏,Security无法帮助您,但是Spring安全性使添加这些操作变得很容易
A8-跨站点请求伪造(CSRF) - Spring安全性(取决于应用程序的配置方式)将帮助您,甚至为您管理此风险。
A9-使用已知漏洞的组件()--这是您在问题中列出的--没有对Security的保护
A10-未经验证的重定向和转发- Spring安全性可以用来管理这一点,但是它并不能保护您的应用程序不受此影响
在应用程序的STAT过程中找到的CVEs列表是A9的一个例子--使用具有已知漏洞的组件可以查看OWASP wiki获取更多信息。
示例攻击场景 组件漏洞可以导致几乎任何类型的风险,从琐碎的恶意软件到针对特定组织的复杂恶意软件。组件几乎总是以应用程序的全部权限运行,因此任何组件的缺陷都可能很严重,2011年,下载了以下两个易受攻击的组件2200万次。
每个使用这两个易受攻击库的应用程序都容易受到攻击,因为应用程序用户可以直接访问这两个组件。在应用程序中使用更深层次的其他易受攻击的库可能更难利用。
从上面的最后一段中注意,组件(jar)越深,它就越难被利用,但是,这并不意味着一个确定的实体不能利用它们。
总之,Security是管理应用程序中的身份验证和访问控制的一个很好的工具,但它不是解决所有安全问题的灵丹妙药。
https://stackoverflow.com/questions/46707284
复制相似问题