OWASP Benchmark | OWASP 基准项目介绍

news2024/11/16 0:30:02

1. 背景

市面上的静态代码检测SAST工具越来越多,除了业界比较知名的Coverity、Fortify、CheckMax,还有CodeQL、SonarQube、CppCheck等,国内也涌现了一大波检测工具,如鸿渐SAST、奇安信代码卫士、北大Cobot、酷德啄木鸟等,市场上能叫上名的SAST工具约200+种。不同SAST工具检测能力差异较大,比如支持的扫描规则,扫描规则能力。如何有效衡量这些检测工具规则扫描能力,给企业选型SAST工具提供参考,成为了一项业界难题。如果没有能力衡量这些工具,就很难了解它们的优点和缺点,并将它们相互比较。

2. OWASP Benchmark 概览

OWASP Benchmark项目是一个 Java 测试套件,旨在自动化评估软件漏洞检测工具的准确性、覆盖范围和速度。在下文的介绍中,OWASP Benchmark也被称为OWASP 基准项目。

OWASP 基准项目是一个完全可运行的开源 Web 应用程序,包含3000左右个测试用例,每个测试用例都映射到特定的 CWE,可以通过任何类型的应用程序安全测试 (AST) 工具进行分析,包括 SAST、DAST(如 OWASP ZAP,AWVS)、和 IAST 工具。基准测试的所有漏洞实际上都是可利用的,因此它对任何类型的应用程序漏洞检测工具都是公平的测试。 Benchmark 还包括数十个用于众多开源和商业 AST 工具的记分卡生成器(ScoreCard),并且支持的工具集一直在增长。

3. 发布历史

  • 1.2版本于2016年6月5日首次发布(1.2beta版本于2015年8月15日)。从那时起,v1.2 版本不断进行调整,用例做了大量简化,拥有 2,740 个测试用例。
  • 基准测试的 1.1 版于 2015 年 5 月 23 日发布。1.1 版在之前版本的基础上进行了改进,确保每个漏洞区域都存在真阳性和假阳性,拥有21,041 个测试用例。
  • Benchmark 1.0 版本于 2015 年 4 月 15 日发布,拥有 20,983 个测试用例。

在这里插入图片描述

4. Benchmark 中具体有什么?

4.1. 用例代码

Benchmark 是一个 Java Maven 项目。它的主要组成部分是数千个测试用例(例如,BenchmarkTest00001.java),每个测试用例都是包含单个漏洞(真阳性或假阳性)的单个 Java servlet。目前,这些漏洞涉及大约十几个不同的 CWE。

4.2. 预期结果文件 Expectedresults.csv

Expectedresults.csv 随基准测试的每个版本一起发布(例如,expectedresults-1.2.csv),它专门列出了每个测试用例的预期结果。对于 1.2 版基准测试,该文件的截图如下所示:

在这里插入图片描述

注解:

  • 第6行表明第6个测试用例是加密测试用例(使用弱加密算法),这是一个真正的漏洞(而不是误报),并且此问题映射到 CWE 327。它还表明此预期结果文件适用于 Benchmark 版本 1.2(2016 年 6 月 1 日发布)。
  • 对于基准测试中的数万个测试用例,此文件中的每一个都有一行。每次发布新版本的基准测试时,都会生成一个新的相应结果文件,并且每个测试用例在一个版本与下一个版本之间都可以完全不同。

4.3. 配套工具

Benchmark 还附带了一堆不同的实用程序、命令和预打包的开源安全分析工具,所有这些都可以通过 Maven 目标执行,包括:

  • 将针对基准运行的开源漏洞检测工具
  • 记分卡生成器,它为您拥有结果文件的每个工具计算记分卡。

在这里插入图片描述

5. 我们可以使用基准做什么?

  • 编译Benchmark项目中的所有软件(例如mvn编译)
  • 针对 Benchmark 测试用例代码运行静态漏洞分析工具 (SAST)
  • 使用动态应用程序安全测试工具 (DAST) 扫描正在运行的基准版本
  • 提供了有关如何运行它的说明,并为有结果的每个工具生成记分卡

6. 参考

[1] https://owasp.org/www-project-benchmark/
[2] https://github.com/OWASP-Benchmark/BenchmarkJava


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1684776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KT142C语音芯片音量详细汇总 包含记忆 低功耗的音量_开机音量

关于KT142C语音芯片sop16的音量详细汇总,包含记忆,低功耗唤醒之后的音量,开机音量 芯片的音量是分为三部分,详见手册的“3.4.2”章节 串口发送指令设置,但是掉电或者进入低功耗被唤醒,这两种情况都会恢复到…

nvm介绍、下载、安装、配置及使用,(Node Version Manager)nodejs版本管理切换工具

1、介绍nvm 在Web前端项目开发过程中,由于各种前端框架、插件 以及 Nodejs、Npm 的飞速更新,在项目新开发 或 对老项目进行更新维护时,有些项目版本的配置 和 当前Node、Npm环境不匹配,导致运行报错,甚至都无法启动。…

代码随想录算法训练营第二天| 977.有序数组的平方 、209.长度最小的子数组、 59.螺旋矩阵II

977. 有序数组的平方 题目链接:977. 有序数组的平方 文档讲解:代码随想录 状态:so easy 刚开始看到题目第一反应就是平方之后进行排序,数据量在 1 0 4 10^4 104,可以使用O(nlogn)的排序。但是更好的方式是使用双指针&a…

Java面试八股之什么是死锁

什么是死锁 死锁(Deadlock)是多线程编程中的一种常见问题,特别是在涉及到资源共享和同步的时候。具体来说,死锁是指两个或两个以上的线程在执行过程中,由于互相持有并等待对方释放的资源,而导致所有线程都…

Centos7.9上安装Oracle 11gR2 RAC 三节点(ASMlib管理asm磁盘)

服务器规划 OS 规格 主机名 IP VIP private IP scanip centos 7.9 1C4G racdb01 192.168.40.165 192.168.183.165 192.168.40.16 192.168.40.200 centos 7.9 1C4G racdb02 192.168.40.175 192.168.183.175 192.168.40.17 192.168.40.200 centos 7.9 1C4G…

php题解(巩固基础知识)代码审计

1.[NISACTF 2022]easyssrf 1)进入环境后,他给了一个上url个文本框 2)看了源码,没啥用,那就直接跟着它提示走,输入一个网址http://127.0.0.1/flag.php 3)回显又给了/fl4g,直接file…

微服务:Ribbon负载均衡与加载时机修改

Ribbon 负载均衡 执行流程 负载均衡策略 调整负载均衡方案: 配置类中(全局): // 负载均衡策略Beanpublic IRule randomRule() {return new RandomRule();}yaml配置 userservice: # 给某个微服务配置负载均衡规则&#xff…

【UE HTTP】“BlueprintHTTP Server - A Web Server for Unreal Engine”插件使用记录

1. 在商城中下载“BlueprintHTTP Server - A Web Server for Unreal Engine”插件 该插件的主要功能有如下3点: (1)监听客户端请求。 (2)可以将文件直接从Unreal Engine应用程序提供到Web。 (3&#xff…

elementui中 表格使用树形数据且固定一列时展开子集移入时背景色不全问题

原来的效果 修改后实现效果 解决- 需要修改elementui的依赖包中lib/element-ui.common.js中的源码 将js中此处代码改完下面的代码 watch: {// dont trigger getter of currentRow in getCellClass. see https://jsfiddle.net/oe2b4hqt/// update DOM manually. see https:/…

Oracle体系结构初探:数据库启动与停止

往期内容 参数管理 控制文件添加 启动 在启动Oracle数据库时,我们一般会使用如下命令: startup 虽然命令只有一个,但其中却是经历了3个阶段,从下面执行 startup 命令返回也可以看出来。 总结为3个阶段: nomount&…

【Unity2D 2022:Cinemachine】相机跟随与地图边界

一、导入Cinemachine工具包 1. 点击Window-Package Manager,进入包管理界面 2. 点击All,找到Cinemachine工具包,点击Install 二、相机跟随角色 1. 选中Main Camera,点击Component-Cinemachine-CinemachineBrain,新建…

【stm32/CubeMX、HAL库】嵌入式实验五:定时器(2)|PWM输出

参考: 【【正点原子】手把手教你学STM32CubeIDE开发】 https://www.bilibili.com/video/BV1Wp42127Cx/?p13&share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c3989f6189fd3 《嵌入式系统基础与实践》刘黎明等编著,第九章定时器&#xff0c…

亚洲AI核心资产,商汤科技!全球最优秀的医疗大模型平台——“大医”。

今天会给大家详解下商汤的AI产品“大医”。 —、什么是“大医”?(行业模型) “日日新.大医”是一款具备创新精神的医疗健康领域大语言模型。该模型通过内置的“场景集市”模块,提供了13个预设医疗场景的应用,同时还能…

Golang——reflect(反射)

反射是指在程序运行期间对程序本身进行访问和修改的能力。 一. 变量的内在机制 变量包含类型信息和值信息类型信息:是静态的元信息,是预先定义好的值信息:是程序运行过程中动态改变的 二. 反射的使用 reflect包封装了反射相关的方法获取类型…

冯喜运:5.23黄金市场风云变幻,黄金原油美盘趋势分析

【黄金消息面分析】:在经历了一段时期的强劲上涨后,黄金市场似乎迎来了调整期。北京时间周四(5月23日),国际黄金价格连续第三个交易日下跌,目前交投在2365美元附近,较周一触及的纪录高点2449.89美元已下跌约4%。这一跌…

知识分享|非凸问题求解方法及代码示例【分类迭代】【大M法】

主要内容 之前发布了非线性问题线性化的几种方法,如知识分享|分段函数线性化及matlab测试,学习园地 | yalmip实用操作-线性化,非线性优化 | 非线性问题matlabyalmip求解案例,但是在实际建模及编程过程中,会遇到各种…

vue+canvas实现逐字手写效果

在pc端进行逐字手写的功能。用户可以在一个 inputCanvas 上书写单个字&#xff0c;然后在特定时间后将这个字添加到 outputCanvas 上&#xff0c;形成一个逐字的手写效果。用户还可以保存整幅图像或者撤销上一个添加的字。 <template><div class"container"…

【B站 heima】小兔鲜Vue3 项目学习笔记

系列文章目录 Day 01 目录 系列文章目录前言Day011.项目使用相关技术栈2. 项目规模和亮点3. Vue2和Vue3实现一个小案例4. vue3的优势5. create-vue脚手架工具6. 熟悉我们的项目目录和文件7. 组合式API-setup选项8. 组合式API-reactive和ref函数9. 组合式API-computed计算属性…

动态IP与静态IP有什么区别?如何选择?

动态IP和静态IP都是指网络设备&#xff08;如计算机、服务器、路由器等&#xff09;在互联网上分配的IP地址的类型。 一、什么是动态IP&#xff0c;什么是静态IP&#xff1f; 1、什么是动态IP&#xff1f; 动态IP是指由Internet服务提供商&#xff08;ISP&#xff09;动态分配…

xrdp多用户多控制界面远程控制

1、无桌面安装桌面&#xff08;原本有ubuntu桌面的可以直接跳过这一步&#xff09; Gnome 与 xfce 相比&#xff0c;xfce 由于其轻巧&#xff0c;它可以安装在低端台式机上。Xfce 优雅的外观&#xff0c;增强了用户体验&#xff0c;它对用户非常友好&#xff0c;性能优于其他桌…