
ABAP Code Analyzer
| 版本 | 说明 | 部署位置 |
|---|---|---|
| 开源 CLI(免费,MIT 协议) | 在本地或 CI 环境中扫描导出的 ABAP 源代码 | 本仓库(下方) |
| 云版(SAP BTP) | 商业 SaaS,通过 BTP 目的地读取 ABAP 代码 | 云版 / BTP 版 |
| Web 版(管理控制台) | 商业 Web SAST,通过 JCo / RFC 连接 SAP | 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)是免费且开源的。