Dieser Beitrag behandelt Risikothemen, die vom Entwicklungssystem ausgehen und sich auf die nachgelagerten Systeme bis hin zum Produktivsystem auswirken. Neben Änderungen im Entwicklungs- und Customizing-Umfeld sind dies auch die systemspezifischen Transportprozess-Schritte und vorhandenen Schnittstellen.
Entwicklung
Da Entwicklerberechtigungen einer Vollberechtigung entsprechen, sollten diese nur restriktiv vergeben werden. Dies gilt vor allen Dingen für die Berechtigung zum „Debugging mit Replace“ (siehe „Gesetzes kritische Berechtigungen“). Das Risiko durch falsch vergebene Entwicklerberechtigungen ist auch durch das Wegfallen des Zusatz-Schutzes über Entwickler- und Objektschlüssel in S/4 HANA Systemen gestiegen (siehe u.a. SAP-Hinweis 2309060). Entwicklerberechtigungen für originale SAP-Objekte sollten hier also nur noch auf Antrag vergeben werden, um unautorisierte Modifikationen zu vermeiden.
Falls Entwicklerschlüssel in dem vorhandenen SAP-Release also noch relevant sind, sollten zunächst die vorhandenen Entwicklerschlüssel in der Tabelle DEVACCESS überprüft und mit den für die Entwicklung vorgesehenen Benutzern abgeglichen werden.
Abbildung 1: Anzeige der Tabelle DEVACCES
Weiterhin sind die vorhandenen Entwicklerberechtigungen zu prüfen. Die wesentlichen Berechtigungen sind in der nachfolgenden Tabelle aufgelistet:
Berechtigungsobjekt | Feld | Wert |
Pflegeberechtigungen in der Entwicklungsumgebung allgemein | ||
S_DEVELOP | ACTVT Aktivität | 01 (Anlegen) oder 02 (Ändern) oder 06 (Löschen) |
Entwicklerberechtigung, SAP-Namensraum | ||
S_DEVELOP | ACTVT Aktivität | 01 (Anlegen) oder 02 (Ändern) oder 06 (Löschen) |
OBJNAME Objektname | Alles außerhalb des Kundennamensraums (y*, z*, /*) |
Customizing
Customizing wird in den meisten Fällen über die Transaktion SPRO durchgeführt. Dies ist jedoch nur die Einstiegstransaktion für eine sehr umfassende Baumstruktur weiterer Pflegetransaktionen. Die meisten Customizing-Aktivitäten bestehen aber in der indirekten oder direkten Pflege von Tabellen. Daher kann eine stichprobenartige Überprüfung der Berechtigungsstruktur in diesem Umfeld auf Tabellenberechtigungen reduziert werden. Bei abgegrenzten Zuständigkeiten innerhalb des Customizings (z.B. FI, MM, SD etc.) ist hier also auf eine entsprechende Abgrenzung innerhalb der Tabellenberechtigungen zu achten. Unabhängig von vergebenen Transaktionsberechtigungen innerhalb des Customizings entspricht eine Vollberechtigung auf Tabellenebene kombiniert mit einer Tabellenpflegetransaktion wie etwa SM30 praktisch einer Vollberechtigung im Customizing.
Normales Customizing der Fachbereiche bezieht sich im Allgemeinen auf mandantenabhängige Tabellen. Der Zugriff auf Systemtabellen sollte also möglichst auf die Basisadministration beschränkt werden.
Wesentliche Berechtigungskonstellationen:
Berechtigungsobjekt | Feld | Wert |
Ändern aller Tabellen | ||
S_TABU_DIS | ACTVT Aktivität | 02 (Ändern) |
DICBERCLS Berechtigungsgruppe | * (alle) | |
oder | ||
S_TABU_NAM | ACTVT Aktivität | 02 (Ändern) |
TABLE Tabelle | * (alle) | |
Pflegezugriff auf Systemtabellen | ||
S_TABU_CLI | CLIIDMAINT Tabellenpflege mandantenunabhängiger Tabellen | X |
Transporte
Grundsätzlich ist innerhalb des kompletten Entwicklungs- bzw. Customizing- und Transport-Prozesses ein technisches 4-Augen Prinzip zu implementieren. Ohne zusätzliche Tools ist dies im SAP-Standard nur über entsprechend vergebene Berechtigungen innerhalb der Transportlandschaft zu erreichen. Abhängig von den eingesetzten Strategien sollen also evtl. nur bestimmte Transportschritte innerhalb des Entwicklungssystems an die Benutzer vergeben sein. Beim Einsatz des SAP-Solution-Managers („ChaRM“) für die Transportsteuerung sollen hier beispielsweise normalerweise nur die Berechtigungen zur Freigabe von Transport-Aufgaben vergeben werden. Die vollständige Abwicklung eines Transportes im Entwicklungssystems besteht aus vier Schritten: Anlegen und Freigeben eines Transportauftrags (der eigentliche Transportcontainer), Anlegen und Freigeben einer Transportaufgabe (die Berechtigung für einzelne Benutzer, Objekte an den jeweiligen Transportauftrag zu hängen).
Wesentliche Berechtigungskonfigurationen werden in der folgenden Tabelle aufgelistet:
Berechtigungsobjekt |
Feld |
Wert |
Worbench- oder Customizing-Aufträge anlegen oder freigeben |
||
S_TRANSPRT |
ACTVT Aktivität |
01 (Anlegen) oder 43 (Freigeben) |
TTYPE Auftragstyp |
DTRA (Workbench) oder CUST (Customizing) |
|
oder |
||
S_SYS_RWBO |
ACTVT Aktivität |
01 (Anlegen) oder 43 (Freigeben) |
TTYPE Auftragstyp |
DTRA (Workbench) oder CUST (Customizing) |
|
Aufgaben anlegen oder freigeben |
||
S_TRANSPRT |
ACTVT Aktivität |
01 (Anlegen) oder 43 (Freigeben) |
TTYPE Auftragstyp |
TASK (Aufgabe) |
|
oder |
||
S_SYS_RWBO |
ACTVT Aktivität |
01 (Anlegen) oder 43 (Freigeben) |
TTYPE Auftragstyp |
TASK (Aufgabe) |
RFC-Schnittstellen
Eine Möglichkeit, einen direkten Zugriff auf die nachgelagerten Systeme vom Entwicklungssystem aus zu erhalten und dort evtl. unautorisierte Aktivitäten durchzuführen, besteht in der Nutzung fehlerhaft konfigurierter Schnittstellen. Grundsätzlich sollten Schnittstellen innerhalb einer Transportlandschaft bezüglich der Kritikalität der Systeme „bergauf“, also von einem „unsicheren“ auf ein „sicheres“ System (z.B. E-System auf Q- oder P-System) vermieden werden. Dies lässt sich allerdings nicht immer umsetzen, beispielsweise werden innerhalb des Transportwesens solche Schnittstellen benötigt. Ohne zu tief in die Thematik einzusteigen, lassen sich jedoch kritische Schnittstellen über folgende Eigenschaften charakterisieren, kritische Schnittstellen
- verweisen auf ein kritisches System und einen kritischen Mandanten
- beinhalten einen Schnittstellenbenutzer mit kritischen Berechtigungen im Zielmandanten
- beinhalten dessen hinterlegtes Kennwort
Da zumindest Entwickler im Entwicklungssystem wie erwähnt quasi über Vollberechtigungen verfügen, kann der konkrete Zugriff auf eine kritische RFC-Verbindung also auch nicht entzogen werden. Da RFC-Schnittstellen für das gesamte System definiert werden, können diese aus jedem Mandanten des Startsystems heraus genutzt werden. Vorhandenen Schnittstellen lassen sich über die Tabelle RFCDES im Start- (Entwicklungs-) System auslesen. Die oben aufgeführten Eigenschaften sind im Tabellenfeld RFCOPTIONS mit den folgenden Kürzeln aufgeführt:
H= <Zielsystem>
M= <Zielmandant>
U= <Schnittstellenbenutzer>
v= ein Kennwort ist hinterlegt
Abbildung 2: Anzeige der Tabelle RFCDES
Fazit
Entwickler- und Customizing-Berechtigungen stellen in produktiven SAP-Systemen ein großes Gefahrenpotential dar. Hier sind die Berechtigungen sehr restriktiv zu vergeben, z.B. nur an Notfallbenutzer. Dasselbe betrifft auch RFC-Verbindungen von einem Entwicklungssystem zu produktiven Systemen. Solche Verbindungen sind nur in sehr eingeschränkten Umfang zu nutzen.