OWASP Benchmark是由OWASP开发的基准测试项目,包含多种编程语言的测试套件以及评分工具,旨在评估不同编程语言的自动化软件漏洞检测工具的准确性、覆盖率和速度。如果无法衡量这些工具的性能,就很难了解它们的优势和劣势,也难以对它们进行比较。OWASP Benchmark 提供多个完全可运行的开源 Web 应用程序,其中包含数千个可利用的测试用例,每个用例都映射到特定的 CWE(通用漏洞描述符),可供任何类型的应用程序安全测试 (AST) 工具进行分析,包括 SAST、DAST(例如 ZAP)和 IAST 工具。其目的是确保基准测试中包含的所有漏洞及其评分都具有实际可利用性,从而对任何类型的应用程序漏洞检测工具进行公平的测试。此外,基准测试还包含数十个适用于众多开源和商业 AST 工具的评分卡生成器,并且支持的工具集也在不断扩展。OWASP是开源的,目前包括Java和Python 两部分。其中Java于2015年开始发布,Pthon则刚发布不久。
OWASP在Github上开源。以Java为例,该软件是一个基本的 Java Servlet 应用程序,包含约 2000多个独立的测试用例,每个测试用例都有完整的源代码,且可运行。这些源代码,有的有真实的漏洞,也有假漏洞,可以用来评估工具对漏洞的判断能力。这些漏洞包含的类别包括
- 路径遍历
- 不安全的哈希算法
- 信任边界侵犯,CWE 501
- 不安全的加密算法
- 命令注入
- SQL注入
- 不安全的随机数生成器
- LDAP注入
- 跨站脚本攻击
- 缺少 Cookie 安全属性,CWE 614
- XPath注入
OWASP的源代码在testcode目录下,有编号的独立文件。漏洞的信息在expectedresults-1.2.csv,对每一个用例,包含什么漏洞,漏洞是真还是假,CWE编号都有。代码也支持运行,使用脚本runBenchmark.sh可以运行,运行后每个漏洞的URL为http://:/benchmark/BenchmarkTestXXXXX嗯,有了这些信息,剩下的统计就非常简单了。开源里也有些报告和评分工具,可以参考。
在传统的代码分析工具里,用Benchmark评估是非常好的方法。但在大模型时代,这个方法可能有一些问题,就是这些开源可能在大模型训练的时候已经学习到了,这会导致结果失真。但目前好象也没有别的太好的方法,且用着吧。或者,您有什么好的方法,可以告诉我。后续我将用这些方法做一些测试。开源地址:https://github.com/OWASP-Benchmark
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



