
SAP ABAP向けの静的アプリケーションセキュリティテスト(SAST)。 カスタムABAPコードのセキュリティ脆弱性を検出するための無料のオープンソースCLI - オフラインおよびCIで使用できます。
| エディション | 概要 | 入手先 |
|---|---|---|
| オープンソースCLI(無料、MIT) | エクスポートしたABAPソースをローカルまたはCIでスキャン | このリポジトリ(下記) |
| クラウド(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)は無料でオープンソースです。