
ABAP Code Analyzer
SAP ABAP용 정적 애플리케이션 보안 테스트(SAST). 맞춤형 ABAP 코드에서 보안 취약점을 찾아내는 무료 오픈소스 CLI - 오프라인 및 CI 환경에서 사용할 수 있습니다.
| 에디션 | 설명 | 위치 |
|---|---|---|
| 오픈소스 CLI (무료, MIT) | 내보낸 ABAP 소스를 로컬 또는 CI에서 스캔 | 이 저장소(아래) |
| Cloud (SAP BTP) | BTP 대상을 통해 ABAP을 읽는 상용 SaaS | Cloud / BTP 에디션 |
| Web (Management Console) | JCo/RFC를 통해 SAP에 연결하는 상용 웹 SAST | Web 에디션 |
상용 에디션은 RedRays가 제공합니다. 이 OWASP 프로젝트(오픈소스 CLI)는 무료이며 오픈소스입니다.
SAP는 맞춤형 ABAP 코드로 운영됩니다. 수십 년에 걸쳐 작성된 수백만 줄의 코드가 급여, 재무, 물류를 담당하죠. 이러한 코드는 보안 검토가 거의 이루어지지 않아 인젝션, 경로 탐색(path traversal), 하드코딩된 비밀 값 버그의 빈번한 원인이 됩니다. 반면 표준 SAP 도구는 무겁고 시스템에 종속적입니다.
이 CLI는 내보낸 ABAP 소스를 오프라인으로 정적 분석합니다. SAP 연결, 에이전트, 원격 측정(telemetry)이 전혀 필요 없으며 바로 조치할 수 있는 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의 책임 있는 공개 절차를 따라 주세요. 보안 보고에 대해서는 공개 이슈를 열지 마십시오.
MIT. 원래 RedRays가 기여하고 유지 관리했습니다. Cloud (SAP BTP) 및 Web (Management Console) 에디션은 상용 제품이며, 이 OWASP 프로젝트(오픈소스 CLI)는 무료 오픈소스입니다.