Thanks for your interest in contributing! This guide will help you get started.
- Use GitHub Issues to report bugs or request features
- Include the Python version, OS, and sample data (anonymized) if reporting a bug
- For security vulnerabilities in the scanner itself, please open an issue with the
securitylabel
-
Identify the right module:
user_auth_audit.py— Basic user/profile checksiam_advanced.py— SoD, firefighter, role lifecycle, cross-system identitysecurity_params.py— Profile parameter baseline validationnetwork_services.py— RFC, ICF, transport, audit log checksrise_btp_checks.py— RISE/BTP-specific checks
-
Follow the pattern — each check method should:
- Check if required data is available (
if not data: return) - Iterate through relevant records
- Call
self.finding()with all required fields for each issue found
- Check if required data is available (
-
Use proper severity levels:
CRITICAL— Immediate exploitation risk, system compromise possibleHIGH— Significant security gap, exploitation likely with moderate effortMEDIUM— Security weakness, defense-in-depth concernLOW— Minor hardening opportunity, informational
-
Include remediation — every finding should have actionable fix instructions
-
Add references — SAP Notes, CIS Benchmark section numbers, or relevant docs
- Create a new file in
modules/extendingBaseAuditor - Implement
run_all_checks()returning a list of findings - Add required data file mappings to
DataLoader.FILE_MAP - Register the module in
sap_scanner.pymain flow - Update
README.mdwith the new module's checks
- Python 3.8+ compatible (no walrus operator, etc.)
- Type hints encouraged
- Docstrings on all classes and public methods
- No external dependencies — stdlib only for core scanner
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-check-xyz) - Add/modify checks with test data in
sample_data/ - Run the scanner against sample data to verify
- Update README if adding new checks or modules
- Submit a PR with a clear description
git clone https://github.com/Krishcalin/SAP-S4HANA-RISE-Security-Scanner.git
cd SAP-S4HANA-RISE-Security-Scanner
# Verify it runs
python sap_scanner.py --data-dir ./sample_data --output test_report.html
# Run specific modules during development
python sap_scanner.py --data-dir ./sample_data --modules iam --output test.html- Never commit real SAP data — always anonymize exports before using as test data
- Keep zero-dependency — the scanner should run on any Python 3.8+ installation without pip installs
- Test with sample data — verify your changes produce expected findings with the included sample data