🔒 What Is an SAP Security Audit and Why Every Organisation Needs One
Today we are discuss with Topic SAP Security Checklist Guide.An SAP Security Audit is a systematic review of your SAP view to identify security exposure, access control weaknesses, segregation-of-duties (SoD) conflicts, and compliance gaps. In 2026–27, SAP environments are under scrutiny from regulators (SOX, GDPR, ISO 27001), external auditors, and internal risk teams more than ever before. A missed SAP security finding can result in financial restatements, data breach liability, failed audits, or regulatory fines. This guide gives you the complete, actionable checklist across all audit dimensions - structured so you can use it directly in your next audit engagement.Also this tutorial or document breaks down the process step by step, using simple language and real-world examples to help you master the skill.
Covered
Across All Areas
Frameworks
for 2026
Access Control Review
User master data, role assignments, superuser access, locked users, and password policy validation across all company codes and systems.
Segregation of Duties
Identify conflicting authorizations - users who can both create and approve purchase orders, or post and clear accounting documents simultaneously.
Compliance Mapping
Map each audit finding to the relevant regulation - SOX IT General Controls, GDPR data access, ISO 27001 controls, or DORA digital resilience requirements.
How to Use This Checklist: Work through each section in order. Use the interactive checkboxes to track completion. Each item includes the SAP T-code or tool to use, the risk level, and what evidence to collect for audit documentation. For GRC-enabled systems, many checks can be automated - look for the GRC tags.
👤 User Administration And Access Control Audit
User administration is the most commonly cited area of SAP security findings in external audits. also The goal is to ensure that only active, authorised users have access, that access levels match job responsibilities, and that privileged access is tightly controlled and monitored.
User Master Data Checks
CRITICAL- Active users with no recent login: Identify all users who have not logged in for more than 90 days. These accounts should be locked or deleted. Use SU10 or SUIM → Users by Logon Date. CRITICAL
- Terminated employees still active: Cross-reference SAP user master (table USR02) against HR offboarding records. Any ex-employee with an active account is a critical finding. CRITICAL
- Superuser / SAP_ALL assignments: List all users with the SAP_ALL profile. This profile grants unrestricted access and should only exist for emergency break-glass accounts. Use SUIM → Users with Given Profile → SAP_ALL. CRITICAL
- SAP* and DDIC default accounts: Verify SAP* and DDIC are locked in all production and development clients. Check SU01 and confirm lock indicator is set. CRITICAL
- Shared / generic user IDs: Identify accounts shared by multiple people (often named ADMIN, TEST, INTERFACE, BATCH). Each user must have a unique, personal account for audit traceability. HIGH
- Service / interface accounts: Review all dialog-type users used for batch jobs and interfaces. These should be type Service or System user, not Dialog, to prevent interactive login. HIGH
- Users with multiple failed logins (not locked): Check USR02 field UFLAG for accounts that have exceeded the maximum login attempts but remain unlocked due to manual intervention. HIGH
- Valid-from / valid-to dates on user accounts: Temporary users (contractors, auditors, project staff) must have an GLTGB (valid-to date) set. Verify in SU01 or SU10. MEDIUM
- User type correctness: Confirm all interactive users are type A (Dialog), batch users are type B (System) or C (Communication), and no Dialog users are used for automated processes. MEDIUM
- User validity period audit trail: Confirm that user creation and modification records exist in the change log. Check SU01 → Change Documents or table DBTABPRT for USR* table changes. MEDIUM
Password Policy And Authentication Controls
HIGH RISK- Password complexity rules: Verify profile parameter login/password_change_for_SSO and login/min_password_lng (minimum 12 for SOX/GDPR). Check in RZ11. CRITICAL
- Maximum login attempts (lockout threshold): login/fails_to_user_lock must be ≤ 5 for most compliance frameworks. Verify in RZ11. HIGH
- Password history enforcement: login/password_history_size must be ≥ 5 to prevent immediate password reuse. HIGH
- Password expiry period: login/password_expiration_time should be ≤ 90 days for production systems handling financial data. HIGH
- Initial password change enforcement: login/password_change_for_SSO and the "change password at next login" flag must be active for all newly created users. HIGH
- SSO and MFA configuration: For S/4HANA and Fiori systems, verify multi-factor authentication is configured for remote access. Review SICF service settings and Identity Provider (IdP) configuration. HIGH
- Session timeout: rdisp/gui_auto_logout should be ≤ 900 seconds (15 minutes) in financial production systems. Verify in RZ11. MEDIUM
| Profile Parameter | Recommended Value | Risk if Incorrect | Compliance Standard |
|---|---|---|---|
login/min_password_lng | 12 or more characters | Weak passwords allow brute-force attacks | SOX, GDPR, ISO 27001 |
login/fails_to_user_lock | 5 or fewer attempts | Unlimited login attempts enable brute-force | SOX, PCI-DSS, ISO 27001 |
login/password_expiration_time | 90 days maximum | Stale passwords increase compromise window | SOX, NIST 800-53 |
login/password_history_size | 5 or more | Users cycle back to weak known passwords | ISO 27001, GDPR |
rdisp/gui_auto_logout | 900 seconds (15 min) | Unattended sessions allow unauthorized access | SOX, PCI-DSS |
login/no_automatic_user_sapstar | 1 (enabled) | SAP* fallback login bypasses all security | ALL frameworks |
auth/rfc_authority_check | 1 (enabled) | RFC calls bypass authorization checks | SOX, GDPR |
snc/enable | 1 (enabled for RFC) | Unencrypted RFC communication allows data interception | GDPR, ISO 27001 |
Role And Authorization Object Audit (PFCG / SUIM)
Every Time Role design is the structural foundation of SAP security. Poorly designed roles - too broad, composite roles with too many single roles, or roles that are never cleaned up - are the root cause of most SoD conflicts and privilege escalation findings. The goal of this audit area is to verify that roles are minimal, purposeful, and correctly assigned.
Role Design and Assignment Review
HIGH RISK- Roles with full authorization (*) wildcards: In PFCG, identify any role where authorization object fields are maintained as * (all). Full wildcards on sensitive objects like S_TCODE, P_ORGIN (HR), or F_BKPF_BUK (FI) are a critical finding. CRITICAL
- Roles assigned directly to users (not via composite): Best practice requires all role assignments to go through composite roles. Direct single-role assignments bypass the standard role management governance process. Check SUIM → Roles Assigned to Users. HIGH
- Development / debug roles in production: Roles containing S_DEVELOP (ABAP workbench access), S_ADMI_FCD (system administration), or debug transaction SE38/SE37 authorizations must not exist in production. Use SUIM → Users with Given Authorization Object → S_DEVELOP. CRITICAL
- Roles with expired validity dates still assigned: Query AGR_USERS table for role assignments where TO_DAT < current date. These are ghost assignments that may still be active depending on system configuration. HIGH
- Orphan roles - defined but never assigned: Roles that exist in the system but are unassigned and unmaintained accumulate over time and create compliance complexity. Use SUIM → Roles Without User Assignment to identify and clean up. LOW
- Role transport documentation: Every role change in production must have a documented transport request. Verify that no roles were changed directly in production via emergency access without a transport trace. Check PFCG → Change Documents. HIGH
- Authorization object S_TCODE coverage: Verify that every role grants transaction access via S_TCODE authorization object. Roles that only restrict via organisational level but grant all T-codes are dangerously over-privileged. HIGH
- Periodic role recertification: Confirm that a documented annual or semi-annual role recertification process exists. In GRC-enabled systems, this is the Access Request Management Access Review campaign. MEDIUM
Critical Authorization Objects to Audit
| Auth Object | What It Controls | Risk If Over-Privileged | Audit T-Code |
|---|---|---|---|
| S_TCODE | Which transactions a user can run | Users access transactions outside their job function | SUIM, SE16N on AGR_1251 |
| S_DEVELOP | ABAP development and debugging access | Users can modify programs, read any table, change data | SUIM → Auth Object S_DEVELOP |
| S_ADMI_FCD | System administration functions | Users can stop/start services, change system parameters | SUIM → Auth Object S_ADMI_FCD |
| F_BKPF_BUK | FI - posting in company codes | Users can post financial documents in all company codes | SUIM → Auth Object F_BKPF_BUK |
| P_ORGIN | HR - personnel master data access | Users can view/change salary, bank details, personal data | SUIM → Auth Object P_ORGIN |
| M_MSEG_WMB | MM - goods movement posting | Users can post any goods movement type including free issues | SUIM → Auth Object M_MSEG_WMB |
| S_RFC | RFC function group access | External programs can call any function module remotely | SE16N on USOBT_C, USOBX_C |
| S_DATASET | OS file system access from ABAP | Programs can read/write any file on the application server | SUIM → Auth Object S_DATASET |
"Identify superuser profiles assigned to any user SELECT bname, profn, datbi FROM usr04 INTO TABLE @lt_superusers WHERE profn IN ( 'SAP_ALL', 'SAP_NEW' ) AND datbi >= @sy-datum. "Also check composite role assignments granting SAP_ALL SELECT a~uname, a~agr_name, p~profile FROM agr_users AS a INNER JOIN agr_prof AS p ON p~agr_name = a~agr_name INTO TABLE @lt_roles WHERE p~profile = 'SAP_ALL' AND a~to_dat >= @sy-datum.
⚖️ Segregation of Duties (SoD) - Conflict Analysis
Segregation of Duties means that no single user should be able to complete an entire business process alone - particularly processes where fraud or error could occur without independent checking. SoD is the primary control required by SOX Section 404, and its absence is the most common critical finding in SAP financial system audits.
SOX Audit Impact: An unmitigated SoD conflict in a financial system is typically classified as a Significant Deficiency or Material Weakness under SOX Section 404. A material weakness can result in a qualified audit opinion, mandatory disclosure to the SEC, and significant remediation costs. Treat all unmitigated SoD findings as critical.
| SoD Conflict | T-Code / Function A | T-Code / Function B | Risk | Fraud Scenario |
|---|---|---|---|---|
| PO Create + PO Approve | ME21N (Create PO) | ME29N (Release PO) | CRITICAL | User creates a fraudulent PO for a fictitious vendor and approves it themselves |
| Vendor Create + Invoice Post | FK01 (Create Vendor) | MIRO / FB60 (Post Invoice) | CRITICAL | User creates a fake vendor and posts fraudulent invoices to that vendor |
| FI Post + FI Clear | FB50/F-02 (Post FI Doc) | F-03/F-44 (Clear FI Doc) | CRITICAL | User posts a fraudulent transaction and then clears it to hide the audit trail |
| Payment Create + Payment Release | F110 (Payment Proposal) | F110 (Payment Release) | CRITICAL | User creates and releases a payment to an unauthorized bank account |
| Customer Create + Cash Receipt Post | FD01 (Create Customer) | F-28 / FB05 (Post Payment) | CRITICAL | User creates a fake customer credit and posts payment receipts to cover AR fraud |
| Payroll Create + Payroll Release | PY30 (Payroll Run Setup) | PC00_M99_CALC (Payroll Release) | CRITICAL | User adds ghost employees or inflates salaries and approves the payroll run |
| User Create + Role Assign | SU01 (Create User) | SU01 / PFCG (Assign Role) | CRITICAL | User creates a superuser account and grants it full system access |
| GR Post + Invoice Post | MIGO (Post Goods Receipt) | MIRO (Post Vendor Invoice) | HIGH | User confirms delivery of goods not actually received and approves payment |
| PR Create + PO Convert | ME51N (Create PR) | ME59N (Auto PO from PR) | HIGH | User creates and converts their own requisition bypassing procurement controls |
| Fixed Asset Create + Capitalise | AS01 (Create Asset) | ABUMN / F-90 (Post Acquisition) | HIGH | User creates a fictitious asset and capitalises a fraudulent cost to it |
| G/L Account Create + Post | FS01 / FSS0 (Create GL Account) | FB50 / F-02 (Post FI Document) | HIGH | User creates a suspense GL account and diverts funds to it undetected |
| Material Create + GR Post | MM01 (Create Material) | MIGO (Post Goods Receipt) | MEDIUM | User creates a fictitious material and posts fabricated stock receipts |
SoD Audit Checklist
SOX CRITICAL- Run GRC Access Control SoD analysis report: In SAP GRC, run the Access Risk Analysis report for all production users. Export all critical and high SoD violations. If no GRC, use SUIM and the SoD conflict matrix from the risk library. CRITICAL
- Identify unmitigated critical SoD conflicts: For every critical SoD hit, verify whether a compensating control exists and is documented (e.g., management approval, supervisory review of all transactions, exception reporting). Unmitigated = SOX finding. CRITICAL
- Review Firefighter / Emergency Access logs: Check GRC Emergency Access Management (Firefighter) logs for all superuser sessions. Verify that every Firefighter ID usage has a documented business justification and post-use review. CRITICAL
- Verify SoD mitigating controls are operating effectively: For each documented compensating control, collect evidence that the control was actually performed (e.g., signed approval sheets, exception report review sign-offs). Controls documented but not operating are a SOX finding. CRITICAL
- Check for SoD conflicts in batch/service accounts: Service accounts and background job IDs also carry authorization profiles. A batch job that both posts and clears FI documents is an SoD conflict even if no human runs it interactively. HIGH
- Validate SoD ruleset currency: Confirm the GRC SoD ruleset was reviewed and updated within the last 12 months. Outdated rulesets miss new T-codes and authorization objects introduced by SAP upgrades or custom development. MEDIUM
📋 Audit Log Configuration And Security Monitoring (SM20 / SM21)
SAP's Security Audit Log (SM20) and System Log (SM21) are your forensic tools - they record who did what and when in the SAP system. For audit compliance, you must not only have these logs enabled, but also verify they are collecting the right events, protected from tampering, and regularly reviewed.
Security Audit Log (SM20 / RSAU_CONFIG) Checks
COMPLIANCE CRITICAL- Security Audit Log is active: Verify that rsau/enable = 1 in RZ11. If the Security Audit Log is disabled in production, this is a critical compliance finding for virtually every regulatory framework. CRITICAL
- All event classes are being captured: In SM19 (or RSAU_CONFIG for newer systems), verify that the filter captures: all users / Dialog logins, all RFC logins, failed login attempts, authorization failures, user master changes, table changes, and report starts. CRITICAL
- Audit log retention period: Verify rsau/max_diskspace/local is set large enough to retain at least 90 days of logs on disk, and that archived logs are retained for ≥ 1 year (SOX) or ≥ 3 years (GDPR data breach evidence). HIGH
- Audit log integrity - no gaps or deletions: Review SM20 log files for unexpected gaps. Confirm that only authorised administrators can access SM18 (delete audit files). Unauthorised log deletion is a critical incident. CRITICAL
- Audit log files forwarded to SIEM: Best practice and SOX/ISO 27001 requirement: SAP Security Audit logs should be forwarded in real time to a centralised SIEM (Security Information and Event Management) system. Verify the integration is configured and operational. HIGH
- Regular log review evidence: Confirm that security logs are reviewed at least weekly by a designated security officer, and that review records exist. Logs that are captured but never reviewed provide no detective control value. HIGH
- Alert on critical events: Verify that automated alerts are configured for: SAP* login attempts, multiple consecutive failed logins, Firefighter ID activation, SAP_ALL profile assignment, and direct table changes via SE16N in production. HIGH
- Table change logging (DBTABLOG): For critical tables (USR02, AGR_USERS, T001, LFA1, KNA1), verify that table change logging is active. Check SE13 for the logging property on each table. HIGH
| Event Class | Events Captured | Why It Matters | Compliance |
|---|---|---|---|
| AU = Dialog Login | Successful and failed SAP GUI logins, logoff events | Tracks who logged into the system, when, and from where | SOX, GDPR, ISO 27001 |
| AU = RFC Login | All remote function call connections to the system | Detects unauthorised remote access and interface logins | SOX, ISO 27001 |
| AU = Failed Auth | Every denied authorization check (S_TCODE etc.) | Reveals users attempting to access restricted areas | SOX, GDPR |
| AU = User Master | All changes to USR* tables - user creation, modification, deletion | Detects unauthorised user provisioning or privilege escalation | SOX, GDPR, DORA |
| AU = Reports | Programs started via SA38, SE38, or job scheduling | Detects unauthorised report execution or data extraction | GDPR, SOX |
| AU = Table Access | Direct table access via SE16, SE16N in production | Detects unauthorised data extraction or browsing | GDPR, SOX |
| AU = Transport | Transport imports and exports in all clients | Detects unauthorised code changes imported to production | SOX, ITGC |
⚙️ System Configuration Security And Hardening Checklist
SAP system configuration contains hundreds of settings that directly affect security. Misconfigured profile parameters, open RFC connections, unrestricted client settings, and inadequate transport controls are all commonly exploited entry points in SAP security incidents.
Client Settings And Transport Controls
HIGH RISK- Production client settings (SCC4): In SCC4, verify the production client has: Client role = Production, Changes and Transports = No changes allowed, CATT and eCATT = No changes allowed. A production client allowing direct changes is a critical SOX finding. CRITICAL
- Transport Management System (TMS) config: Verify that all code changes flow through the documented DEV → QAS → PRD transport path. Check STMS for the transport route configuration. Any non-standard transports or manual corrections to production bypassing QAS must be documented. CRITICAL
- Direct table changes in production: Check SM20 audit log for SE16N usage in production. Direct table modification (append, delete rows) in a production system without a transport is a critical data integrity and audit finding. CRITICAL
- Background processing job ownership: Every scheduled background job must have a named, active owner user ID. Jobs owned by deleted users continue to run but cannot be managed. Check SM37 for jobs with invalid user owner. HIGH
- Gateway security (SMGW / reginfo / secinfo): Verify that gw/reg_info and gw/sec_info files exist and restrict which programs and hosts can register/connect. An unprotected gateway allows external programs to register as trusted and execute any function. CRITICAL
- ICM (Internet Communication Manager) settings: In SMICM, verify that only required HTTP/HTTPS services are active. Disable all unused ICF services in SICF. Every active ICF service is a potential external attack surface. HIGH
RFC Connection Security
HIGH RISK- RFC connections with stored passwords (SM59): In SM59, identify all RFC connections where a user ID and password are stored. These stored credentials must be for dedicated service accounts, not personal user IDs. CRITICAL
- Trusted RFC connections (Transaction SM59 + SNOTE): Trusted system connections bypass login checks. Review all trusting relationships in SMT1 and SM59. Verify that trusted systems are actually legitimate and that trust is unidirectional (not mutual unless required). CRITICAL
- Unused RFC connections: Identify RFC destinations in SM59 that have not been used recently. Obsolete connections increase the attack surface and should be deleted after verification. MEDIUM
- SNC (Secure Network Communications) for external RFC: All external RFC connections must use SNC encryption. Verify snc/enable = 1 and that SNC is configured in SM59 for external connections. HIGH
🌐 Compliance Framework Mapping - SOX, GDPR, ISO 27001, DORA
SAP security findings must be mapped to the relevant regulatory frameworks to prioritise remediation and communicate risk to management. Different frameworks focus on different control areas - understanding the mapping lets you structure your audit report to address the most relevant regulatory exposure.
SOX (Sarbanes-Oxley)
Section 404 requires effective IT General Controls. SAP SoD conflicts, access control weaknesses, and change management failures are direct SOX findings.
GDPR
Article 32 requires appropriate security measures. SAP's access to personal data (HR, CRM, customer records) triggers GDPR obligations for access control, logging, and breach notification.
ISO/IEC 27001
Annex A controls cover access management (A.9), cryptography (A.10), operations security (A.12), and supplier relationships (A.15) - all applicable to SAP.
DORA (EU 2025+)
Digital Operational Resilience Act requires ICT risk management, incident reporting, and operational resilience testing for financial sector firms using SAP for core processes.
PCI-DSS
If SAP processes payment card data, PCI-DSS Requirement 7 (restrict data access) and Requirement 8 (user authentication) apply directly to SAP user and role management.
NIST CSF 2.0
NIST Cybersecurity Framework Govern, Identify, Protect, Detect, Respond, Recover functions all have direct SAP implementation points, particularly in the Protect and Detect categories.
| SAP Control Area | SOX S.404 | GDPR Art.32 | ISO 27001 | PCI-DSS | SAP Tool / T-Code |
|---|---|---|---|---|---|
| User Access Reviews | ✅ Required | ✅ Required | A.9.2.6 | Req 7, 8 | SUIM, GRC UAR Campaign |
| SoD Conflict Remediation | ✅ Critical | Partial | A.9.3 | Req 7 | GRC ARA, SUIM |
| Password Policy (RZ11) | ✅ Required | ✅ Required | A.9.4 | Req 8 | RZ11, SU01 |
| Privileged Access Management | ✅ Critical | ✅ Required | A.9.2.3 | Req 7, 8 | GRC EAM, SU01 |
| Security Audit Log | ✅ Required | ✅ Required | A.12.4 | Req 10 | SM19/SM20, RSAU_CONFIG |
| Change Management (TMS) | ✅ Critical | Partial | A.12.1.2 | Req 6 | STMS, SE09/SE10 |
| Network / RFC Encryption | Partial | ✅ Required | A.13.1 | Req 4 | SM59, SMGW, SNC |
| Data Retention & Deletion | Partial | ✅ Critical | A.11.2.7 | Req 3 | ILM, RTPB, GDPR tools |
| Incident Response Logging | ✅ Required | ✅ Required | A.16 | Req 10, 12 | SM20, SM21, SIEM |
Common SAP Security Vulnerabilities And Remediation
Beyond access control, SAP systems contain technical vulnerabilities - missing patches, misconfigured services, and insecure default settings - that attackers actively exploit. These technical vulnerabilities are often invisible to traditional access-control-focused audits.
CRITICAL SAP Message Server Exposure
The SAP Message Server (port 3900+) allows registration of application servers. If exposed externally without access control lists, attackers can register rogue application servers. Fix: configure ms/acl_info and ms/server_port_0 access controls.
CRITICAL Unpatched SAP NetWeaver
SAP PSRT (Product Security Response Team) releases security notes monthly. Unpatched systems are exposed to known CVEs. Verify that SAP HANA and NetWeaver security notes are applied within 30 days of release. Use SNOTE and the SAP Patch Manager.
HIGH SAP Web Dispatcher Misconfiguration
A misconfigured SAP Web Dispatcher can expose internal SAP ICF services to the internet. Verify that only required URL patterns are routed and all admin URLs (/sap/admin/) are restricted to internal networks only.
HIGH ABAP Code Injection (Report SE38/SA38)
Users with SE38/SA38 execute authority can run arbitrary ABAP programs that bypass all authorization checks. Review who has access to these transactions in production and verify the custom code does not contain dynamic SQL injection vulnerabilities.
HIGH Unencrypted Data Transfer
SAP Dispatcher communication without SNC/TLS allows network eavesdropping of all user credentials and business data. Verify HTTPS is enforced for all Fiori and WebGUI access, and SNC is configured for SAP GUI connections.
MEDIUM Insecure Custom ABAP Programs
Custom ABAP reports that use authority-check bypass, concatenated SQL in EXEC SQL, or hardcoded credentials are common in older systems. Run the SAP Code Vulnerability Analyser (CVA) in SCI to identify custom code security issues.
SAP Security Baseline Tools: Use SAP Security Optimisation Service (SOS) and the SAP EarlyWatch Alert (accessed via SAP Solution Manager) for automated technical vulnerability scanning. The SOS report flags over 400 security configuration items against SAP best practice. Run it annually at minimum.
🏗️ SAP GRC Access Control Audit Checklist
SAP GRC Access Control is the primary tool for managing SoD, access requests, and emergency access in large enterprises. Auditing GRC itself is critical - a misconfigured GRC tool gives false assurance and may miss real risks. These checks verify that GRC is working as intended.
SAP GRC 12.0 Configuration Audit
GRC AUDIT- GRC connector synchronisation is current: Verify that all managed systems (connectors) in GRC have synchronised user, role, and profile data within the last 24 hours. Stale data means GRC reports are showing outdated risk positions. Check GRAC_CONNECTOR_SYNC. HIGH
- SoD ruleset last review date: The GRC ruleset (functions and risks) should be reviewed annually and after every major SAP upgrade. Confirm the review date and sign-off in the GRC rule maintenance (SPRO → GRC → Access Control → Maintain Rule Set). HIGH
- All production systems in scope of GRC monitoring: Verify that every production SAP system (ECC, S/4HANA, SAP BW, SAP HR, CRM, etc.) is connected as a managed system in GRC. Systems outside GRC scope have no automated SoD monitoring. CRITICAL
- Firefighter (Emergency Access Management) log review: All Firefighter ID sessions must generate a log that is reviewed and signed off by a controller within 24 hours of the session. Verify the log review workflow is configured and operating. CRITICAL
- GRC user access review (UAR) campaigns: Confirm that at least one UAR campaign has been completed in the last 6 months (quarterly for SOX systems). Review the campaign completion rate - incomplete campaigns are a SOX finding. CRITICAL
- Provisioning via GRC ARM only: Verify that all production user provisioning (create, modify, terminate) flows through GRC Access Request Management and is not done directly in SU01 outside the GRC workflow. Check the GRC ARM request log vs SM20 user creation events. HIGH
- Mitigating controls documentation: Every approved SoD violation in GRC must have an associated mitigating control with a designated monitor and a review frequency. Verify controls are not just documented but regularly reviewed with evidence. HIGH
- GRC system transport controls: GRC configuration changes (ruleset, connector config, workflow) must follow the same TMS transport process as the managed SAP systems. Direct GRC customising changes in production are a change management finding. MEDIUM
| GRC T-Code | Module | What It Does | Audit Use |
|---|---|---|---|
GRAC_ARA | Access Risk Analysis | Run SoD risk analysis for users, roles, or profiles | Generate SoD violation report for audit evidence |
GRAC_SPM | Emergency Access | Manage Firefighter IDs, log review, ID assignment | Verify all FF sessions have documented justification and post-review |
GRAC_UAR | User Access Review | Manage periodic access review campaigns | Confirm UAR campaign completion rate and manager sign-off evidence |
GRAC_ARM | Access Request Mgmt | All user provisioning requests, approvals, and audit trail | Trace any user account back to an approved access request |
GRAC_SYNC | Repository Sync | Synchronise user and role data from all managed systems | Verify last sync date - stale data = unreliable GRC reports |
GRAC_MITIGATION | Mitigating Controls | Manage and review compensating controls for SoD violations | Verify control monitors exist, are active, and have review evidence |
/GRCPI/GRIA_DIAG | GRC Diagnostics | System health check for GRC configuration issues | Run before audit to identify GRC configuration gaps |
✅ SAP Security Audit Do's and Don'ts
Always Do These
- Run a GRC Access Risk Analysis for all production systems before every external audit period - findings surfaced early can be remediated before the auditor arrives
- Maintain an access request trail for every production user - every account must trace back to an approved business justification
- Review Firefighter / emergency access logs within 24 hours of each use - delayed review negates the control value
- Test compensating controls for SoD violations with evidence - document what the control is, who performs it, and how often
- Keep the SAP Security Audit Log (SM20) enabled and forwarded to SIEM in all production systems
- Apply SAP security patches (Security Notes) within 30 days of release for critical and high severity
- Conduct at least one full user access review (UAR) every 6 months - quarterly for SOX-in-scope systems
- Document every exception: every SoD override, every emergency access usage, every direct table change must have written justification and approval
Never Do These
- Never leave SAP* and DDIC accounts active and unlocked in any production client - these are hardcoded bypass accounts known to every attacker
- Never approve a permanent SoD exception without a documented, tested compensating control - "we accept the risk" without evidence is not a control
- Never allow developers to have production system access - developer roles belong in DEV and QAS systems only
- Never use shared user IDs in production - all SAP access must be personally accountable and traceable
- Never disable the Security Audit Log in production - even temporarily during performance issues without explicit written authorisation and re-enabling plan
- Never store production passwords in plaintext RFC connections (SM59) with dialog user IDs - use service/system accounts only
- Never allow direct table changes (SE16N append/delete) in production without a transport, documented justification, and post-change review
❓ 15 SAP Security Audit Interview Q&As for 2026–27
These are the questions being asked in SAP Security Consultant, GRC Analyst, and Internal Audit interviews in 2026–27. Each answer is structured to show conceptual understanding, not just keyword recall.
Segregation of Duties (SoD) is a control principle that ensures no single user can complete a high-risk business process end-to-end without a second person's involvement. In SAP, the most common SoD conflict is a user who can both create and approve a purchase order - because that combination allows them to purchase anything without independent oversight. SOX Section 404 requires management to assess and report on the effectiveness of Internal Controls over Financial Reporting (ICFR). Since SAP is the financial system for most public companies, any unmitigated SoD conflict in SAP is a direct gap in ICFR. An unmitigated SoD conflict that is discovered by external auditors is typically classified as a Significant Deficiency or Material Weakness - either of which must be disclosed to investors in the annual report, potentially affecting the company's stock price and triggering SEC attention.
Manual SoD analysis involves extracting authorization data from SAP (using SUIM or SE16N on AGR_1251 and USR_AGR tables), loading it into Excel, and cross-referencing it against a SoD conflict matrix - a process that is time-consuming, error-prone, and only provides a point-in-time snapshot. SAP GRC Access Control automates this process: it maintains a living SoD ruleset (functions and risks), connects to all managed SAP systems in real time, and can flag a violation the moment a role assignment is requested - before it goes live. GRC also manages the full lifecycle: it documents mitigating controls, tracks compensating control reviews, manages access requests with approval workflows, handles emergency access via Firefighter IDs, and runs periodic user access review campaigns. For a SOX-regulated company, GRC is the standard because it produces defensible, auditor-ready evidence automatically rather than requiring manual reconstruction.
A Firefighter ID (also called an Emergency Access ID) is a superuser account in SAP GRC's Emergency Access Management module that gives a named user temporary elevated privileges to perform emergency tasks - like fixing a month-end close issue that requires access outside their normal role. For it to be SOX-compliant, five controls must be in place: First, the ID must be checked out for a specific reason with a business justification recorded in GRC before use. Second, GRC must log every transaction and program executed during the session in the Firefighter log. Third, a designated controller (typically a manager or the security team) must review the log within 24 hours of the session and approve or escalate any unusual activity. Fourth, the approval chain - who requested access, who approved it, what was done, and who reviewed it - must be documented and retained. Fifth, Firefighter IDs must not be shared and must have their own separate audit trail independent of the user's normal ID. Without all five controls operating with evidence, the emergency access process is not a control - it is an SoD bypass.
GDPR Article 32 requires organisations to implement appropriate technical measures to protect personal data - and SAP stores a vast amount of it: HR personal records (PA02, PA0002, PA0008), customer contact data (KNA1, ADRC), vendor contacts (LFA1), and sales data linked to individuals. The specific SAP features that address GDPR are: (1) SAP Information Lifecycle Management (ILM) for data retention rules and blocking/deletion of personal data at end of retention period; (2) SAP RTPB (Read Access Logging / Transparent Access Logging) which logs every display of personal data fields for accountability under GDPR's right of access; (3) Data Privacy Governance in SAP S/4HANA which provides a purpose-based data access model; (4) SAP Identity Management for controlling who can access personal data and for how long; (5) Field-level encryption in HCM for highly sensitive data like national ID numbers and bank accounts. For an audit, you must verify that personal data is only accessible to users with a legitimate business need, that access is logged, that data is deleted at end of retention, and that a Data Processing Impact Assessment (DPIA) exists for high-risk SAP processes.
The most critical parameters, verified in RZ11, are: login/min_password_lng (minimum 12 characters - weak passwords are a root cause of account takeover); login/fails_to_user_lock (5 or fewer - unlimited attempts enable brute force); login/no_automatic_user_sapstar = 1 (prevents the hardcoded SAP* fallback login which bypasses all authorizations); rsau/enable = 1 (Security Audit Log must be on - if it is off, you have no forensic trail); auth/rfc_authority_check = 1 (without this, RFC callers bypass all authorization checks - a massive security hole); gw/reg_no_conn_info and the gateway security files (prevent unauthorized external programs from registering with the gateway); rdisp/gui_auto_logout = 900 (15 minutes - unattended sessions allow physical access attacks). These seven parameters, if misconfigured, represent the most commonly exploited technical vulnerabilities in SAP security incident forensics.
A SOX-compliant User Access Review (UAR) involves five stages with documented evidence at each step. Stage 1 - Scope: Extract all active users and their role assignments for each in-scope SAP system. In GRC, this is the UAR campaign scope. Stage 2 - Manager Review: Send each line manager a report of their direct reports' SAP access, asking them to certify each access as appropriate, modify it, or revoke it. The manager's sign-off (electronic in GRC, or email/form) is the primary audit evidence. Stage 3 - Orphan Accounts: Identify accounts with no manager match (ex-employees) and revoke immediately. Stage 4 - Remediation Tracking: Track all requested changes (revocations, modifications) to confirmed completion, with before-and-after screenshots of role assignments as evidence. Stage 5 - Completion Report: Document the campaign completion rate (SOX requires 100% of in-scope users reviewed) and the control owner's sign-off. The auditor needs: the campaign scope, manager certification records, evidence of changes made, and sign-off from the control owner. In GRC, the GRAC_UAR transaction generates this evidence package automatically.
A Single Role in SAP (PFCG) is a collection of authorization objects and field values that grants specific access - for example, a role that allows reading purchase orders in company code 1000. A Composite Role is a container that bundles multiple single roles together and is assigned to users. The security implications are significant. From a design perspective, composite roles make role management scalable: a "Procurement Manager" composite role might include single roles for PO display, goods receipt, and vendor master display. From an SoD perspective, the SoD conflict usually lives within the composite role - because it combines single roles that individually look safe but together create an SoD conflict (e.g., PO create in one single role and PO release in another, both in the same composite). This is why SoD analysis must be done at the composite role and user level, not just at the single role level. For auditing, the key checks are: does each composite role assignment create any SoD violation, and is the assignment governance (who can assign the composite role) properly controlled?
The SAP Security Audit Log is SAP's built-in forensic event logging system, configured via SM19 (or RSAU_CONFIG in newer systems) and reviewed via SM20. It records security-relevant events including: successful and failed logins, authorization failures, user master data changes, report starts, and direct table access. Its compliance criticality comes from two dimensions. First, it is the evidence trail that proves controls were operating - without it, you cannot prove that a segregation of duties control actually worked, because you cannot show what actions were taken. Second, it is required by every major compliance framework: SOX IT General Controls require logging of privileged activity; GDPR Article 30 requires records of processing activities; ISO 27001 Annex A.12.4 requires event logging. For an audit, a disabled or incomplete Security Audit Log is an immediate critical finding because it means the organisation cannot demonstrate what happened in the system during the audit period, which invalidates all other controls that depend on audit trail evidence.
RFC (Remote Function Call) connections are a frequently overlooked but high-risk area. The audit has three dimensions. First, in SM59, identify all RFC connections and check: (1) Are any dialog user IDs storing passwords? Dialog users with stored passwords in SM59 bypass the password policy and cannot be locked if the user leaves. Only Service or System user types should have stored credentials. (2) Are there trusted RFC connections (SMT1) to systems that should not be trusted? Trusted connections bypass the normal login check, meaning any user on the trusted system can call function modules on the trusting system with the trusted system's authority. (3) Are there connections to unknown or decommissioned systems that should be cleaned up? Second, check the authorization object S_RFC - users with wildcard access on all RFC function groups can call any function module remotely, including ones that read or modify data. Third, verify that SNC encryption is configured for all RFC connections that traverse untrusted networks, to prevent credentials or data from being intercepted. The auth/rfc_authority_check = 1 profile parameter must also be confirmed active.
SAP_ALL is a special profile that grants unrestricted access to every single authorization object, field value, and transaction in the SAP system - it is literally all permissions combined into one. Any user with SAP_ALL can read any data, change any configuration, create any user, post any transaction, delete any record, and bypass every control in the system. In a production SAP system it should never exist because: it represents a total SoD violation (one person can do everything), it makes it impossible to enforce least-privilege principles, it bypasses all change management controls (a user with SAP_ALL can change directly in production without transport), it violates every compliance framework that requires access limitation, and in a forensic investigation of fraud, a user with SAP_ALL has no transactions outside their capability - every action is equally plausible. The only legitimate use case is a fully documented, time-limited, GRC Firefighter ID used for emergency break-glass scenarios with full session logging and immediate post-use review. If SAP_ALL is found on any regular user in production, that is a critical audit finding requiring immediate remediation.
A Board-level SAP security audit report should have four sections. Section 1 - Executive Summary: A one-page summary with a red/amber/green dashboard showing the overall risk rating, number of critical and high findings, year-on-year trend, and the top 3 risks requiring immediate board attention. Section 2 - Critical Findings: For each critical finding, state the finding name, the risk it creates in business terms (not technical), which compliance framework it affects (SOX/GDPR/ISO 27001), the recommended action, the accountable owner, and the target remediation date. Section 3 - Compliance Status: A compliance heatmap showing which regulatory obligations are met, partially met, or not met, with the current year's UAR completion rate, SoD remediation rate, and patch compliance rate. Section 4 - Remediation Roadmap: A 6-12 month remediation plan with milestones, resource requirements, and the expected risk reduction from each remediation. What boards want is risk translated into business impact - potential fraud loss, regulatory fine exposure, and reputational risk - not technical details about profile parameters.
A compensating control is an alternative control that mitigates the risk of an SoD conflict when the SoD violation cannot be remediated (because role re-design would impair business operations). For it to be accepted by auditors, it must be: Detective in nature (it catches the problem if it occurs, even if it does not prevent it); Independent (performed by someone with no involvement in the conflicting activities); Evidence-based (produces a documented record that can be reviewed); Timely (reviewed frequently enough to catch issues before material damage occurs - monthly for financial transactions, quarterly minimum for lower-risk areas); and Monitored (has an owner who is accountable for performing the review). An example: a user has both purchase order creation and PO approval capability. The compensating control is a monthly management report of all POs where the creator and approver are the same person, reviewed and signed by the CFO. What makes it effective: it is actually performed (not just documented), the reviewer has no financial interest in the transactions reviewed, and exceptions are investigated and documented. What makes it weak - and a SOX finding - is if the review is done but there is no evidence (no signed report), or if it is done but exceptions are never investigated.
SAP transport management is a key SOX IT General Control (ITGC) because it controls how code and configuration changes reach the production system. The audit has four dimensions. First, verify the transport route configuration in STMS - changes must flow DEV to QAS to PRD, and the production client's SCC4 settings must prevent direct changes. Second, check for any emergency transports (corrections) imported directly to production bypassing QAS. Every such transport must have a documented emergency change ticket and post-import testing evidence. Third, review who has transport release authority (S_TRANSPRT, SE09/SE10) in production. Only a designated change manager should be able to release and import transports to production. Developers should not be able to import their own changes to production. Fourth, sample-test a selection of transports imported in the audit period and verify each has: a change ticket reference, test evidence from QAS, a business approval, and a deployment sign-off. Any transport without a complete approval chain is a SOX change management finding.
DORA - the Digital Operational Resilience Act - became effective for EU financial sector firms from January 2025. For organisations using SAP as their core ERP for banking, insurance, or investment management, DORA introduces four direct obligations. First, ICT Risk Management: firms must maintain a comprehensive ICT risk management framework that includes SAP in its scope - meaning SAP must have documented threat models, risk assessments, and control frameworks updated annually. Second, ICT Incident Reporting: any cybersecurity incident affecting SAP (data breach, ransomware, unauthorised access) that has operational impact must be reported to the regulator within defined timeframes (typically 4 hours for major incidents). Third, Digital Operational Resilience Testing: firms must conduct annual penetration testing of their critical ICT systems - SAP is typically in scope as a critical system. From 2025, Threat-Led Penetration Testing (TLPT) is required for the most significant firms. Fourth, Third-Party ICT Risk: SAP itself (as a software provider) and any SAP managed service provider must be subject to the firm's third-party ICT risk management programme - including contractual requirements for security standards and audit rights. The practical audit check is: does the organisation's ICT risk register include SAP, and do all four DORA requirements have documented evidence of compliance?
Prioritisation uses a risk-based framework across three dimensions. First, Likelihood × Impact: rate the likelihood that the vulnerability will be exploited (considering who has the access, how often they use it, and whether there are detective controls) and the potential impact (financial loss from fraud, regulatory fine, data breach cost). Critical × High impact findings get immediate remediation deadlines - typically 30 days for critical, 90 days for high. Second, Regulatory Impact: any finding that is likely to be a SOX material weakness, a GDPR breach notification trigger, or a DORA major incident criterion automatically gets the highest priority regardless of the internal risk score - because the regulatory consequence is externally imposed. Third, Control Dependency: some findings are foundational - for example, if the Security Audit Log is disabled, all downstream audit trail controls are ineffective. Foundational failures get priority over symptoms. In practice, the remediation order for a typical SAP audit would be: (1) Disable unused SAP* and DDIC accounts - 24 hours; (2) Remediate unmitigated critical SoD conflicts - 30 days; (3) Lock inactive user accounts - 30 days; (4) Enable and configure Security Audit Log - 30 days; (5) Apply critical security notes - 60 days; (6) Design and implement compensating controls for remaining SoD violations - 90 days; (7) Role redesign and restructuring - 6 months.
📑 Master SAP Security Audit Quick Reference - T-Codes And Tables
| T-Code | Area | What It Does for Auditors | Risk Level |
|---|---|---|---|
SU01 | User Admin | View / create / modify user accounts - check lock status, validity dates, user type | CRITICAL |
SU10 | User Admin | Mass user maintenance - export user list with last login dates for inactive user analysis | CRITICAL |
SUIM | User Info | SAP Information System - find users by profile, role, authorization object, or last logon | CRITICAL |
PFCG | Roles | Role maintenance - view role design, authorization objects, and user assignments | CRITICAL |
SM19 | Audit Log | Security Audit Log configuration - verify which event classes are being captured | CRITICAL |
SM20 | Audit Log | Read the Security Audit Log - search for specific users, events, or time ranges | CRITICAL |
SM21 | System Log | SAP System Log - all system-level events, errors, and security messages | HIGH |
RZ11 | Parameters | View and verify all SAP profile parameters including security settings | CRITICAL |
SCC4 | Clients | Client settings - verify production client prevents direct changes | CRITICAL |
STMS | Transport | Transport Management System - verify transport routes and import history | CRITICAL |
SM59 | RFC | RFC connection maintenance - audit stored credentials and trusted connections | CRITICAL |
SMT1 | RFC Trust | View trusted RFC systems - identifies all systems with bypass login trust | CRITICAL |
SMGW | Gateway | Gateway monitor - check gateway security configuration and active connections | HIGH |
SICF | ICF Services | List all active HTTP/HTTPS services - identify services that should be disabled | HIGH |
SE37 | Functions | Function module browser - used to verify RFC-enabled function modules | HIGH |
SCI | Code Inspector | SAP Code Vulnerability Analyser - scan ABAP programs for security weaknesses | HIGH |
GRAC_ARA | GRC | GRC Access Risk Analysis - run SoD reports for users, roles, and HR objects | CRITICAL |
GRAC_SPM | GRC EAM | GRC Emergency Access Management - view Firefighter ID logs and review status | CRITICAL |
| Table | Description | Audit Use |
|---|---|---|
| USR02 | User logon data - password, lock status, last login | Find inactive users, locked accounts, failed login counts |
| AGR_USERS | Role to user assignment - every role assigned to every user | Check role validity dates, identify expired but still-assigned roles |
| AGR_1251 | Role authorization values - the actual authorization object values per role | Identify roles with wildcard (*) values on sensitive auth objects |
| USR04 | User profile assignments - profiles directly assigned to users | Find users with SAP_ALL or SAP_NEW profiles |
| USR10 | User authorization profile index | Cross-reference profiles to users for superuser identification |
| PRGN_CUST | GRC and authorization customising settings | Verify authorization check settings are configured correctly |
| RSAUPROT | Security Audit Log entries | Query audit events directly for specific users or time ranges |
| DBTABPRT | Table change log - changes made to any logged database table | Verify changes to USR02, LFA1, KNA1, T001 were authorised |
📖 Related SAP Tutorials
How to Write Effective SAP Joule Prompts
The RACE formula, 50+ prompt examples, weak-to-strong rewrites across FI MM SD HR, advanced techniques, and 10 interview Q&As.
Read TutorialHow to Automate – SAP MM Configuration Using SAP Joule AI Prompts
Learn how to use SAP Joule to automatically set up and complete every key SAP MM configuration step.
Read TutorialSAP Fresher Interview Preparation
Complete fresher guide — 50+ Q&As, module selection, T-code cheat sheet, P2P walkthrough, salary guide, and 7-day prep plan.
Read Tutorial