Java中是否存在自动化安全测试之类的东西?如果是这样,它是如何实施的?仅仅是为了尝试利用已知的服务器漏洞而编写的 JUnit 测试,还是它们以安全为中心的测试框架?
作为一个例子,我也对这个 OWASP 安全测试框架感兴趣,但无法判断他们是在经典意义上使用“框架”(意味着要遵循的一组指导方针和程序),还是在软件上下文中(他们实际上是在提供自动化的安全测试组件)。
感谢任何可以为我阐明这一点的人!
Java中是否存在自动化安全测试之类的东西?如果是这样,它是如何实施的?仅仅是为了尝试利用已知的服务器漏洞而编写的 JUnit 测试,还是它们以安全为中心的测试框架?
作为一个例子,我也对这个 OWASP 安全测试框架感兴趣,但无法判断他们是在经典意义上使用“框架”(意味着要遵循的一组指导方针和程序),还是在软件上下文中(他们实际上是在提供自动化的安全测试组件)。
感谢任何可以为我阐明这一点的人!
不知道这正是您要找的东西,但是 Stephen Colebourne(joda-time 和未来新标准 java8 日期时间 API 的作者)有一篇关于使用 junit 测试安全权限的博客文章:Stephen Colebourne 的博客:测试安全许可
模糊测试永远不会受到伤害:http ://www.ibm.com/developerworks/java/library/j-fuzztest/index.html
模糊测试可帮助您确保您的应用程序安全,不受任何用户输入机会的影响。
在某种程度上,模糊测试对于 JUnit 测试来说有点尴尬,因为它们是“随机的”。您可能希望在测试套件中的每个输入途径上循环并运行许多模糊测试。
有诸如 VeraCode 之类的商业工具可以进行安全扫描。我不为他们工作,但我的公司使用它。似乎相当彻底。
自动化安全测试很难,但这并不意味着它不值得做。
我对 Web 应用程序的建议 - 使用您现有的单元和集成测试(如 Selenium),然后通过像 OWASP ZAP(Zed 攻击代理)这样的安全工具来代理它们。有关详细信息,请参阅http://code.google.com/p/zaproxy/wiki/SecRegTests 。
西蒙(ZAP 项目负责人)
这取决于您的 Java 应用程序实际上是什么。例如,如果您正在构建 Web 服务/API,OWASP 有一个单独的前 10 名,仅用于 API,其列出的优先级与常规前 10 名不同。请参阅OWASP 项目 API 安全性
根据北欧 API,您可能会发现它涉及大量手动测试,因为您无法自动化很多,这里对 API 前 10 名进行了很好的解释:https ://nordicapis.com/testing-owasps-top-10- api-安全漏洞/