【问题标题】:Java Security TestingJava 安全测试
【发布时间】:2023-04-07 19:14:01
【问题描述】:

Java 中是否存在自动安全测试?如果是这样,它是如何实施的?仅仅是为了尝试利用已知的服务器漏洞而编写的 JUnit 测试,还是它们以安全为中心的测试框架?

作为一个例子,我也对这个 OWASP 安全测试框架感兴趣,但不知道他们是在使用经典意义上的“框架”(意味着要遵循的一组指导方针和程序),还是在一个软件上下文(他们实际提供自动化安全测试组件的地方)。

感谢任何可以为我阐明这一点的人!

【问题讨论】:

    标签: java security unit-testing owasp


    【解决方案1】:

    这取决于您的 Java 应用程序实际上是什么。例如,如果您正在构建 Web 服务/API,OWASP 有一个单独的前 10 名,仅用于 API 的优先级与常规前 10 名不同。请参阅OWASP Project API Security

    根据 Nordic API,您可能会发现它涉及大量手动测试,因为您无法自动化很多,这里很好地解释了 API 前 10 名:https://nordicapis.com/testing-owasps-top-10-api-security-vulnerabilities/

    【讨论】:

      【解决方案2】:

      自动化安全测试是困难,但这并不意味着它不值得做。

      我对 Web 应用程序的建议 - 使用您现有的单元和集成测试(如 Selenium),然后通过像 OWASP ZAP(Zed 攻击代理)这样的安全工具来代理它们。 详情请见http://code.google.com/p/zaproxy/wiki/SecRegTests

      西蒙(ZAP 项目负责人)

      【讨论】:

      • 是的,Zed Attack Proxy (ZAP) 是很好的渗透测试工具
      【解决方案3】:

      有一些商业工具,例如 VeraCode,可以进行安全扫描。我不为他们工作,但我的公司使用它。看起来很彻底。

      【讨论】:

        【解决方案4】:

        SonarFindBugs 这样的工具也可以成为一种自动发现至少一些安全问题的方法(FindBugs 在发现 SQL 注入等风险方面非常有效)。

        【讨论】:

          【解决方案5】:

          模糊测试永远不会受到伤害:http://www.ibm.com/developerworks/java/library/j-fuzztest/index.html

          模糊测试可帮助您确保您的应用程序安全,不会有任何用户输入机会。

          在某种程度上,模糊测试对于 JUnit 测试来说有点尴尬,因为它们是“随机的”。您可能希望在测试套件中的每个输入途径上循环并运行许多模糊测试。

          【讨论】:

            【解决方案6】:

            不知道这正是您要找的东西,但是 Stephen Colebourne(joda-time 和未来新标准 java8 日期时间 API 的作者)有一篇关于使用 junit 测试安全权限的博客文章:@987654321 @

            【讨论】:

            • 嗨,Ivan,谢谢,我会查看那篇文章。与此同时,我正在寻找的是这个问题的答案:是否使用 JUnit 来编写安全测试,或者是否有另一个框架(专门)针对安全问题?如果是,OWASP 是其中之一吗?