You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An offline security audit tool for SAP S/4HANA RISE and BTP environments
Overview
SAP S/4HANA RISE Security Scanner analyzes exported SAP configuration data (CSV/JSON) and produces an interactive HTML dashboard with findings, severity ratings, and actionable remediation guidance.
No direct system connection required — ideal for RISE environments with restricted RFC access
Zero external dependencies — runs on Python 3.8+ stdlib only
**186+ security checks across 12 audit modules
CIS SAP Benchmark aligned — checks mapped to industry-standard baselines
Audit Modules
Module
Checks
Focus
🔐 User & Authorization
USR-001→008
Default users, SAP_ALL, dormant accounts, service accounts
🛡️ Advanced IAM
IAM-SOD/FF/EXP/XID/REV/ROLE/PRIV (28)
SoD conflicts, firefighter access, role lifecycle, cross-system identity
SoD checks support three data strategies: pre-computed matrix (sod_matrix.csv), role resolution (user_roles.csv + role_tcodes.csv), or heuristic role-name matching.
Firefighter / Emergency Access (IAM-FF-*)
Check
Description
Severity
IAM-FF-001
Sessions exceeding max duration (default: 4h)
HIGH
IAM-FF-002
Sessions without documented justification
HIGH
IAM-FF-003
Sessions not reviewed by controller
CRITICAL
IAM-FF-004
Sessions self-approved (reviewer = requestor)
CRITICAL
IAM-FF-005
Users with excessive firefighter usage frequency
MEDIUM
Role Expiry & Validity (IAM-EXP-*)
Check
Description
Severity
IAM-EXP-001
Role assignments without expiry dates (indefinite)
MEDIUM
IAM-EXP-002
Expired role assignments still present in user master
LOW
IAM-EXP-003
Role assignments with excessive validity periods
MEDIUM
Cross-System Identity (IAM-XID-*)
Check
Description
Severity
IAM-XID-001
BTP users without corresponding S/4HANA account
MEDIUM
IAM-XID-002
S/4HANA locked users still active in BTP (incomplete offboarding)
HIGH
IAM-XID-003
BTP users with administrative role collections
HIGH
Access Review Compliance (IAM-REV-*)
Check
Description
Severity
IAM-REV-001
Overdue access review campaigns
HIGH
IAM-REV-002
Reviews marked complete but with incomplete coverage
MEDIUM
IAM-REV-003
Reviews without assigned reviewer
MEDIUM
Role Design Quality (IAM-ROLE-*)
Check
Description
Severity
IAM-ROLE-001
Custom roles without descriptions
LOW
IAM-ROLE-002
Custom roles without designated owners
MEDIUM
IAM-ROLE-003
Empty roles with no menu/transaction assignments
LOW
Other IAM Checks
Check
Description
Severity
IAM-ORPH-001
Users assigned to non-existent/deleted roles
MEDIUM
IAM-USRGRP-001
Active users in default/unassigned user groups
LOW
IAM-REF-001
Dialog users misused as reference users
HIGH
IAM-PRIV-001
Users with privilege escalation capability (self-escalation paths)
CRITICAL
🔥 BTP Cloud Attack Surface — Full Check List
Cloud Connector (BTP-CC-*)
Check
Description
Severity
BTP-CC-001
Wildcard resource mappings on backends
CRITICAL
BTP-CC-002
High-risk paths exposed (WebGUI, ADT, SOAP RFC)
HIGH
BTP-CC-003
Excessive number of backend systems
MEDIUM
BTP-CC-004
Unrestricted access control lists
HIGH
BTP-CC-005
Certificates expiring or expired
HIGH
BTP-CC-006
Certificates with weak cryptography (SHA-1, <2048 bit)
HIGH
BTP-CC-007
Stale/unused backend configurations
MEDIUM
Service Bindings (BTP-SB-*)
Check
Description
Severity
BTP-SB-001
Bindings not rotated in 180+ days
HIGH
BTP-SB-002
Bindings with admin-level scopes
HIGH
BTP-SB-003
Orphaned bindings (deleted instances)
MEDIUM
Destination Service (BTP-DST-*)
Check
Description
Severity
BTP-DST-001
Destinations with stored credentials
HIGH
BTP-DST-002
Destinations with TLS verification disabled
CRITICAL
BTP-DST-003
Proxy type mismatch (Internet vs OnPremise)
MEDIUM
BTP-DST-004
Stale destinations (365+ days unmodified)
LOW
Identity Authentication Service (BTP-IAS-*)
Check
Description
Severity
BTP-IAS-001
Apps without conditional authentication rules
MEDIUM
BTP-IAS-002
Apps without IP-based restrictions
MEDIUM
BTP-IAS-003
Apps without multi-factor authentication
HIGH
Entitlement Governance (BTP-ENT-*)
Check
Description
Severity
BTP-ENT-001
Services entitled but never provisioned
LOW
BTP-ENT-002
Security services entitled but unused (audit, credstore)
MEDIUM
Event Mesh (BTP-EM-*)
Check
Description
Severity
BTP-EM-001
Queues with wildcard topic subscriptions
HIGH
BTP-EM-002
Queues without access control policies
HIGH
BTP-EM-003
Cross-namespace event subscriptions
MEDIUM
Cloud Integration / CPI (BTP-CPI-*)
Check
Description
Severity
BTP-CPI-001
Credentials not rotated in 180+ days
HIGH
BTP-CPI-002
Credentials using basic/plaintext auth
MEDIUM
BTP-CPI-003
iFlows with hardcoded/embedded credentials
CRITICAL
BTP-CPI-004
iFlows with no sender authentication
HIGH
BTP-CPI-005
iFlows using unencrypted HTTP endpoints
HIGH
Network Isolation (BTP-NET-*)
Check
Description
Severity
BTP-NET-001
Services using public internet endpoints
MEDIUM
BTP-NET-002
Critical services without Private Link
HIGH
Subaccount Governance (BTP-GOV-*)
Check
Description
Severity
BTP-GOV-001
Subaccounts without audit logging
HIGH
BTP-GOV-002
Subaccounts using default SAP IDP only
MEDIUM
XSUAA Migration (BTP-MIG-*)
Check
Description
Severity
BTP-MIG-001
Apps still using XSUAA (not migrated to IAS)
MEDIUM
🔗 Network & Integration Layer — Full Check List
API Management (INTG-APIM-*)
Check
Description
Severity
INTG-APIM-001
API proxies missing required security policies
HIGH
INTG-APIM-002
API proxies without authentication policies
CRITICAL
INTG-APIM-003
API proxies allowing unencrypted HTTP
HIGH
INTG-APIM-004
API proxies allowing deprecated TLS versions
HIGH
INTG-APIM-005
API proxies in pass-through mode (zero policies)
CRITICAL
IDOC Port & Partner Security (INTG-IDOC-*)
Check
Description
Severity
INTG-IDOC-001
IDOC ports without encryption (TLS/SNC)
HIGH
INTG-IDOC-002
IDOC file ports with insecure directories
MEDIUM
INTG-IDOC-003
IDOC partners with wildcard message types
HIGH
INTG-IDOC-004
IDOC partners handling sensitive message types
MEDIUM
Web Services / SOAMANAGER (INTG-WS-*)
Check
Description
Severity
INTG-WS-001
High-risk BAPIs/RFCs exposed as web services
HIGH
INTG-WS-002
Excessive active web service endpoints
MEDIUM
INTG-WS-003
Web services with weak/no authentication
CRITICAL
Webhook & Callback Security (INTG-WH-*)
Check
Description
Severity
INTG-WH-001
Webhook callbacks using unencrypted HTTP
HIGH
INTG-WH-002
Webhooks without HMAC signature verification
HIGH
INTG-WH-003
Webhooks delivering to external endpoints
MEDIUM
INTG-WH-004
Stale webhook registrations
LOW
Gateway ACL Deep Analysis (INTG-GW-*)
Check
Description
Severity
INTG-GW-001
Secinfo with overly permissive permit rules
CRITICAL
INTG-GW-002
Secinfo missing deny-all default rule
HIGH
INTG-GW-003
Secinfo permits external program execution
HIGH
INTG-GW-004
Reginfo permits unrestricted RFC registration
CRITICAL
INTG-GW-005
Reginfo missing deny-all default rule
HIGH
Integration Monitoring (INTG-MON-*)
Check
Description
Severity
INTG-MON-001
Missing integration monitoring alert rules
HIGH
INTG-MON-002
Integration events not forwarded to SIEM
MEDIUM
CPI Data Stores (INTG-CPI-DS-*)
Check
Description
Severity
INTG-CPI-DS-001
Data stores with sensitive names, no encryption
HIGH
INTG-CPI-DS-002
Global variables with potentially sensitive names
MEDIUM
INTG-CPI-DS-003
Data stores with excessive entries
LOW
OAuth Client Governance (INTG-OAUTH-*)
Check
Description
Severity
INTG-OAUTH-001
OAuth clients with admin/wildcard scopes
HIGH
INTG-OAUTH-002
OAuth clients using deprecated grant types
HIGH
INTG-OAUTH-003
OAuth clients unused for 180+ days
MEDIUM
Integration Topology (INTG-TOPO-*)
Check
Description
Severity
INTG-TOPO-001
Integration connections without encryption
HIGH
INTG-TOPO-002
Hub systems with excessive connections
MEDIUM
INTG-TOPO-003
Connections to deprecated/legacy systems
MEDIUM
🔏 Data Protection & Privacy — Full Check List (NEW)
Read Access Logging (DPP-RAL-*)
Check
Description
Severity
DPP-RAL-001
RAL disabled or no active configurations
CRITICAL
DPP-RAL-002
RAL missing coverage for key channels (OData, RFC, ALV)
HIGH
DPP-RAL-003
RAL log channels with insufficient retention
MEDIUM
Information Lifecycle Management (DPP-ILM-*)
Check
Description
Severity
DPP-ILM-001
Retention policies exceeding maximum period
MEDIUM
DPP-ILM-002
Policies without automatic data destruction
MEDIUM
DPP-ILM-003
Policies without end-of-purpose definitions
HIGH
DPP-ILM-004
Personal data tables without ILM retention policies
HIGH
Data Masking — Non-Production (DPP-MASK-*)
Check
Description
Severity
DPP-MASK-001
Non-production systems without PII data masking
CRITICAL
DPP-MASK-002
Production copies in non-prod without masking
CRITICAL
DPP Toolkit (DPP-TOOLKIT-*)
Check
Description
Severity
DPP-TOOLKIT-001
DPP toolkit features not configured (deletion report, consent, breach notification)
HIGH
Purpose of Processing (DPP-POP-*)
Check
Description
Severity
DPP-POP-001
Purposes without documented legal basis (GDPR Art.6)
HIGH
DPP-POP-002
Expired purposes still active
MEDIUM
Sensitive Field Inventory (DPP-FIELD-*)
Check
Description
Severity
DPP-FIELD-001
PII fields without Read Access Logging
HIGH
DPP-FIELD-002
Sensitive fields not masked in non-production
MEDIUM
DPP-FIELD-003
Known sensitive SAP fields missing from classification inventory
MEDIUM
Data Residency & Cross-Border (DPP-RES-*)
Check
Description
Severity
DPP-RES-001
Cross-border transfers without legal safeguards (SCCs/BCRs)
CRITICAL
DPP-RES-002
Special category data in cross-border transfers
HIGH
Data Subject Requests (DPP-DEL-*)
Check
Description
Severity
DPP-DEL-001
Data subject requests overdue (>30 day SLA)
CRITICAL
DPP-DEL-002
Requests marked complete but incomplete
HIGH
DPP-DEL-003
Requests without documentation
MEDIUM
System Landscape (DPP-LAND-*)
Check
Description
Severity
DPP-LAND-001
Systems without data classification assignment
MEDIUM
💻 Code & Transport Security — Full Check List (NEW)
Code Injection / SQL Injection (CODE-INJ-*)
Check
Description
Severity
CODE-INJ-001
SQL injection patterns in custom code (dynamic WHERE, EXEC SQL)
This tool is for authorized security assessments only. The scanner performs offline analysis of exported data and does not connect to or modify any SAP system.