
ABAP Code Analyzer
SAP ABAP를 위한 정적 애플리케이션 보안 테스트(SAST). 커스텀 ABAP 코드의 보안 취약점을 찾기 위한 무료 오픈소스 CLI - 오프라인 및 CI 환경에서 사용 가능.
| 에디션 | 설명 | 위치 |
|---|---|---|
| 오픈소스 CLI (무료, MIT) | 내보낸 ABAP 소스를 로컬 또는 CI에서 스캔 | 이 저장소 (아래) |
| Cloud (SAP BTP) | BTP destination을 통해 ABAP을 읽는 상용 SaaS | Cloud / BTP 에디션 |
| Web (Management Console) | JCo / RFC를 통해 SAP에 연결하는 상용 웹 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의 책임 있는 공개 절차를 따라 주세요. 보안 신고를 위해 공개 이슈를 열지 마세요.
MIT. 원래 RedRays에서 기여하고 유지 관리했습니다. Cloud (SAP BTP) 및 Web (Management Console) 에디션은 상용 제품입니다. 이 OWASP 프로젝트(오픈소스 CLI)는 무료이며 오픈소스입니다.