OWASP-Style SAST Benchmark for Go, Rust, Bash, PHP, Ruby + Adversarial Evasion + Chain Detection
收藏资源简介:
这是第一个针对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.
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)
使用方式
- 语言基准测试:将SAST工具指向对应语言目录,输出SARIF格式结果,使用
scripts/score_sarif.py脚本进行评分。 - 对抗性基准测试:将工具指向
adversarial/testcode/目录,使用adversarial/adversarial_benchmark.py脚本进行评分。
项目状态与许可
- 状态:积极开发中,开源以邀请社区贡献和迭代。
- 许可:Apache License 2.0。
已知局限
- 分类准确性依赖社区审查。
- 总规模(1,587个测试)小于OWASP Java基准(2,740个测试)。
- 对抗性基准测试(60个测试)规模较小,每个测试代表一个真实攻击模式。
- 尚未覆盖生态级攻击、注册表级攻击或AI多态恶意软件等。




