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.

Download des Artikels mit zusätzlichem Inhalt

Laden Sie diesen kompletten Beitrag “HowTo: SAP Risikominimierung durch fehlende Berechtigungsgruppen von Programmen und Tabellen” als PDF herunter, inklusive zusätzlichen Beispielen und Tipps zur Analyse.

SAP Risikominimierung

Howto: SAP Risikominimierung

Risiko durch fehlende Berechtigungsgruppen von Programmen und Tabellen im SAP minimieren.

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

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

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

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)

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.

Was sind Ihre Erfahrungen zu SAP Risikominimierung?

Sie benötigen Unterstützung in diesem Thema? Informieren Sie sich über unsere Leistungen im Bereich SAP- und IT-Security-Beratung oder stellen kostenlos und unverbindlich eine Anfrage.


Artikel war hilfreichArtikel empfehlen


Dieser Beitrag ist auch als Download verfügbar: