five

OWASP-Style SAST Benchmark for Go, Rust, Bash, PHP, Ruby + Adversarial Evasion + Chain Detection

收藏
github2026-03-31 更新2026-03-26 收录
下载链接:
https://github.com/TheAuditorTool/sast-benchmark
下载链接
链接失效反馈
官方服务:
资源简介:
这是第一个针对Go、Rust、Bash、PHP和Ruby语言的静态应用程序安全测试(SAST)基准测试套件,提供了易受攻击/安全分类的真实测试用例,用于测量任何静态分析工具的检测准确性(Youden公式)。此外,还包括一个对抗性规避基准测试,用于测试工具是否能检测到有人隐藏某些内容,以及一个链检测基准测试,用于测试工具是否能将多个发现关联到复合利用路径中。

The first publicly available Static Application Security Testing (SAST) benchmark suite for Go, Rust, Bash, and PHP programming languages, for which no existing public SAST benchmarks have been released to date. Additionally, this suite includes an adversarial evasion benchmark to test whether SAST tools can detect cases where someone intentionally hides certain content.
创建时间:
2026-03-19
原始信息汇总

OWASP-Style SAST Benchmark for Go, Rust, Bash, PHP + Adversarial Evasion 数据集概述

数据集简介

这是一个针对Go、Rust、Bash和PHP语言的静态应用安全测试(SAST)基准测试套件,填补了这些语言缺乏公开SAST基准的空白。此外,它包含一个独特的对抗性规避基准,用于测试工具检测故意隐藏恶意行为的能力。

项目目标

  • 为Go、Rust、Bash和PHP提供衡量SAST工具准确性的基准。
  • 评估工具检测漏洞的真实阳性率(TPR)和误报率(FPR)。
  • 引入对抗性规避基准,测试工具检测代码隐藏和混淆技术的能力。

评分方法

采用OWASP基准测试标准,计算真阳性(TP)、假阴性(FN)、假阳性(FP)和真阴性(TN)。核心指标为敏感性(TPR)和误报率(FPR),最终得分使用尤登指数(Score = TPR - FPR)。

基准测试构成

1. Go 基准测试 (v0.3.2)

  • 测试用例总数:534
  • 涵盖CWE数量:24
  • TP/TN平衡:50/50
  • 支持框架:net/http, gin, chi, echo, fiber, gorilla/mux, beego, gRPC
  • 包含内容:5个参考应用(395个已分类函数)、OWASP风格区分模式、跨文件流、GORM/sqlx/syscall/WebSocket/zip-slip模式。

2. Rust 基准测试 (v0.3.2)

  • 测试用例总数:268
  • 涵盖CWE数量:13
  • TP/TN平衡:46/54
  • 支持框架:actix-web, axum, Rocket, Warp
  • 包含内容:8个参考应用(位于apps/目录)、149个独立测试文件(位于testcode/目录)。

3. Bash 基准测试 (v0.3.2)

  • 测试用例总数:356
  • 涵盖CWE数量:16
  • TP/TN平衡:49/51
  • 包含内容:5个应用(DevOps管道管理器、HTTP webhook服务器等)、13个对抗性CWE测试文件。

4. PHP 基准测试 (v0.1.0)

  • 测试用例总数:369
  • 涵盖CWE数量:25
  • TP/TN平衡:50/50
  • 支持框架:Raw PHP/PDO, Laravel, WordPress, Symfony
  • 包含内容:251个独立测试文件、4个带注解的应用(vuln_blog, laravel_api, wp_plugin, symfony_app)。
  • 独特CWE:包含6个其他基准测试中没有的PHP特有CWE:文件包含(CWE-98)、类型混淆(CWE-697)、变量提取(CWE-621)、变量变量(CWE-627)、不安全反射(CWE-470)、服务器端模板注入(CWE-1336)。

5. 对抗性规避基准测试 (v0.1.0)

  • 测试用例总数:60
  • 类别数量:6
  • TP/TN平衡:53/47
  • 性质:非语言基准,而是检测范式基准。测试工具检测代码隐藏和混淆技术的能力。
  • 涵盖攻击类别
    • Unicode负载隐藏(CWE-506)
    • 视觉欺骗(CWE-451)
    • 动态构造(CWE-506)
    • 供应链攻击(CWE-506)
    • AI提示注入(CWE-1059)
    • C2指纹(CWE-506)
  • 跨语言支持:JavaScript, Python, Go。
  • 基于的真实攻击:Glassworm活动(2026年3月)、Trojan Source(CVE-2021-42574)、针对AI编程助手的攻击等。

综合规模

  • 总测试用例数:1,587
  • 总CWE数:66个唯一CWE + 6个规避类别
  • 各基准测试规模排序:Go (534) > PHP (369) > Bash (356) > Rust (268) > 对抗性 (60)

使用方式

  1. 语言基准测试:将SAST工具指向对应语言目录,输出SARIF格式结果,使用scripts/score_sarif.py脚本进行评分。
  2. 对抗性基准测试:将工具指向adversarial/testcode/目录,使用adversarial/adversarial_benchmark.py脚本进行评分。

项目状态与许可

  • 状态:积极开发中,开源以邀请社区贡献和迭代。
  • 许可:Apache License 2.0。

已知局限

  • 分类准确性依赖社区审查。
  • 总规模(1,587个测试)小于OWASP Java基准(2,740个测试)。
  • 对抗性基准测试(60个测试)规模较小,每个测试代表一个真实攻击模式。
  • 尚未覆盖生态级攻击、注册表级攻击或AI多态恶意软件等。
搜集汇总
数据集介绍
main_image_url
构建方式
在静态应用安全测试领域,基准数据集的构建对于评估工具性能至关重要。本数据集采用系统化方法,针对Go、Rust、Bash和PHP四种语言,分别设计了涵盖多种常见弱点枚举(CWE)的测试案例。每个语言模块均包含脆弱与安全的代码样本,并遵循OWASP基准项目的分类标准,通过独立测试文件和带注释的应用程序相结合的方式,确保测试案例的多样性和现实代表性。数据集的构建过程注重平衡真阳性与真阴性的比例,以提供可靠的评估基础。
特点
该数据集最显著的特点在于其首创性,为Go、Rust、Bash和PHP提供了首个公开的静态应用安全测试基准。它不仅覆盖了传统漏洞检测场景,还引入了对抗性规避基准,专门测试工具对隐藏恶意行为的识别能力。数据集规模达到1,587个测试案例,涵盖66个独特CWE和6种对抗性规避类别,具有跨语言、跨框架的广泛覆盖。每个测试案例均配有明确的地面真值标注,支持基于SARIF格式的自动化评分,确保了评估的客观性和可重复性。
使用方法
使用本数据集时,研究人员或工具开发者可针对特定语言目录运行静态应用安全测试工具,并将输出结果转换为SARIF格式。随后,利用提供的评分脚本,将工具检测结果与地面真值文件进行比对,计算真阳性率、假阳性率等关键指标。对于对抗性规避基准,需使用专门的评分脚本,该脚本能够处理跨语言测试案例,并通过异常意图检测逻辑评估工具对隐蔽攻击的识别能力。通过根因分析每个误报和漏报,用户可以深入理解工具的性能局限,并推动检测技术的改进。
背景与挑战
背景概述
在静态应用安全测试领域,基准测试集的缺失长期制约着工具评估的标准化进程。OWASP组织先前推出的Java与Python基准测试集虽已证明其有效性,但Go、Rust、Bash和PHP这四种语言始终缺乏公开的基准测试资源。为填补这一空白,研究团队于近期创建了首个面向这四种语言的综合SAST基准测试套件,并创新性地引入了对抗性规避测试模块。该数据集不仅延续了OWASP基准测试项目严谨的评估框架,更通过涵盖24至25种常见弱点枚举类别,为安全工具在真实场景中的漏洞检测能力提供了系统化的衡量标尺。其多语言覆盖特性与对抗性测试维度的拓展,标志着软件安全评估范式从传统漏洞检测向隐蔽攻击识别的演进。
当前挑战
该数据集面临的核心挑战体现在两个层面:在领域问题层面,传统SAST工具主要依赖抽象语法树分析和数据流追踪来识别显式漏洞,但对抗性测试模块所针对的Unicode隐藏字符、双向文本覆盖攻击等新型规避技术,要求检测范式转向字节级扫描和视觉欺骗分析,这对现有工具架构构成了根本性挑战。在构建过程中,研究团队需同时为四种语法特性迥异的编程语言建立精确的测试用例分类体系,确保每个漏洞样本的语义准确性与安全状态的明确界定,这种跨语言的一致性维护伴随着巨大的工程复杂度。此外,对抗性测试案例的设计需要模拟真实攻击活动中不断演变的隐蔽技术,如何在有限测试规模内保持攻击模式的代表性与检测要求的普适性,成为数据集持续演进的关键难题。
常用场景
衍生相关工作
该数据集的发布催生了一系列围绕多语言静态分析优化的研究与实践。例如,基于其测试框架,学术界提出了结合抽象语法树与字节级扫描的混合检测模型,以应对对抗性规避案例;工业界则衍生出针对Rust内存安全漏洞和PHP类型混淆漏洞的专用检测插件。此外,数据集的结构化评分方法论被多个开源安全项目采纳,形成了工具间标准化结果比对的基础,进一步推动了整个生态系统在漏洞基准测试领域的协作与创新。
数据集最近研究
最新研究方向
在静态应用安全测试领域,OWASP-Style SAST Benchmark for Go, Rust, Bash, PHP + Adversarial Evasion数据集正推动研究向多语言支持与对抗性规避检测方向深化。该数据集首次为Go、Rust、Bash和PHP提供了公开的基准测试套件,填补了这些语言在SAST评估工具准确性验证方面的空白。前沿研究聚焦于扩展传统数据流分析范式,以应对日益复杂的隐蔽攻击手法,如利用Unicode字符隐藏恶意负载的Glassworm攻击、通过双向文本覆盖实现视觉欺骗的Trojan Source漏洞,以及针对AI编程助手的对抗性提示注入。这些攻击规避了常规的抽象语法树分析和污点追踪,促使学术界与工业界探索字节级扫描、意图行为建模及供应链异常检测等新型检测机制。该基准的对抗性规避测试模块为衡量工具在真实威胁场景下的鲁棒性提供了首个公开评估框架,标志着SAST技术从漏洞发现向意图识别与防御规避能力演进的关键转折。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作