Security Baseline Template V2.4 Change Marker
Security Baseline Template V2.4 Change Marker
Security Baseline Template V2.4 Change Marker
The structure of the template is based on the SAP Secure Operations Map:
SAP Security Baseline Template
Change History
The change markers in the text show the difference to version 2.3
TABLE OF CONTENTS
1 Overview, Requirements and Guidelines ........................................................ 9
1.1 Purpose of this template............................................................................................. 9
1.2 Structure ...................................................................................................................... 9
2 Regulations ...................................................................................................... 11
2.1 Environment .............................................................................................................. 12
2.1.1 Network Security ......................................................................................................... 12
2.1.2 Operating System and Database Security ................................................................... 12
2.1.3 Client Security ............................................................................................................. 12
2.2 System ....................................................................................................................... 12
2.2.1 Security Hardening ...................................................................................................... 12
2.2.1.1 CHANGE: Protect Production System against changes .............................................. 12
2.2.1.1.1 CHANGE-A: Protect Production System against changes – ABAP ........................................................ 12
1.2 Structure
This document is structured into the following chapters:
Chapter 1: Overview, Requirements and Guidelines
This chapter provides an overview of the purpose and the structure of this document
Chapter 2: Regulations
This chapter contains the requirements which have to be fulfilled by all systems governed by this
Security Baseline. It is kept as crisp as possible and limited to just name the requirements without
any further details or explanation. The idea behind this is to keep the list of all requirements as
short as possible to ease handling.
2 Regulations
This section contains the standards and regulations that are mandatory for all SAP systems.1 The
content of this chapter is restricted to focus on the requirements. Additional information on the
different requirements can be found in the “Addendum” in the “Requirements Details” chapter.
Each requirement in this chapter is marked with a unique identifier. This identifier is structured as
follows:
<Requirement identifier>-<Technology> with
• <Requirement identifier … > being a unique mnemonic identifier of the requirement
• <Technology> being selected from
“A” SAP [A]BAP Application Server
“J” SAP [J]ava Application Server
“H” SAP [H]ana
“O” [O]ther, like Web Dispatcher or SAPGUI
“P” BTP [P]latform
In addition, each requirement is marked as either [Critical], [Standard] or [Extended].
• [Critical] requirements are recommended to be included and addressed with priority, since
they relate to well-known especially critical security configurations or needs. They are
aligned with the selected set of security checks in the SAP EarlyWatch Alert Security
chapter and with those checks in the Security Optimization Service (SOS), which lead to an
overall red rating of an SOS report.
• [Standard] requirements are typical requirements that should be covered for all SAP
systems.
• [Extended] requirements go beyond the “Standard” requirements. They either extend the
security standards to higher level of protection or to additional areas. When transforming
the SAP Security Baseline template into an effective Security Baseline for a specific
organization or area, these requirements should be carefully reviewed and evaluated for
inclusion. There should be an explicit decision, which of these requirements shall be
selected for the specific Security Baseline in focus. Typically, only a subset of them will be
included.
1
Please note: The “mandatory” in this sentence is suggested for inclusion in the final organization-
specific baseline document. The SAP Security Baseline Template is not mandatory in any aspect.
2.1 Environment
In the Secure Operations Map, the “Infrastructure Security” layer is about requirements from SAP
systems and solutions to their environment. This version of the SAP Security Baseline Template
focuses on requirements towards the SAP solutions themselves. Thus, this chapter for
“Infrastructure Security” is without content for now. In a later version of the SAP Security Baseline
Template, it may get filled with requirements towards the non-SAP environment.
2.2 System
2.2.1 Security Hardening
2
Following SACF scenarios are not activated by Secure-by-Default in S/4HANA according to the
exception list in function SACF_SET_SBD: BC_GENERIC_REPORT_START,
BC_GENERIC_REPORT_START_BATCH, SACF_DEMO_SCENARIO, FIN_PARL_ACCTG_LEDGER.
2.3 Application
2.3.1 User and Identity Management
d) No subaccount platform user should be one of the following user types C, D or I user.
[Standard]
e) No subaccount platform user should be a public user (P user). [Critical]
BTP distinguishes between two different types of users: platform users and business users.
They correspond to a particular user in an identity provider, such as the default identity provider
(SAP ID Service) or a custom identity provider.
The users from the SAP ID Service are categorized in the following user classes:
P-user (public users) which can registered by persons themself
S-user (SAP Support Portal Users)
I- and D-users (internal SAP employees)
C-users (external SAP employees)
The following requirements apply to platform users of the global account, directories and multi-
environment subaccounts only.
a) The user base for platform users should be provided by the custom identity provider.
[Standard]
b) No platform user from default identity provider with external email address domain should
have viewer privileges. [Standard]
c) No platform user from default identity provider with external email address domain should
have administrative privileges. [Critical]
The following requirements apply to platform users (members) of Cloud Foundry organizations and
spaces only.
d) The user base for Cloud Foundry organization and space members should be provided by the
custom identity provider. [Standard]
e) No Cloud Foundry organization or space member from default identity provider with external
email address domain should be assigned to one of the following viewer privileges: Org
Auditor, Space Auditor [Standard]
f) No Cloud Foundry organization or space member from default identity provider with external
email address domain should be assigned to one of the following administrative privileges: Org
Manager, Space Developer, Space Manager [Critical]
The following requirements apply to platform users of Neo environment subaccounts only.
g) The user base for platform users should be provided by the custom identity provider.
[Standard]
h) No platform user from default identity provider should belong to the user classes C-, D- or I-
user. [Standard]
i) No platform user from default identity provider should be a public user (P-user). [Critical]
The following requirements apply to business users of Multi-Environment and Neo environment
subaccounts only.
j) The user base for business users should be provided by the custom identity provider.
[Standard]
k) No business user from default identity provider should belong to the user classes C-, D-, I-, or
P- user or has an external email address domain. [Critical]
snc/data_protection/max = 3
snc/data_protection/use = 3 or 9
[Standard]
c) The inbound RFC or GUI connections should be encrypted. Set the profile parameters
snc/accept_insecure_gui = U (or 0) and snc/accept_insecure_rfc = U (or 0) to
enable that the logon inbound connection is secured with SNC accepting user specific
exceptions.
Set the profile parameters snc/only_encrypted_gui = 1 and snc/only_encrypted_rfc
= 1 to enforce that the logon inbound connection is secured with SNC. [Extended]
d) Profile parameter snc/log_unencrypted_rfc = 2 [Extended]
e) Profile parameter system/secure_communication = ON (see Notes 2040644, 2362078)
[Extended][Standard]
f) Set profile parameters ssl/ciphersuites =
135:PFS:HIGH::EC_P256:EC_HIGH545:PFS:HIGH::EC_X25519:EC_P256:EC_HIGH
to allow TLSv1.2 only and ssl/client_ciphersuites =
150:PFS:HIGH::EC_P256:EC_HIGH150:PFS:HIGH::EC_X25519:EC_P256:EC_HIGH
which provides TLSv1.2 and allows TLSv1.0 as last-resort fallback to disable insecure
protocols, algorithms and key length. (see Note 510007) [Extended]
3
Attention! This can break communication connections, if the Gateway Access Control lists are not
existing or not linked via the profile parameters correctly!
The assignment of critical basis authorization should be tightly controlled. Especially the
assignment of the following critical basis authorizations should be avoided or limited as far as
possible:
1) Authorization to change or display all tables (S_TABU_DIS * respective S_TABU_NAM *)
2) Authorization to start all transactions, services and applications (S_TCODE * and
S_SERVICE * and S_START *)
3) Authorization to start all reports (S_PROGRAM *)
4) Authorization to debug / replace (S_DEVELOP for DEBUG with activity 01/02)
b) The default platform role collection Subaccount Administrator containing all critical
subaccount roles should only be assigned to a minimal count of platform users. [Standard]
The following requirements apply to platform users (members) of Cloud Foundry organizations and
spaces only.
c) The Cloud Foundry roles Org Manager, Space Manager and Space Developer should only
be assigned to a minimal count of members. [Standard]
The following requirements apply to Neo environment subaccounts only.
b)d) The default platform role Administrator containing the critical scope
manageCustomPlatformRoles should only be assigned to a minimal count of platform
users. [Standard]
c)e) Custom platform roles containing the critical platform scope
manageCustomPlatformRoles should only be assigned to a minimal count of platform
users. [Standard]
d)f) HTML5 application permission NonActiveApplicationPermission must not be
assigned to roles other than developer roles like AccountDeveloper. [Critical]
e)g) A dedicated HTML5 application permission for the application descriptor neo-app.json
must be available and should not be assigned to a business user role. [Standard]
h) Platform API OAuth clients with the critical scopes Manage Authorization, Manage
Account Members or Manage Audit Logs must be limited to the required minimum.
[Standard]
2.4 Process
2.4.1 Regulatory Process Compliance
Currently there are no specific regulations in this chapter.
icm/security_log =
LOGFILE=dev_icm_sec_%y_%m,LEVEL=3,MAXFILES=2,MAXSIZEKB=50000,SWITCHTF
=month
d) Monitoring of the Message Server must be active by setting several profile parameters.
The following item shows the recommended settings according to security setting of S/4HANA
(see note 2926224). You may use different settings. [Standard]
ms/HTTP/logging_0 = PREFIX=/,LOGFILE=$(DIR_LOGGING)/ms-
http-%y-%m-%d.log%o,MAXFILES=7,MAXSIZEKB=10000,SWITCHTF=day,LOGFORMAT
=%t %a %u %r %s %b %{Host}i
ms/http_logging = 1
2.5 Organization
Similar to the “Environment” layer, this “Organization” layer is also important to set the environment
for SAP systems and SAP cloud solutions. It sets the stage and gives needs and requirements as
input to be considered.
2.5.1 Awareness
Currently there are no specific regulations in this chapter.
3 Addendum
3.1 Requirements Details
3.1.1 Requirements List
5. Filter: Activate all events for audit classes dialog logon, RFC logon and transaction start for user
DDIC* in all clients ‘*’
Event
Filter Client User Name Audit Classes
Level
1 * * all critical
2 * SAP#* all all
SAPSUPPORT*
3 * (User IDs for SAP- all all
Support)
FF*
4 * all all
(Emergency User IDs)
5 * DDIC dialog logon, RFC logon, transaction start all
The SAP Audit Log service is a platform service which stores all the audit logs written on your
behalf by other platform services that you use. It allows you to retrieve the audit logs for your
subaccount via the Audit Log Retrieval API or view them using the SAP Audit Log Viewer
service.
The audit log data stored for your account will be retained for 90 days, after which it will be
deleted. Therefore, it is important to store them in another persistent storage.
The retention period for audit logs in the BTP Cloud Foundry environment cannot be changed.
Gathering audit log information on a regular basis and storing them in another persistent
storage can be done by exporting the audit logs using the SAP Audit Log Viewer service or via
the Audit Log Retrieval API.
See SAP Help Portal:
• Audit Logging in the Cloud Foundry Environment
• Audit Log Retrieval API Usage for Subaccounts in the Cloud Foundry Environment
• Audit Log Viewer for the Cloud Foundry Environment
b) The Audit Log of the Cloud Connector(s)T must be activated.he Audit Log Level of the Cloud
Connector(s) should be set to Security.
Audit Log Level Security:
Default value. The Cloud Connector writes an audit entry (Access Denied) for each request
that was blocked. It also writes audit entries, whenever an administrator changes one of the
critical configuration settings, such as exposed back-end systems, allowed resources, and so
on.
See SAP Help Portal:
• Audit Logging
https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-
US/63bd823990cb4d26a098869fe3a0a8a7.html
• Manage Audit Logs
Audit Log
https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-
US/d2425bdeaa1246e8aac12fb26c50eec6.html
You may want to validate if critical tables are defined with active table logging (Transaction
SE11 → “Technical settings” respective transaction SE13).
You can use report RDDPRCHK (or old report RDDTDDAT_BCE respective transaction
STDDAT in newer releases) to check various settings of tables:
- Table Authorization Group assignment
Corresponding Configuration Store TDDAT
- Delivery Class (S, W for system tables, A, L for application tables, C, E G for
customizing tables)
- Table Maintenance Status (no access using SE16, display using SE16, change
using SE16)
- Logging for customizing tables (on, off)
Corresponding Configuration Store LOGGED_TABLES
d)b) You control if customizing table logs get produced during imports of transports using the
transport parameter RECCLIENT. Activate this setting especially if your customizing
development system (where you get table logs using profile parameter rec/client) is not
stable.
Corresponding Configuration Store TRANSPORT_TOOL
See note 2671160 for minimal version information – you can either check the version of the
Kernel or the version of R3trans (the required version of tp is not listed in the note
anymore):
Kernel 721 patch 1112 R3trans: patch level 1119
Kernel 722 patch 625 R3trans: patch level 715
Kernel 745 patch 810 R3trans: patch level 824
Kernel 749 patch 521 R3trans: patch level 615
Kernel 753 patch 220 R3trans: patch level 312
Kernel 773 patch 220 R3trans: patch level 25
Kernel 774 patch 0 R3trans: patch level 12
The assignment of critical basis authorization should be tightly controlled. Especially the
assignment of the following critical basis authorizations should be avoided or limited as far as
possible:
Authorization to change or display all tables (S_TABU_DIS * respective S_TABU_NAM *)
Authorization to start all transactions (S_TCODE *)
Authorization to start all reports (S_PROGRAM *)
Authorization to debug / replace (S_DEVELOP for DEBUG with activity 01/02)
Authorization to display other users spool request (S_SPO_ACT)
Authorization to administer RFC connections (S_RFC_ADM)
Authorization to execute all Function Modules (S_DEVELOP for FUGR with activity 16)
Authorization to execute all Class Methods (S_DEVELOP for CLAS with activity 16)
Authorization to reset/change user passwords or to lock/unlock users (S_USER_GRP with
activity 05)
Authorization to change the authorization groups of tables (S_TABU_DIS with activity 02 for
table authorization group SS)
Authorization to administer queries (S_QUERY with activity 23)
Authorization to run any RFC function (S_RFC = *)
d) Protection of Password Hashes in ABAP Systems
1) Access to tables USR02, USH02 and USRPWDHISTORY must be protected against
unauthorized access by the means of assignments of table authorization group SPWD and
of restricted authorizations for authorization object S_TABU_DIS respectively S_TABU_NAM.
SAP note 1484692 lists some more tables. You may want to include these tables as well.
https://help.sap.com/viewer/ea72206b834e4ace9cd834feed6c0e09/Cloud/en-
US/f2260746ed8e446fafdeaaa8ab43e307.htmlPlatform Scopes
a)e) Custom platform roles containing Tthe critical platform scope
manageCustomPlatformRoles should only be assigned to a minimal count of platform
users.
Platform roles including the scope manageCustomPlatformRoles allow platform users to
change custom platform roles in all subaccounts (productive and non-productive) of this global
account belonging to the same region thus potentially tampering with other subaccounts. This
applies only to Feature Set A.
You find the documentation about platform scopes of the BTP Neo environment on the SAP Help
Portal: Platform Scopes
You find the documentation about platform scopes of the BTP Neo environment here:
https://help.sap.com/viewer/ea72206b834e4ace9cd834feed6c0e09/Cloud/en-
US/f2260746ed8e446fafdeaaa8ab43e307.html
b)f) HTML5 application permission NonActiveApplicationPermission must not be assigned
to roles other than developer roles like AccountDeveloper.
The HTML5 application permission NonActiveApplicationPermission should only be
assigned to developer roles like AccountDeveloper. This is very critical as other users than
developers otherwise could access old application versions which may contain an outdated
authorization concept and/or insecure code.
You find a description of this permission hereSee SAP Help Portal:
https://help.sap.com/viewer/ea72206b834e4ace9cd834feed6c0e09/Cloud/en-
US/a139548b21954e319a2a351e993bac40.htmlApplication Descriptor File - Authorization
c)g) A dedicated HTML5 application permission for the application descriptor neo-app.json must
be available and should not be assigned to a business user role.
By default, business users can access the application descriptor file of an HTML5 application. As
the information contained in the application descriptor could be useful for attackers (e.g. this
permission is required to access a protected resource), it should not be exposed to business
users.
For security reasons we recommend that you use a permission to protect the application descriptor
from being accessed by business users and to assign a developer-only role to this permission
(example: AccountDeveloper role).
You find a description of this file hereSee SAP Help Portal: Protecting the Application Descriptor
https://help.sap.com/viewer/ea72206b834e4ace9cd834feed6c0e09/Cloud/en-
US/a139548b21954e319a2a351e993bac40.html
d)h) Platform API OAuth clients with the critical scopes Manage Authorization, Manage
Account Members or Manage Audit Logs must be limited to the required minimum.
The scope Manage Authorization belongs to the authorization management REST API and
provides functionality to manage roles and their assignments to users for all applications,
application subscriptions and services in this subaccount.
See SAP Help Portal: Authorization Management API
The scope Manage Account Members belongs to the Platform Authorizations Management
API and allows you to manage the users authorized to access your subaccount.
See SAP Help Portal: Platform Authorization Management API
The scope Manage Audit Logs belongs to the audit log retention API and allows to change
the active retention period for the audit log data of the subaccount. If the retention period is set
to 1, respective subaccount audit log data gets erased after one day and may get lost forever if
there is no regular backup in place using the audit log retrieval API. We recommend to not
assign the critical scope Manage Audit Logs to any client, as changing the audit log
retention period is typically a one-time action during the initial subaccount setup. If it is required
to change the audit log retention period at a later point in time, create a dedicated platform API
OAuth client exactly for this purpose and delete it after the changes have been applied.
See SAP Help Portal: Audit Log Retention API
f) topics
• Secure development guide (e.g. based on the chapter “ABAP – Security Notes” in the
Keyword Documentation in the system and the Online Documentation at
https://help.sap.com/viewer/1a93b7a44ac146b5ad9b6fd95c1223cc/7.4.21/en-US )
• Manual code review as part of a quality gate
• Automated code scans (in case of ABAP, e.g. using the Code Vulnerability Analyzer, CVA)
You find more information about profile parameter service/protectedwebmethods in the next
chapter.
3.1.1.9.1 MSGSRV-A: Message Server Security (part of application server ABAP or Java or
stand-alone)
a) Currently there is no additional information for this requirement available.The Message Server
ports must be split into an internal port (for communication with the application servers) and an
external port (for communication with clients / users).
The Message Server internal port can be defined via profile parameter
rdisp/msserv_internal. This port must be blocked by all firewalls between the server
network and the client network so that no client can connect to this internal Message Server
port.
b) Currently there is no additional information for this requirement available.External monitoring of
the Message Server must be prohibited by setting
ms/monitor = 0
c) Currently there is no additional information for this requirement available.External
administration of the Message Server must be deactivated by setting ms/admin_port = 0
d) Currently there is no additional information for this requirement available.The Access Control
List of the Message Server must be maintained via profile parameter ms/acl_info and
should point to a secured directory
(This requirement is less critical for ABAP systems if profile parameter
system/secure_communication = ON according to requirement NETENC-A)
3.1.1.9.2 MSGSRV-J: Message Server Security (part of application server ABAP or Java or
stand-alone)
Currently there is no additional information for this requirement available.The rules from MSGSRV-A
apply for Java systems as well.
If this service is used, than restrict authorizations for the corresponding authorization object
B_ALE_RECV with field EDI_MES for allowed message types.
snc/data_protection/min = 3
snc/data_protection/max = 3
snc/data_protection/use = 3 or 9
Keep in mind that values 1 (secure authentication only) and 2 (data integrity protection) do not
establish encryption.
If you enforce that all external RFC connections are encrypted using parameter
snc/accept_insecure_rfc = 0 you might run into performance issues for internal RFC
connections. In this case you might want to set snc/accept_insecure_r3int_rfc = 1 to
allow unencrypted internal RFC connections.
If your SAP system is isolated by means of packet-filtering routers and you want to accept
conventional connections that are not protected with SNC parallel to SNC-protected
connections, then you must also set the appropriate parameters
(snc/accept_insecure_gui, snc/accept_insecure_rfc,
snc/accept_insecure_cpic).
Keep in mind that only profile parameters snc/only_encrypted_gui and
snc/only_encrypted_rfc would ensure that only SNC secured connections are possible –
which is beyond the scope of this security baseline (see SAP Notes 1690662 and 2122578 for
details).
The inbound RFC or GUI connections should be encrypted. Set the profile parameters
snc/accept_insecure_gui = U (or 0) and snc/accept_insecure_rfc = U (or 0) to
enable that the logon inbound connection is secured with SNC accepting user specific
exceptions.
Set the profile parameters snc/only_encrypted_gui = 1 and snc/only_encrypted_rfc
= 1 to enforce that the logon inbound connection is secured with SNC.
Set profile parameter snc/log_unencrypted_rfc = 2 to log all unencrypted RFC
connections. Use value 1 if you want to log unencrypted external RFC calls but accept
unencrypted internal RFC connections.
The Security Audit Log uses message BUJ to log such events.
Profile parameter system/secure_communication = ON (see Notes 2040644, 2362078)
Set profile parameters ssl/ciphersuites = 135:PFS:HIGH::EC_P256:EC_HIGH and
ssl/client_ciphersuites = 150:PFS:HIGH::EC_P256:EC_HIGH to provide TLSv1.2
but to allows TLSv1.0 as last-resort fallback to prevent interoperability problems (see Note
510007).
Set profile parameters ssl/ciphersuites = 801:PFS:HIGH::EC_P256:EC_HIGH and
ssl/client_ciphersuites = 816:PFS:HIGH::EC_P256:EC_HIGH for limiting protocol
versions to strict TLSv1.1 & TLSv1.2, which might create plenty of interoperability problems
with the installed base (see Note 2384290).
identify on system level who did such attacks, since they are logged under the name of another
user, who in fact is authorized to do, what was done.
Reason for the requirements:
There are lot of options to control password complexity: minimum length, mixed use of different
character types, checks against password history and similar. At the same time, enforcing a higher
password complexity does not necessarily make passwords more secure as this motivates writing
them down somewhere.
On the other side, passwords which are used by technical users and which no-one needs to
remember and to enter manually during operations, may be chosen quite complex and long. The
same may hold true for emergency passwords for rare exceptional cases, which are stored in a
secure place until needed. And if passwords are not needed to logon at all – e.g. since all users of
an ABAP system already have the possibility to logon via single sign-on – then the best
recommendation may be to disable and remove the passwords completely.
So, the optimization of a suitable password policy depends on the needs, use and circumstances.
Moreover, it may also differ even between different user groups in the same system.
Thus, we restricted our recommended requirements to a minimum set of very basic ones.
If a password is too short, it may be too easy to just get it. Passwords shorter than 8 characters are
no longer considered as state of the art, so we propose to enforce at least this minimum.
Initial passwords are often used to get new users on-board into a system. If they are not changed
within a reasonable time, then there are especially two risks: a) A user account is available but not
controlled by someone using it, so an attacker may take a chance on this. b) Initial passwords are
somehow communicated to the intended user. Thus, they exist somewhere outside the system –
e.g. in an e-mail, in a directory or in some note – and may be grabbed and misused from there.
Last: We know, that real and even complex passwords are misused in current cyberattacks. In a
preparation phase, attackers try to invade password-handling routines like logon-libraries on client
systems or to install key-loggers to get all keystrokes typed by the user. Once they were
successful, they grab real user-password-combinations to misuse them – often unnoticed by the
victim. Thus, passwords should have a limited life-time. We propose to set it to half-a-year, but you
may decide for a different value depending on your environment and needs.
In this sense, please use this SAP Security Baseline Template really as a template and modify it to
your needs! We can only suggest a structure and some recommended key requirements in general
and give you additional information. Only you can derive an optimized baseline for your specific
situation, environment and needs!
Value 5 is prohibited since it would enforce that passwords are only saved using old / unsecure
hash algorithms. Values 1-4 are not recommended either as old / unsecure hashes are generated.
Profile parameter login/password_compliance_to_current_policy
or PASSWORD_COMPLIANCE_TO_CURRENT_POLICY when using Security Policies
Enforce compliance of password with current password policy. With this configuration, users with
incompatible password will be prompted for a password change in the next logon. Users of type "S"
(system) and "S" (service) are not affected by this change.
Security Policies, which extend user types and password rules in ABAP, have been introduced with
SAP_BASIS 7.03 (= 7.00 Ehp 3). See transaction SECPOL respectively the online help:
Security Policy Attributes for Logon and Passwords
https://help.sap.com/saphelp_nw73ehp1/helpdata/en/e9/c15fb4c06340558898fda99d98cb0d/fram
eset.htm
Additional options, which you may wish to use within a system or for certain user groups, can be
found in “Profile Parameters for Logon and Password (Login Parameters)” (
https://help.sap.com/viewer/c6e6d078ab99452db94ed7b3b7bbcccf/7.4.19/en-
US/4ac3f18f8c352470e10000000a42189c.html).
Mapping between Security Policy Attributes and Profile Parameters:
Policy Attribute Profile Parameter Description Kernel-
Default
Logon Restrictions
DISABLE_PASSWORD_LOGON login/disable_password_logon Disable Password Logon 0
DISABLE_TICKET_LOGON n.a. Disable Ticket Logon 0
MAX_FAILED_PASSWORD_LOGON login/fails_to_user_lock Maximum Number of Failed Attempts 5
_ATTEMPTS
MAX_PASSWORD_IDLE_INITIAL login/password_max_idle_initi Validity of Unused Initial Passwords 0
al
MAX_PASSWORD_IDLE_PRODUCT login/password_max_idle_produ Validity of Unused Productive Passwords 0
IVE ctive
PASSWORD_LOCK_EXPIRATION login/failed_user_auto_unlock Automatic Expiration of Password Lock 0
SERVER_LOGON_PRIVILEGE n.a. Logon if login/server_logon_restriction=1 0
TENANT_RUNLEVEL_LOGON_PRI n.a.
VILEGE
Password Change Policies
MIN_PASSWORD_CHANGE_WAITT login/password_change_waittim Minimum Wait Time for Password Change 1
IME e
MIN_PASSWORD_DIFFERENCE login/min_password_diff No. of Different Chars When Changing 1
PASSWORD_CHANGE_FOR_SSO login/password_change_for_SSO Password Change Req. for SSO Logons 1
PASSWORD_CHANGE_INTERVAL login/password_expiration_tim Interval for Regular Password Changes 0
e
PASSWORD_COMPLIANCE_TO_CU login/password_compliance_to_ Password Change After Rule Tightening 0
RRENT_POLICY current_policy
PASSWORD_HISTORY_SIZE login/password_history_size Size of the Password History 5
Password Rules
CHECK_PASSWORD_BLACKLIST n.a. Check the Password Blacklist 1
MIN_PASSWORD_DIGITS login/min_password_digits Minimum Number of Digits 0
MIN_PASSWORD_LENGTH login/min_password_lng Minimum Password Length 6
MIN_PASSWORD_LETTERS login/min_password_letters Minimum Number of Letters 0
MIN_PASSWORD_LOWERCASE login/min_password_lowercase Minimum Number of Lowercase Letters 0
MIN_PASSWORD_SPECIALS login/min_password_specials Minimum Number of Special Characters 0
MIN_PASSWORD_UPPERCASE login/min_password_uppercase Minimum Number of Uppercase Letters 0
n.a. login/password_downwards_comp password downwards compatibility (8 / 40 1
atibility characters, case-sensitivity)
4
In HANA Release 1 the parameter maximum_unused_inital_password_lifetime is used
(missing “i” in “init(i)al”).
As of HANA Release 2 the parameter maximum_unused_initial_password_lifetime is
used instead.
SAP publishes new or updated Security Notes usually on the Patch Day which is the 2nd Tuesday
per month. (However, some notes are published on other dates, too.)
A Security Patch Process with clearly defined roles and responsibilities should be defined to
identify required Security Notes, to decide about the implementation, and to implement them in a
controlled manner.
You find the list of all Security Notes on the SAP Support Portal:
https://support.sap.com/securitynotes → Security Notes
This is a filtered list. To show all notes choose function “All Security Notes”
https://support.sap.com/notes → Expert Search
Use a filter for “Document Type” = “SAP Security Note”.
You may add another filter for the date range, e.g. to find all Security Notes of a specific patch
day. In this case you choose a date range starting one day after the previous patch day until to
the specific patch day.
Use application System Recommendations of the SAP Solution Manager to calculate relevant
notes per system. This application uses information about installed software component versions,
installed support packages or patches and in case of an ABAP system already implemented notes
to identify relevant notes.
Limitation: The application does not verify any manual configuration instructions like setting profile
parameters or activating switches which might be described in the notes. You have to develop your
own reporting infrastructure to analyze required manual configuration settings. Several
requirements described in this document refer to such configuration settings.
See https://support.sap.com/sysrec for details.
5
Following SACF scenarios are nor activated by Secure-by-Default in S/4HANA according to the
exception list in function SACF_SET_SBD: BC_GENERIC_REPORT_START,
BC_GENERIC_REPORT_START_BATCH, SACF_DEMO_SCENARIO, FIN_PARL_ACCTG_LEDGER.
Hint: When SAP Host Agent is upgraded to the latest version, the settings for sapadm are
automatically corrected to be compliant.
SAP System Security on Windows - SAP Help Portal
Permissions of OS users on Unix/Linux
If an SAP system is installed on Unix/Linux the account <sid>adm is used to run the SAP system.
The account <sid>adm must not have root permissions.
The account sapadm is used to run the SAP Host Agent. The account sapadm must not have root
permissions. The default shell /bin/false as defined in /etc/passwd of the account sapadm
must not be changed.
Hint: When SAP Host Agent is upgraded to the latest version, the settings for sapadm are
automatically corrected to be compliant.
SAP System Security Under UNIX/LINUX - SAP Help Portal
Secure shares / exports
Shares / NFS exports must not be accessible by everyone / all domain users. Shares / NFS
exports must only be accessible from dedicated systems and/or with dedicated accounts.
Shares used by the SAP System (e.g. saploc, sapmnt) must only be accessible for SAP system
users and dedicated admin accounts (e.g. <sid>adm).
File permissions for /usr/sap must be only granted to SAP admins and SAP technical users (e.g.
<sid>adm).
provider and connect Identity Authentication to your own corporate identity provider.
See SAP Help Portal: Platform Users
Business users use the applications that are deployed to SAP BTP. For example, the end users of
SaaS apps or services, such as SAP Workflow service or SAP Cloud Integration, or end users of
your custom applications are business users.
We recommend that you configure the Identity Authentication service as the identity provider and
connect Identity Authentication to your own corporate identity provider.
See SAP Help Portal: Business Users
Configuring your own managed identity provider for BTP users allows you to enforce custom
security configurations like two-factor authentication (2FA), password policies, administrative
access (lock users etc.) and to have full control over the userbase.Account Model, BTP Cloud
Foundry
https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-
US/8ed4a705efa0431b910056c0acdbf377.html
The following page provides an overview on syntax rules, common check types and useful best
practices for creating policy content:
https://support.sap.com/en/alm/sap-focused-run/expert-portal/configuration-and-security-
analytics/syntax-rules-and-policy-check-examples.html
In SAP S/4HANA and SAP BW/4HANA upgrades (with SUM), security settings are not adjusted
automatically. In some cases, preparations are necessary before configurations / parameters can
be switched to secure values in upgraded systems. That’s why configurations / parameters are not
changed during the upgrade process. Though it’s recommended to also apply the updated security
settings in system which have been upgraded from older SAP S/4HANA and BW/4HANA releases.
After the upgrade is completed, use the report RSPFRECOMMENDED to compare the actual system
values with the recommended security settings for security relevant profile parameters. (You find
this report in transaction RZ11 at menu item “Goto” → “All recommended values”, too.)
For all parameters deviating from the recommended value, carry out in detail:
• Review the deviations
• Understand the impact of the profile parameters (refer to the attached spreadsheet)
• Execute the necessary preparations
• Adjust the profile parameters to the recommended security setting after preparations have
been executed.
For more details see note 2926224 - Collection Note: New security settings for SAP S/4HANA and
SAP BW/4HANA using SL Toolset and SUM
4.1 Environment
The “Environment” layer looks at the non-SAP technical environment of SAP cloud offerings,
solutions and systems.
4.2 System
The “System” layer addresses the SAP platform layer which provides the foundation for all
applications operated upon it. The integrity and robustness of this platform is key to ensure that
application layer controls (e.g. the authorization systems) cannot be circumvented by lower level
vulnerabilities (e.g. SQL injections made possible via insecure code).
4.3 Application
The “Application” layer is about controls that are available in SAP standard applications and non-
standard applications built by customers. Here, protective measures are discussed on users and
privileges level as well as proper application design.
4.4 Process
The “Process” layer extends the pure security view with compliance aspects. While security
focuses on operating robust SAP applications preventing intentional and unintentional malfunctions
and compromise of confidentiality, regulatory compliance deals with the correct behavior of
applications with regards to policies and legal demands coming from the various jurisdictions SAP
systems are operated in.
4.5 Organization
4.5.1 Awareness
General security awareness is an important pre-condition to achieve security. Not everyone has to
be a security expert – but everyone needs to contribute on his part and also needs to identify when
security expertise should be called. Ignoring or even countering or circumventing security
regulations and mechanisms can endanger a whole landscape. “Awareness” thus also is directly
linked to user-friendliness and ease of handling of any security mechanisms or configuration.
including-client-001-and-066
or SAP note 1749142
Security of the SAProuter
https://scn.sap.com/community/security/blog/2013/11/13/security-of-the-saprouter
Life (profile SAP_NEW), the Universe (role SAP_NEW) and Everything (SAP_ALL)
https://scn.sap.com/community/security/blog/2014/02/17/life-profile-sapnew-the-universe-
role-sapnew-and-everything-sapall
ABAP Development Standards concerning Security
https://scn.sap.com/community/security/blog/2010/05/28/abap-development-standards-
concerning-security
Export/Import Critical Authorizations for RSUSR008_009_NEW
https://scn.sap.com/community/security/blog/2012/08/14/exportimport-critical-authorizations-
for-rsusr008009new
SAP Solution Manager - Configuration Validation WIKI
https://scn.sap.com/docs/DOC-
58830https://wiki.scn.sap.com/wiki/display/TechOps/ConfVal_Home
SAP HANA Audit Trail - Best Practice
https://scn.sap.com/docs/DOC-
51098https://help.sap.com/docs/SAP_HANA_PLATFORM/b3ee5778bc2e4a089d3299b82ec
762a7/35eb4e567d53456088755b8131b7ed1d.html
How to Define Standard Roles for SAP HANA Systems [broken link]
https://scn.sap.com/docs/DOC-53974
Blog: HTTPURLLOC demystified [broken link]
https://scn.sap.com/community/netweaver-as/blog/2014/06/04/table-httpurlloc-demystified
Blog: Using Proxies
https://wiki.scn.sap.com/wiki/display/BSP/Using+Proxies
[16] Documentation: Configuration Table HTTPURLLOC
https://help.sap.com/saphelp_nw70ehp2/helpdata/en/42/d547ab30b6473ce10000000a114e5
d/frameset.htmhttps://help.sap.com/docs/SAP_NETWEAVER_700/12abecf16c5310148cb8a
6bccb9f4277/copye800356cf1834ba1a3f3e756b4acaac8.html?version=7.0.39
[17] Documentation: Using Configuration Validation for Regular Checks of Compliance
https://help.sap.com/viewer/bdd095d01c7941c8b5d4c27e04da7315/7.2.10/en-
US/d4011b523f0c9e38e10000000a174cb4.htmlhttps://help.sap.com/viewer/bdd095d01c794
1c8b5d4c27e04da7315/7.2.10/en-US/d4011b523f0c9e38e10000000a174cb4.html
[18] Security Guides for SAP NetWeaver
SAP NetWeaver Security Guide
https://help.sap.com/docs/SAP_NETWEAVER_750/621bb4e3951b4a8ca633ca7ed1c0aba2/
4aaf6fd65e233893e10000000a42189c.html
SAP NetWeaver Application Server for ABAP Security Guide
https://help.sap.com/docs/SAP_NETWEAVER_750/864321b9b3dd487d94c70f6a007b0397/
4dde53b3e9142e51e10000000a42189c.html
SAP NetWeaver Application Server for Java Security Guide
https://help.sap.com/docs/SAP_NETWEAVER_750/2f8b1599655d4544a3d9c6d1a9b6546b/
57d8bfcf38f66f48b95ce1f52b3f5184.html
Examples:
6 Index
Authorization objects
Public user ...................................................... 65
B_ALE_RECV ................................................50
Subaccount 17, 21, 23, 24, 31, 33, 34, 36, 44, 49
S_DATASET ...................................................15
BTP role collections
S_DEVELOP ...................................................32 Directory Administrator ..................... 33
S_PATH ..........................................................15 Global Account Administrator .......... 33
S_PROGRAM ...................................................32 Subaccount Administrator ................... 33
S_QUERY ........................................................32 BTP roles
S_RFC ...................................................... 32, 81 AccountDeveloper ............................33, 45
S_RFC_ADM ...................................................32 Administrator ...................................33, 44
S_SCR ............................................................59 BTP scopes
S_SERVICE ...................................................32 Manage Account Members ..............33, 45
S_SPO_ACT ...................................................32 Manage Audit Logs ..........................33, 45
S_START ............................................ 19, 32, 72 Manage Authorization ...................33, 45
S_TABU_DIS .......................................... 31, 32 manageCustomPlatformRoles .......33, 44
S_TABU_NAM .......................................... 31, 32 Clickjacking Framing Protection ........................ 72
S_TCODE ........................................................32 Clients
S_USER_GRP ................................................32 000 ................................................................ 22
Authorization profiles 001 ...........................................................17, 53
S_A.TMSADM ................................................22 066 .....................................................17, 22, 53
SAP_ALL ...................................... 21, 31, 43, 81 Configuration Stores
SAP_NEW ...................................... 31, 43, 46, 81 ABAP_INSTANCE_PAHI............................. 41
BTP CLIENTS ....................................................... 40
Beta features............................................. 21, 49 LOGGED_TABLES ........................................ 42
Business user...................................................23 TDDAT............................................................ 41
Cloud Connector ..................... 17, 21, 36, 75, 76 TRANSPORT_TOOL ...................................... 42
Cloud Foundry ..................................... 23, 31, 33 CSS Style Sheet .................................................. 72
Directory .........................................................23 Customizing
Global account .............................. 23, 31, 44, 64 REF_USER_CHECK .................................22, 72
Identity Provider ....................................... 23, 31 Emergency users ................................................ 38
Multi environment ..........................................24 Files
Neo environment .......................... 24, 33, 34, 44 prxyinfo ...............................................30, 58
Platform user ...................................... 23, 24, 31 reginfo ..................................................29, 79
SAP Security Baseline Template
icm/accept_forwarded_cert_via_ht login/password_compliance_to_cur
tp ................................................................14 rent_policy.........................26, 54, 56, 73
icm/HTTP/admin_<num>................... 14, 25 login/password_downwards_compati
bility.....................................25, 54, 56, 74
icm/HTTP/auth_<xx> ................................ 14, 47
login/password_expiration_time ..25, 27, 54, 56
icm/HTTP/error_templ_path....... 14, 47
login/password_hash_algorithm ..............27, 74
icm/HTTP/logging_ .........................................73
login/password_history_size ..27, 56
icm/HTTP/logging_0 .............................35
login/password_logon_usergroup 27
icm/HTTP/logging_client_...............................74
login/password_max_idle_initial
icm/HTTP/logging_client_0.............35 ............................................. 25, 27, 54, 55, 73
icm/security_log ............................ 35, 74 login/password_max_idle_producti
icm/server_port_<num> ................ 25, 52 ve ....................................................27, 55, 73
icm/SMTP/show_server_header ........13 login/show_detailed_errors................13, 47, 73
icm/trace_secured_data ....................14 login/ticket_only_by_https ....30, 71
icm/trusted_reverse_proxy_<num> login/ticket_only_to_host ............ 30
.....................................................................14 ms/acl_info ........................................15, 30
is/HTTP/show_detailed_errors13, 47 ms/admin_port ........................................ 15
is/HTTP/show_server_header ..........13 ms/HTTP/logging_ .......................................... 74
ixml/dtd_restriction.........................16 ms/HTTP/logging_0 ............................... 35
login/disable_cpic ....................... 16, 74 ms/http_logging ...............................35, 74
login/disable_password_logon ....26, ms/monitor ................................................ 15
27, 55
rdisp/gui_auto_logout ..................... 74
login/failed_user_auto_unlock ..27,
55 rdisp/msserv_internal ..................... 15
login/fails_to_user_lock ......... 27, 55 rdisp/TRACE_HIDE_SEC_DATA ............ 14
login/min_password_diff ........... 26, 55 rdisp/vbdelete .................................19, 74
login/min_password_digits....... 26, 56 rec/client ...............................12, 41, 42, 72
login/min_password_letters .... 26, 56 rfc/callback_security_method16, 74