Mit diesem HowTo möchte ich Ihnen aufzeigen, wie kritisch die Vergabe der Berechtigungen zum Aufruf der Transaktionen SA38 und SE38 in einem produktiven SAP-System unter Umständen sein kann. Anwender sollten in produktiven SAP-Systemen nicht die Berechtigung haben Programme über die SA38 bzw. die SE38 auszuführen, da hier nur schwer einzuschränken ist, welche unter Umständen auch sicherheitskritischen Programme aufgerufen werden können. In der Praxis kommt es jedoch häufig vor, dass für bestimmte Anwendungsfälle die Berechtigung zum Start der SA38 bzw. der SE38 an Benutzer vergeben wird.
Die erforderlichen Berechtigungsobjekte zum Aufruf der Transaktion SA38 sind in der unten dargestellten Grafik abgebildet. Die beiden Berechtigungsobjekte S_TCODE und S_PROGRAM werden bei Aufruf der Transaktion geprüft. Bei dem Berechtigungsobjekt S_PROGRAM wird allerdings nur das Feld P_ACTION auf den Feldwert SUBMIT (Ausführen ABAP Programm) geprüft. Das Feld P_GROUP wird an dieser Stelle noch nicht geprüft. Dieses Feld dient zur Einschränkung der Programmausführungsberechtigung auf die in der Tabelle TPGP angelegten Berechtigungsgruppen.
![]()
Abbildung 1: Erforderliche Berechtigungen zum Aufruf der Transaktion SA38
Risiko 1: Fehlende Berechtigungsgruppen bei Programmen
Ruft der Benutzer nun die Transaktion SA38 auf, kann er grundsätzlich, wie in Abbildung 2 dargestellt, den Namen jedes beliebigen Programms in das Feld “Programm” eintragen. Ruft der Benutzer nun ein Programm auf, prüft das SAP-System, ob eine Berechtigungsgruppe in den Eigenschaften des Programms festgelegt wurde. Ist dies der Fall, dann wird über das Feld P_GROUP des Berechtigungsobjekts S_PROGRAM geprüft, ob der Benutzer die entsprechende Berechtigungsgruppe aufrufen darf. Sicherheitskritisch ist jedoch die Tatsache, dass der Benutzer unabhängig von den in seinen Berechtigungen definierten erlaubten Berechtigungsgruppen sämtliche Programme ausführen kann, die keine definierte Berechtigungsgruppe haben. Wenn wir die in Abbildung 1 dargestellte Beispielrolle an einen Benutzer vergeben, dann könnte dieser den Report RK_SE16N aufrufen, welcher sich hinter der Transaktion SE16N verbirgt.
![]()
Abbildung 2: SA38 Programmausführung von RK_SE16N
In der Regel sind Benutzer in produktiven SAP-Systemen nicht über das Berechtigungsobjekt S_TCODE berechtigt, die Transaktion SE16N auszuführen. Benutzer, welche unter anderem über die Ausführungsberechtigung der SA38 verfügen, können aber das Programm RK_SE16N jedoch wie in den Abbildungen 2 und 3 dargestellt trotzdem aufrufen, da üblicherweise keine Berechtigungsgruppe vergeben ist.
![]()
Abbildung 3: Report RK_SE16N bzw. Transaktion SE16N
Risiko 2: Fehlende Berechtigungsgruppen bei Tabellen
Bei Aufruf einer Tabelle wird zusätzlich das Berechtigungsobjekt S_TABU_DIS und dessen Feld ACTVT (Aktivität) geprüft. Auch bei diesem Berechtigungsobjekt verhält es sich analog zur S_PROGRAM-Berechtigung so, dass nur bei Tabellen mit gepflegter Berechtigungsgruppe auch das Feld DICBERCLS (Berechtigungsgruppe) geprüft wird. Alle Tabellen ohne Tabellenberechtigungsgruppe können entsprechend der erlaubten Aktivität angezeigt (03) oder geändert (02) werden.
![]()
Abbildung 4: Berechtigungsobjekt S_TABU_DIS (Tabellenpflege)
Empfehlung
Option 1. Wenn Sie die Vergabe der Transaktion SA38 bzw. SE38 weitestgehend vermeiden möchten, dann können Sie über die Transaktion SE93 für erforderliche Programme eine Transaktion anlegen. Diese Transaktion können Sie dann in den Berechtigungsrollen der Benutzer über das Berechtigungsobjekt S_TCODE berechtigen.
Option 2. Da ein Bedarf, Benutzer für den Aufruf der Transaktion SA38 bzw. SE38 zu berechtigen unter Umständen gegeben sein kann, bleibt noch die Option, für Programme und Tabellen ohne Berechtigungsgruppe eine Berechtigungsgruppe zu definieren. Das mag auf den ersten Blick, in Anbetracht der Menge von Programmen und Tabellen ohne eine entsprechende Einstellung sehr aufwendig wirken, kann jedoch die Wirksamkeit der Berechtigungen und damit die Sicherheit der Systeme enorm steigern. Für Programme und Tabellen ohne Berechtigungsgruppe kann beispielsweise eine beliebige Berechtigungsgruppe angelegt und vergeben werden. Die relevanten Tabellen, in denen Sie die Zuordnungen der Berechtigungsgruppen finden können, finden Sie nachfolgend aufgelistet.
Tabellenübersicht
Programme. Hier finden Sie die Tabellen, welche im Zusammenhang mit Berechtigungsgruppen für Programme relevant sind.
TPGP: Hier können Sie vorhandene Berechtigungsgruppen einsehen und einfügen. Alternativ lassen sich Berechtigungsgruppen auch über das Programm RSCSAUTH pflegen.
TRDIR: In dieser Tabelle sind alle Programme (Feld: NAME) mit den entsprechenden Berechtigungsgruppen (Feld: SECU) verzeichnet.
Tabellen. Hier finden Sie die Tabellen, welche im Zusammenhang mit Berechtigungsgruppen für Tabellen relevant sind.
TBRG: In der Tabelle TBRG können Berechtigungsgruppen für Tabellen (Objekt: S_TABU_DIS) angelegt werden.
TDDAT: Eine Zuordnung von Tabellen zu Berechtigungsgruppen können Sie in dieser Tabelle einsehen und ändern.
Download des Artikels mit zusätzlichem Inhalt
Laden Sie diesen kompletten Beitrag “HowTo Risiko durch fehlende Berechtigungsgruppen von Programmen und Tabellen im SAP minimieren” als PDF herunter inklusive zusätzlichen Beispielen und Tipps zur Analyse.
Ich freue mich auf Ihre Kommentare und Anregungen.
The post Risiko durch fehlende Berechtigungsgruppen von Programmen und Tabellen im SAP minimieren appeared first on rz10.de - das SAP Basis- und Security Blog.