面向 SAP ABAP 的静态应用安全测试(SAST)。 一个免费、开源的 CLI,用于在自定义 ABAP 代码中查找安全漏洞——支持离线运行和 CI 集成。
| 版本 | 说明 | 位置 |
|---|---|---|
| 开源 CLI(免费,MIT) | 在本地或 CI 中扫描导出的 ABAP 源代码 | 本仓库(见下文) |
| 云端(SAP BTP) | 通过 BTP 目标读取 ABAP 的商业 SaaS | 云端 / BTP 版本 |
| Web(管理控制台) | 通过 JCo / RFC 连接 SAP 的商业 Web SAST | Web 版本 |
商业版本由 RedRays 提供;本 OWASP 项目(开源 CLI)是免费且开源的。
SAP 运行在自定义的 ABAP 代码之上——通常有数百万行,历经数十年编写,支撑着薪资、财务和物流。这些代码很少经过安全审查,却是注入、路径遍历和硬编码密钥漏洞的常见来源,而标准的 SAP 工具又笨重且受限于系统。
本 CLI 以离线方式静态分析导出的 ABAP 源代码——无需 SAP 连接、无需代理、无遥测——并生成可据以行动的 XLSX 报告。将其接入 CI 即可对拉取请求进行门禁检查。
需要 Python 3.9+ 和
pip。
git clone https://github.com/OWASP/abap-code-scanner.git
cd abap-code-scanner
pip install -r requirements.txt
python main.py path/to/abap/source
扫描完成后,你会在项目文件夹中找到 abap_security_scan_report.xlsx:
| 选项 | 描述 | 默认值 |
|---|---|---|
path | 要扫描的 ABAP 源代码目录 | (必填) |
-c, --config | YAML 配置文件的路径 | config.yml |
扫描器读取一个 YAML 文件(默认为 config.yml,可用 -c 覆盖)。选择要运行的检查项、要包含的文件扩展名以及要排除的模式:
checks:
- CheckCrossSiteScripting
- CheckSQLInjection
- CheckDirectoryTraversal
file_extensions:
- .abap
- .txt
exclude_patterns:
- "**/test/**"
checks/ 目录中创建一个新的 Python 文件。run 方法。checks: 列表中。# Unix-like
./run_tests.sh
# Windows
run_tests.bat
欢迎提交拉取请求——新的检查、测试用例、错误修复和文档都有帮助。请参阅 CONTRIBUTING.md,并请遵守 OWASP 行为准则。
在扫描器本身发现了漏洞?请遵循 SECURITY.md 中的负责任披露流程——不要为安全报告创建公开 issue。
MIT。最初由 RedRays 贡献并维护。云端(SAP BTP) 和 Web(管理控制台) 版本是商业产品;本 OWASP 项目(开源 CLI)是免费且开源的。