Skip to main content
SAP Pentest Playbook
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage
Edit page

Security-Relevant Profile Parameters

Description

AS ABAP’s security behavior - password policy and lockout, SSO ticket acceptance, RFC Gateway ACL enforcement, RFC authority checks, SNC encryption, audit logging - is governed by kernel profile parameters. They are set per instance in DEFAULT.PFL and the <SID>_<INST>_<host> instance profiles, merged at startup (instance value overrides DEFAULT.PFL), and many are readable - some dynamically settable - at runtime.

Pulling these values is a high-yield recon step: one parameter sweep tells you how hard the target is before you spend effort on any specific attack path, and each parameter maps directly to a technique page. This page is the catalog of the parameters worth reading and what a secure vs. exposed value looks like; the attack pages linked per row carry the actual exploitation.

Warning
The profile value on disk is not necessarily the value the kernel is enforcing. Dynamically-switchable parameters can be flipped at runtime via RZ11 and revert on the next restart with no profile change. Always confirm the running value, and see Profile Parameter Drift & Runtime Config Tampering for why the disk value can lie.

Options

How to read the values, cheapest first:

  • RFC path (no special authorization) - PFL_GET_SINGLE_PARAMETER (function group SPFL) is remote-enabled and callable by any authenticated RFC user; returns the live runtime value (reflecting any RZ11 dynamic change since the last restart). A general-purpose, any-parameter read primitive - not limited to a single module’s scope.
  • OS-access path - read DEFAULT.PFL plus every discovered <SID>_<INST>_<host> instance profile via an existing OS-exec/sapxpg foothold (e.g. base64 <path>). Instance values override DEFAULT.PFL, matching SAP’s profile-merge order.
  • Running value from OS - sapcontrol -nr <NN> -function ParameterValue <parameter> returns what the kernel is actually enforcing, catching runtime drift from the profile.
  • Native SAP tcodes/reports - RZ11 (single parameter, shows “Resulting Source”), RZ10 (profile maintenance), report RSPFPAR / RSPARAM (dump the full merged parameter set).
  • Live ICM listener cross-check - ICM_GET_INFO (RFC, no input) returns the actually-running icm/server_port_* HTTP/HTTPS listeners, catching drift from RZ11-configured-but-unapplied ports.

Security-relevant parameter catalog

Secure values follow the SAP Security Baseline Template (SAP Note 2253549) where it specifies one; exact recommended integers vary by baseline version and NetWeaver release, so treat the “secure value” column as the hardening target to compare against, not a fixed constant. <!-- VERIFY: confirm the exact recommended value per the target's baseline version before reporting a parameter as mis-set. -->

login/* - authentication, password policy, SSO

ParameterSecure valueExposure if mis-setRelated
login/no_automatic_user_sapstar10 re-enables the hardcoded SAP* fallback (password PASS) after the DB user row is deletedHardcoded/Virtual SAP*
login/password_downwards_compatibility0Non-zero keeps weak downward-compatible hashes (CODVN B/BCODE) alongside the strong onesPassword Hashes
login/min_password_lng≥ 8Short minimum makes offline hash cracking and online guessing cheapDefault Credentials
login/fails_to_user_lock≤ 5High/0 (unlimited) permits online brute forceDefault Credentials
login/failed_user_auto_unlock01 auto-unlocks locked accounts overnight, resetting brute-force budgetDefault Credentials
login/accept_sso2_ticket0 unless SSO used1 = the AS accepts SSO2 logon tickets; hard gate for accepting a forged ticketMYSAPSSO2 Forgery
login/create_sso2_ticketmatches SSO design2 = tickets omit embedded cert (forger sets include_cert=False); 0 = AS never issues, no local precedentMYSAPSSO2 Forgery
login/sso2_ticket_strict_owner_check10 relaxes the issuer Owner-DN match against TWPSSO2ACL, widening which forged issuer DNs are acceptedMYSAPSSO2 Forgery
login/ticket_only_by_https10 allows the SSO/session cookie over cleartext HTTPSNC / Encryption Posture
login/disable_multi_gui_login10 permits concurrent multi-session logon of one account, aiding shared/stolen-credential useDefault Credentials

gw/* - RFC Gateway ACL

ParameterSecure valueExposure if mis-setRelated
gw/acl_mode10 = no ACL check on external Gateway registrationsRFC Gateway / 10KBLAZE
gw/sim_mode01 = ACL logs violations but allows them (simulation)RFC Gateway / 10KBLAZE
gw/reg_info, gw/sec_infoset, restrictiveMissing/permissive reginfo/secinfo ACL files allow rogue program registration and rem_startRFC Gateway / 10KBLAZE
gw/reg_no_conn_infohardened bitmaskLow value leaves registration-info bypass flags openRFC Gateway / 10KBLAZE
gw/monitor1 (local only)2 allows remote gateway monitoring/administrationRFC Gateway / 10KBLAZE

auth/* - authorization enforcement

ParameterSecure valueExposure if mis-setRelated
auth/rfc_authority_check≥ 60/1 skips the S_RFC check on inbound RFC function-module callsCritical RFC FMs
auth/object_disabling_activeNY lets authorization objects be globally disabled via SU24/AUTH_SWITCH_OBJECTSCritical Authorizations & SoD
auth/no_check_in_some_casesY (with maintained SU24)Interacts with check-indicator maintenance; misconfig can suppress checksCritical Authorizations & SoD

rsau/* - Security Audit Log

ParameterSecure valueExposure if mis-setRelated
rsau/enable10 = Security Audit Log off; actions leave no SAL trailLogging & Detection Surface
rsau/selection_slots≥ 10Too few filter slots forces incomplete audit coverageLogging & Detection Surface
rsau/integrity10 disables tamper-evidence on the audit filesLogging & Detection Surface

snc/* - Secure Network Communications

ParameterSecure valueExposure if mis-setRelated
snc/enable10 = SNC off; DIAG/RFC in cleartextSNC / Encryption Posture
snc/data_protection/min31/2 permits downgrade to authentication/integrity-only (no encryption)SNC Downgrade
snc/data_protection/use3 (or 9)Lower value negotiates weaker default protectionSNC Downgrade
snc/accept_insecure_rfc01 accepts unencrypted inbound RFC despite SNC being “enabled”SNC Downgrade
snc/accept_insecure_gui01 accepts unencrypted SAP GUI/DIAG logons (credential capture)SNC Downgrade
snc/accept_insecure_cpic01 accepts unencrypted CPIC connectionsSNC Downgrade

rdisp/*, ms/*, misc

ParameterSecure valueExposure if mis-setRelated
ms/monitor01 allows external message-server administrationMessage Server ACL
ms/admin_port0 / firewalledAn exposed admin port permits remote MS reconfigurationMessage Server ACL
system/secinfo (MS ACL file)set, restrictiveMissing MS ACL allows rogue app-server registrationMessage Server ACL
rfc/reject_expired_passwd10 lets logons succeed with expired passwords over RFCDefault Credentials
is/HTTP/show_detailed_errorsFALSETRUE leaks stack/config detail in ICM error pagesExposed ICF Services
ucon/rfc/active1 (UCON enforcing)0/absent = Unified Connectivity not gating RFC; full RFM surface exposedCritical RFC FMs

Namespaces not enumerated above (icm/*, rdisp/gui_auto_logout, rec/client table logging, login/password_expiration_time, login/password_compliance_to_current_policy) are also worth pulling in a full sweep; this catalog covers the parameters that map to a documented attack path in this playbook, not the complete baseline. A three-parameter pull is not a hardening assessment - cross-check the full set against the SAP Security Baseline Template (SAP Note 2253549), where “Profile parameters” is one of six baseline pillars.

Detection and Monitoring

Note
A scripted sweep of many specific parameter names in quick succession from one RFC session is an unusual pattern - legitimate Basis administration reads parameters interactively via RZ11, not via automated sweep. Function-module call logging (ST05 / gateway logging / Security Audit Log RFC-call class) on SPFL-group RFCs (PFL_GET_SINGLE_PARAMETER) from non-Basis-admin users is the detection point. The same signature applies to rsau/* sweeps noted in Logging & Detection Surface.

References