Security-News zu SAP S/4HANA®

| Autor/in:hokomedia

Mit den letzten Release-Ständen von SAP S/4HANA® hat SAP eine Vielzahl von Sicherheitseinstellungen optimiert. Waren viele Default-Einstellungen, z.B. von Systemparametern, auf einem niedrigen Sicherheitslevel, so wurde dies sukzessive optimiert. Der SAP-Hinweis 2926224 (Collection Note: New security settings for SAP S/4HANA and SAP BW/4HANA using SL Toolset and SUM) zeigt die Änderungen seit dem S/4HANA-Release 1909 auf. Am SAP-Hinweis ist die Excel-Datei New_Security_Settings-Install&Copy&Conversion.xlsx angehangen, in die die einzelnen Änderungen tabellarisch aufgelistet sind. In diesem Artikel sind wesentliche Einstellungen beschrieben. Einige davon können Auswirkungen auf die Berechtigungen haben. Daher sind vor jedem Release-Wechsel diese Änderungen zu prüfen.

 

1. Berechtigungen

1.1 Deaktivierung von Berechtigungsobjekten

Mit dem Parameter auth/object_disabling_active kann verhindert werden, dass Berechtigungsobjekte deaktiviert werden. Der Standardwert des Parameters war bisher Y, was bedeutet, dass Deaktivierungen möglich sind. Um dies auszuschließen musste der Parameter bisher explizit auf den Wert N gesetzt werden. Mit SAP S/4HANA 1909 wurde der Standardwert angepasst:

Parameter auth/object_disabling_active:

Bisheriger Standardwert:                             Y (Deaktivierung möglich)

Standardwert ab SAP S/4HANA 1909:      N (Deaktivierung nicht möglich)

 

1.2 Transaktionsaufrufe durch CALL TRANSACTION

Innerhalb eines ABAP-Programms können weitere Transaktionen aufgerufen werden. Dies erfolgt mit dem Befehl CALL TRANSACTION . Ob dann auch eine entsprechende S_TCODE-Berechtigung geprüft wird, kann individuell konfiguriert werden. Hierzu werden der Systemparameter auth/check/calltransaction und die Tabelle TCDCOUPLES verwendet. Bisher war der Standardwert für den Parameter auth/check/calltransaction der Wert 2. Das bedeutet, dass die Berechtigungsprüfung gem. der Konfiguration in Tabelle TCDCOUPLES durchgeführt wird. Ist in der Tabelle nicht explizit angegeben, dass eine Berechtigungsprüfung durchgeführt werden soll (Feld OKFLAG = ), so erfolgt keine Berechtigungsprüfung. Mit SAP S/4HANA 1909 wurde der Standardwert auf 3 gesetzt, so dass Berechtigungsprüfungen auch durchgeführt werden, wenn dies nicht explizit im Feld OKFLAG angegeben ist. Dies kann zur Folge haben, dass Benutzer bei Aktionen, für die sie bisher berechtigt waren, auf Berechtigungsfehler stoßen.

Parameter auth/check/calltransaction:

Bisheriger Standardwert:                             2

Standardwert ab SAP S/4HANA 1909:      3

 

1.3 Berechtigungen zum Ausführen von WebDynpros

Im Gegensatz zu den Berechtigungsobjekten für Transaktionsstarts (S_TCODE) und SAP-Fiori-Apps (S_SERVICE) kann für Web Dynpros eingestellt werden, ob überhaupt eine Berechtigungsprüfung beim Start (Berechtigungsobjekt S_START) erfolgen soll. Dies erfolgt mittels der Tabelle USOBAUTHINACTIVE. Bisher war der Standard, dass das Berechtigungsobjekt S_START beim Start von WebDynpros nicht geprüft wird. Startberechtigungen sollten aber grundsätzlich geprüft werden, da sonst evtl. Anwendungen aufgerufen werden können, für die Anwender nicht autorisiert sind. Mit SAP S/4HANA 2021 wurde der Standardwert so gesetzt, dass bei jedem Start eines WebDynpros das Berechtigungsobjekt S_START geprüft wird (siehe Abbildung 1). Dies kann zur Folge haben, dass Benutzer bei Aktionen, für die sie bisher berechtigt waren, auf Berechtigungsfehler stoßen.

Startberechtigung für WebDynpros in Tabelle USOBAUTHINACTIVE:

Bisheriger Standardwert:                             X (keine Prüfung von S_START)

Standardwert ab SAP S/4HANA 2021:      (S_START wird geprüft)

Abbildung 1: Standardwert für die Startberechtigung für WebDynpros ab SAP S/4HANA 2021

 

1.4 Schaltbare Berechtigungen

Mit den schaltbaren Berechtigungen können Berechtigungsobjekte explizit zur Nutzung freigeschaltet bzw. können für Funktionsbausteine Berechtigungsprüfungen aktiviert werden. Hierfür liefert SAP über 300 Szenarien aus, die einzeln aktiviert werden können. Dies musste bisher kundenseitig erfolgen. Die Szenarien waren standardmäßig nicht aktiviert. Seit SAP S/4HANA 2020 werden die Szenarien aktiviert ausgeliefert.

Abbildung 2 (Transaktion SACF) zeigt aktivierte Szenarien aus dem Bereich FI. Da mit diesen Szenarien zusätzliche Berechtigungsprüfungen aktiviert werden, ist es möglich, dass Benutzer auf Berechtigungsfehler stoßen.

Abbildung 2: Produktive FI-Szenarien

 1.5 Neue Berechtigungsobjekte

Tabelle 1 listet neue Berechtigungsobjekte für sicherheitsrelevante Vorgänge auf.

Berechtigungsobjekt

Beschreibung

F_AUDIT_OI

Buchhaltungsbeleg: Offene Posten für Wirtschaftsprüfer

Mit dem Berechtigungsobjekt S_BRWS_TIM kann ein Prüfungszeitraum definiert und somit der Zugriff auf Daten in Tabellen auf diesen Zeitraum eingegrenzt werden. Mit dem Objekt F_AUDIT_OI können zusätzlich offene Posten berechtigt werden, die vor dem Prüfungszeitraum gebucht wurden, aber mindestens bis zum Beginn des Prüfungszeitraums noch offen waren.

S_IMG_VIEW

SAP-Einführungsleitfaden Ansicht

Einschränkung der Anzeige des Einführungsleitfaden. Hierfür muss das Szenario “BC_CUS_SIMG_VIEW” in den schaltbaren Berechtigungen aktiviert sein.

S_SAL_LOG

Security Audit Log Einträge

Mit diesem Berechtigungsobjekt kann die Auswertung des Security Audit Log eingeschränkt werden auf z.B. das System (SID), auf AuditLog-Ereignisse und auf auszuwertende Benutzer.

S_ST05

Dediz. Berechtigungsprüf. mit hoher Granularität f. Tracing

Mit diesem Berechtigungsobjekt kann die Anzeige auf die verschiedenen Traces eingeschränkt werden, z.B. SQL-Trace, RFC-Trace etc. Berechtigt werden kann die Aktivierung, Deaktivierung und die Auswertung.

S_USER_GRD

Benutzerstammpflege: Definition von Benutzergruppen

Explizite Berechtigung zur Pflege und Anzeige von Benutzergruppen.

S_VRS_CPY

Berechtigungsobjekt für die Versionskopie

Dieses Berechtigungsobjekt berechtigt das Kopieren von Versionshistorien aus anderen Systemen (Transaktion SVRS_VRS_COPY).

Tabelle 1: Neue sicherheitsrelevante Berechtigungsobjekte

 

2. Anmeldesicherheit

Die Parameter zur Steuerung der Anmeldesicherheit waren bisher im Auslieferungszustand auf einem niedrigen Sicherheitslevel. Einige der Parameter wurden nun im Standard restriktiver ausgeprägt, siehe Tabelle 2.

Parameter

S/4HANA-Release

Alter Wert

Neuer Wert

rdisp/gui_auto_logout

Zeitraum für die automatische Abmeldung von Benutzern nach Inaktivität.

1909

0

3600

icf/reject_expired_passwd

Beim Wert 0 werden Anmeldungen über das Internet Communication Framework (ICF) von Benutzern mit Initialkennwort bzw. abgelaufenem Kennwort von SAP akzeptiert. Beim Wert 1 wird dies unterbunden.

2020

0

1

rfc/reject_expired_passwd

Beim Wert 0 werden RFC-Anmeldungen von Benutzern mit Initialkennwort bzw. abgelaufenem Kennwort von SAP akzeptiert. Beim Wert 1 wird dies unterbunden.

1909

0

1

login/disable_cpic

Legt fest, ob CPIC-Verbindungen zulässig sind. CPIC-Verbindungen sind obsolet.

1909

0

1

login/min_password_lng

Legt die minimale Kennwortlänge fest.

2020

6

10

login/password_compliance_to_current_policy

Bewirkt beim Wert 1, dass bei der Anmeldung überprüft wird, ob das aktuelle Kennwort den eingestellten Kennwortrichtlinien entspricht.

2020

0

1

login/password_downwards_compatibility

Legt fest, ob Kennwörter abwärtskompatibel zu älteren Systemen gespeichert werden. Dies erhöht die Gefahr, dass Kennwörter durch Brute-Force-Attacks gehackt werden können. Beim Wert 0 werden Kennwörter nicht abwärtskompatibel gespeichert.

1909

1

0

login/password_hash_algorithm

Legt die Komplexität der Kennwortverschlüsselung fest.

1909

encoding=RFC2307, algorithm=iSSHA-1, iterations=1024, saltsize=96

encoding=RFC2307, algorithm=iSSHA-512, iterations=15000, saltsize=256

login/password_max_idle_initial

Legt fest, wie viele Tage ein vom Administrator gesetztes Kennwort (Initialkennwort) für einen Benutzer gültig ist.

2020

0

7

login/password_max_idle_productive

Legt fest, wie viele Tage ein vom Benutzer gesetztes Kennwort (produktives Kennwort) gültig ist. Meldet sich der Benutzer innerhalb dieser Zeitspanne nicht an, verfällt das Kennwort, und eine Anmeldung ist nicht mehr möglich.

2020

0

180

login/show_detailed_errors

Beim Wert 1 gibt das SAP-System detaillierte Fehlermeldungen aus, wenn beim Anmeldevorgang ein Fehler aufgetreten ist. Dies birgt die Gefahr, dass dadurch potenzielle Angreifer Informationen zur Existenz eines Benutzers bekommen können.

2020

1

0

Tabelle 2: Neue Standardwerte der Systemparameter zur Anmeldesicherheit

 

3. Tabellenprotokollierung

Die Tabellenprotokollierung war bisher standardmäßig deaktiviert. Der Parameter rec/client musste explizit aktiviert werden. Mit SAP S/4HANA 2021 wird dieser Parameter nun mit dem Standardwert ALL ausgeliefert (SAP-Hinweis 3093760). Das bedeutet, dass die Tabellenprotokollierung in allen Mandanten des Systems aktiv ist. In der Begründung dazu weist SAP auch auf die Auswirkung hin bzgl. der Größe der Protokolle (Auszug aus SAP-Hinweis 3093760):

„Die Erfahrung hat gezeigt, dass die Tabellenprotokollierung in der Regel weder im Produktivsystem noch in Customizing- und Entwicklungsumgebungen Probleme verursacht.

Die Systembetreiber müssen die Größe der Tabellenprotokolle überprüfen und gegebenenfalls die Archivierung aktivieren.“

Parameter rec/client:

Bisheriger Standardwert:                             OFF (Tabellenprotokollierung ist deaktiviert)

Standardwert ab SAP S/4HANA 2021:      ALL (Tabellenprotokollierung ist für alle Mandanten aktiv)

Neben dem Systemparameter rec/client wurde auch der Transportparameter RECCLIENT angepasst, siehe nächster Abschnitt.

 

4. Transporte

Auch zu Transportparametern wurden mit SAP S/4HANA 2021 die Standardwerte angepasst. Dies betrifft die drei Parameter in Tabelle 3. Die neuen Standardwerte werden gespeichert in der Tabelle TPSYSTEMDEFAULTS (verfügbar ab SAP S/4HANA 2021), siehe Abbildung 3. Diese Werte werden vom System genutzt, wenn die Transportparameter nicht explizit gesetzt sind.

Abbildung 3: Tabelle TPSYSTEMDEFAULTS – Vorgabewerte für Transportparameter

 

Transportparameter

Alter Wert

Neuer Wert

RECCLIENT

Der Parameter legt fest, ob beim Import von Tabellenänderungen über Transporte im Zielsystem Protokolle erzeugt werden. Dies ist nun standardmäßig in allen Mandanten der Fall.

OFF

ALL

TLOGOCHECK

Unter bestimmten Voraussetzungen ist es möglich, mit Transportaufträgen Tabelleneinträge zu übertragen, die normalerweise nicht übertragbar sind. Um das zu unterbinden wurde eine Konsistenzprüfung für Transportaufträge implementiert. Diese wird mit dem Transportparameter TLOGOCHECK = TRUE aktiviert. Diese Konsistenzprüfung ist nun standardmäßig aktiv.

FALSE

TRUE

VERS_AT_IMP

Durch das Setzen des Transportparameters VERS_AT_IMP auf den Wert ALWAYS in einem System wird erreicht, dass dort beim Import von versionierbaren Objekten (Programmen, Funktionsbausteinen usw.) automatisch Versionen erzeugt werden. Dies ist nun standardmäßig aktiv.

NEVER

ALWAYS

Tabelle 3: Neue Standardwerte zu Transportparametern

 

 5. Security AuditLog (ABAP und HANA)

Das Security AuditLog wird genutzt, um sicherheitsrelevante Vorgänge aufzuzeichnen. Es war bisher sowohl in ABAP als auch in der HANA-Datenbank im Auslieferungszustand deaktiviert. Mit SAP S/4HANA 2021 werden nun Standardkonfigurationen für das Security AuditLog ausgeliefert und es ist standardmäßig aktiviert.

 

5.1 Security AuditLog (ABAP Stack)

Mit dem SAP-Hinweis 2676384 (Best-Practice-Konfiguration des Security Audit Logs) liefert SAP einen Vorschlag zur Konfiguration des Security AuditLog aus. Diese Konfiguration wird standardmäßig mit SAP HANA 2021 ausgeliefert und ist aktiviert, siehe Abbildung 4.

Es sind standardmäßig drei Filter aktiv mit folgenden Einstellungen:

Filter 1:       Protokollierung aller Mandanten (“*”)

Protokollierung von Benutzer SAP* (“SAP#*” – durch das #-Zeichen wir der * nicht als generischer Wert, sondern als Zeichen erkannt)

Protokollierung aller Events

Filter 2:       Protokollierung von Mandant 066 (“066”)

Protokollierung aller Benutzer (“*”)

Protokollierung aller Events

Filter 2:       Protokollierung aller Mandanten (“*”)

Protokollierung aller Benutzer (“*”)

Protokollierung aller Events, außer:

AU5          Erfolgreicher RFC-Login

AUK          Erfolgreicher RFC-Funktionsbausteinaufruf

AUW        Report erfolgreich gestartet

CUV          Erfolgreicher Aufruf eines Services

DUR          Erfolgreicher JSON RPC Aufruf eines Funktionsbausteins

EUE           Erfolgreicher RFC-Funktionsbausteinaufruf

Abbildung 4: Standardkonfiguration des Security AuditLog in SAP S/4HANA 2021

 

 5.2 AuditLog (SAP HANA-Datenbank)

Eine Best-Practice-Konfiguration des SAP HANA AuditLog liefert der SAP-Hinweis 3016478 (HANA Audit Policies for S/4HANA). Um die empfohlenen Einstellungen als Policies zu übernehmen, können von GitHub drei Skripte runtergeladen werden (https://github.com/SAP-samples/s4hana-hana-audit-policies), siehe Abbildung 5.

Abbildung 5: Skripte in GitHub zur Definition von Audit Policies

Seit SAP S/4HANA 2021 werden diese Policies in der Tenant-DB der HANA-Datenbank vordefiniert und aktiviert ausgeliefert. Für die System-DB werden diese Policies standardmäßig nicht ausgeliefert. Hier können die Skripte aus GitHub genutzt werden.

Abbildung 6 zeigt die Policies in der HANA-DB. Tabelle 4 listet die Events auf, die standardmäßig protokolliert werden.

Abbildung 6: Vordefinierte Audit-Policies in SAP HANA

Policy

Protokollierte Events

_SAP_authentication provider

CREATE LDAP PROVIDER

ALTER LDAP PROVIDER

DROP LDAP PROVIDER

VALIDATE LDAP PROVIDER

CREATE SAML PROVIDER

ALTER SAML PROVIDER

DROP SAML PROVIDER

CREATE JWT PROVIDER

ALTER JWT PROVIDER

DROP JWT PROVIDER

_SAP_authorizations

GRANT ANY

REVOKE ANY

_SAP_certificates

CREATE CERTIFICATE

DROP CERTIFICATE

CREATE PSE

ALTER PSE

DROP PSE

_SAP_clientside encryption

ALTER CLIENTSIDE ENCRYPTION COLUMN KEY

CREATE CLIENTSIDE ENCRYPTION COLUMN KEY

DROP CLIENTSIDE ENCRYPTION COLUMN KEY

CREATE CLIENTSIDE ENCRYPTION KEYPAIR

DROP CLIENTSIDE ENCRYPTION KEYPAIR

ALTER CLIENTSIDE ENCRYPTION KEYPAIR

_SAP_configuration changes

SYSTEM CONFIGURATION CHANGE

STOP SERVICE

_SAP_designtime privileges

(nur erfolgreiche Events)

EXECUTE  für die folgenden Prozeduren aus dem Schema _SYS_REPO:

REVOKE_APPLICATION_PRIVILEGE

GRANT_APPLICATION_PRIVILEGE

REVOKE_ACTIVATED_ROLE

REVOKE_ACTIVATED_ANALYTICAL_PRIVILEGE

GRANT_ACTIVATED_ANALYTICAL_PRIVILEGE

REVOKE_SCHEMA_PRIVILEGE_ON_ACTIVATED_CONTENT

GRANT_SCHEMA_PRIVILEGE_ON_ACTIVATED_CONTENT

REVOKE_PRIVILEGE_ON_ACTIVATED_CONTENT

GRANT_PRIVILEGE_ON_ACTIVATED_CONTENT

GRANT_ACTIVATED_ROLE

_SAP_license addition

SET SYSTEM LICENSE

_SAP_license deletion

UNSET SYSTEM LICENSE

_SAP_recover database

BACKUP CATALOG DELETE

BACKUP DATA

RECOVER DATA

_SAP_session connect

(nur nicht erfolgreiche Events)

CONNECT

_SAP_session validate

VALIDATE USER

_SAP_structured privileges

(nur erfolgreiche Events)

CREATE STRUCTURED PRIVILEGE

DROP STRUCTURED PRIVILEGE

ALTER STRUCTURED PRIVILEGE

_SAP_user administration

(nur erfolgreiche Events)

CREATE USER

CREATE ROLE

DROP USER

DROP ROLE

ALTER USER

ALTER ROLE

CREATE USERGROUP

ALTER USERGROUP

DROP USERGROUP

Tabelle 4: Standardmäßig protokollierte Events in der HANA-DB für SAP S/4HANA 2022

 

6. Verbuchung

Daten werden in Verbuchungstabellen zwischengespeichert, bevor sie in die eigentlichen Tabellen übernommen werden. Hierbei kann es zu technischen Verarbeitungsfehlern kommen. Dies hat zur Folge, dass Buchungen nicht verarbeitet werden, sondern in den Verbuchungstabellen verbleiben. Im Fall von Buchhaltungsbelegen sind z.B. die Belegnummern dann bereits vergeben. Mit dem Parameter rdisp/vbdelete wird festgelegt, nach wie vielen Tagen abgebrochene Verbuchungssätze automatisch vom System gelöscht werden. Der Standardwert war bisher 50, was bedeutet, dass abgebrochene Verbuchungssätze nach 50 Tagen automatisch von System gelöscht wurden. Seit SAP S/4HANA 1909 ist der Standardwert »0«, was bedeutet, dass abgebrochene Buchungen nicht automatisch gelöscht werden.

Parameter rdisp/vbdelete:

Bisheriger Standardwert:                             50 (Löschung nach 50 Tagen)

Standardwert ab SAP S/4HANA 1909:      0 (abgebrochene Buchungen werden nicht gelöscht)

7. RFC-Sicherheit

In SAP S/4HANA 1909 haben zwei Systemparameter, welche die RFC-Sicherheit betreffen, neue Standardwerte erhalten, siehe Tabelle 5.

Parameter

S/4HANA-Release

Alter Wert

Neuer Wert

auth/rfc_authority_check

Legt fest, ob bei Anmeldungen über eine RFC-Verbindung die Berechtigung zur Anmeldung überprüft wird.

1909

1

6

rfc/callback_security_method

Erlaubt oder verweigert die Ausführung von RFC-Callbacks gem. der konfigurierten Genehmigungslisten und erzeugt einen Eintrag im Security Audit Log.

1909

1

3

Tabelle 5: Parameter zur RFC-Sicherheit

 

Fazit

Mit den neuen Release-Ständen von SAP S/4HANA verbessert SAP fortlaufend die Anforderungen an „Security by default“. Standardeinstellungen werden so ausgeliefert, dass sie einem hohen Sicherheitslevel entsprechend. Dies hat Auswirkungen u.a. auf die Berechtigungen. Bei einer Migration auf SAP S/4HANA bzw. einem S/4HANA Release-Wechsel sind daher diese Einstellungen explizit zu prüfen. Die unternehmensinternen SAP-Sicherheitskonzepte sollten an die neuen Vorgaben angepasst werden, um die Sicherheit der Systeme zu erhöhen.

Quelle: Revisionspraxis PRev, Ausgabe Februar 2022
www.prev.de

Autor: Thomas Tiede