Berechtigungsprüfungen in Z-Reports – Quellcodeanalyse im Transportprozess
Autor: Jonas Krüger | 29. August 2018
Auch ein gutes Berechtigungskonzept ist nur in Verbindung mit ausreichenden Berechtigungsprüfungen tragfähig. Besonders eigenentwickelte Z-Programme im SAP System können weitreichende Sicherheitslücken aufwerfen, wenn Berechtigungsprüfungen nicht funktional implementiert wurden. Denn wenn die Berechtigungen gar nicht geprüft werden, ist es unerheblich, welche Berechtigungen ein Nutzer besitzt.
Die Verwendung von Authority Checks in selbst entwickelten ABAP Reports obliegt der Verantwortung jedes Entwicklers. Durch das SAP Backend werden selbstständig keine Berechtigungsprüfungen, beispielsweise beim Zugriff auf Tabelleninhalte, durchgeführt.
Wie Sie durch automatische Quellcodeanalyse effektiv sicherstellen können, dass alle eigenentwickelten Programme die notwendigen Sicherheitsmechanismen enthalten, möchte ich im Folgenden erläutern.
Berechtigungsprüfungen in ABAP Programmen
Die Berechtigungsprüfung wird in ABAP durch das Sprachelement AUTHORITY-CHECK implementiert, durch das überprüft wird, ob der ausführende Benutzer ein Berechtigungsobjekt mit einer festgelegten Ausprägung besitzt.
Ein beispielhafter Authority Check kann wie folgt aussehen:
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD 'SE16N'
ID 'ACTVT' FIELD '03'.
IF sy-subrc <> 0.
MESSAGE 'Keine ausreichende Berechtigung' TYPE E.
ENDIF.
Durch diese Prüfung wird überprüft, ob der Benutzer in seinem Benutzerberechtigungspuffer (Transaktion SU56) das Berechtigungsobjekt S_TCODE mit der Ausprägung SE16N im Feld TCD besitzt (ob also der User die Transaktion SE16N aufrufen darf). Es ist bei der Prüfung unerheblich, aus welcher Rolle oder welchem Profil der Benutzer dieses Berechtigungsobjekt erhalten hat.
Dokumentation zu Berechtigungsobjekten nachschlagen
Um einen Authority Check umzusetzen, benötigt der Entwickler Informationen zu den in System vorhandenen Berechtigungsobjekten und zur Bedeutung der jeweiligen Felder und Ausprägungen. Diese können in der Regel der Dokumentation der Berechtigungsobjekte entnommen werden.
Alle im SAP System vorhandenen Berechtigungsobjekte sind in der Transaktion SU21 einsehbar. Hier kann auch auf die Dokumentation zu dem Berechtigungsobjekt zugegriffen werden und die Bedeutung der zulässigen Aktivitäten nachgelesen werden.
Implementierung von Berechtigungsprüfungen durch Quellcodeanalyse überwachen
SAP Systemverantwortliche stehen vor der Herausforderung, die korrekte Umsetzung der Zugriffskontrolle in ABAP Programmen zu überwachen. Bei Transporten neuer oder veränderter ABAP Programme steht die Frage im Raum, ob Berechtigungsprüfungen korrekt eingebaut wurden. Bei der Sicherstellung korrekter Sicherheitsprüfungen können Werkzeuge zur Quellcodeanalyse unterstützen.
Ihr Plan für bessere SAP Berechtigungen
In dem Strategieworkshop SAP Berechtigungen entwickeln wir für Sie eine Strategie zur Optimierung der SAP Sicherheit und Reduzierung der Betriebsaufwände.
Der XAMS ABAP Alchemist verfügt über umfangreiche Funktionen zur Analyse des ABAP Quellcodes. Der Prüfumfang kann durch Auswahl vordefinierter Prüfungen individuell festgelegt werden.
Neben dem einmaligen Scan aller eigenentwickelten ABAP Programme in Ihrem SAP System kann der ABAP Alchemist auch für eine regelmäßige Überprüfung konfiguriert werden. Die Durchführung der Prüfungen kann in den Transportprozess eingebunden werden. So kann sichergestellt werden, dass Programme mit fehlenden Berechtigungsprüfungen nicht unbemerkt in die Produktivumgebung gelangen.
Die Prüfung durch den ABAP Alchemist stellt somit eine Möglichkeit zum automatisierten Testen des Quellcodes bereit. Die Prüfung kann hierbei, wie im folgenden Screenshot zu sehen, mit verschiedenen Einstellungen konfiguriert werden: von einer Warnung des Benutzers bis hin zu einer Unterbrechung des Transportprozesses können Einstellungen getroffen werden, was im Falle einer Feststellung passieren soll.
Unsere Empfehlung: Prüfung der Z-Reports im Zusammenhang mit Berechtigungsredesign
Im Rahmen eines Berechtigungsredesigns empfehlen wir, zu Beginn des Projektes die Z-Programme auf Berechtigungsprüfungen zu überprüfen und ggf. zu ergänzen. Bei einem Berechtigungsredesign sollen die Nutzer passgenaue Berechtigungen für ihre Aufgaben erhalten. Um die benötigten Berechtigungen durch einen Berechtigungstrace zu ermitteln, ist es daher sinnvoll, die Berechtigungsprüfungen zu Projektbeginn zu überprüfen und ggf. zu ergänzen, sodass sie im Berechtigungstrace sichtbar sind.
Wenn Sie mehr über unsere standardisierte Vorgehensweise beim SAP Berechtigungsredesign erfahren möchten, sprechen Sie mich gerne jederzeit an oder lesen Sie mehr unter https://rz10.de/angebot/sap-berechtigungskonzept/
Nutzen Sie bereits automatisierte Quellcodeanalyse in Ihrem SAP System? Erzählen Sie mir gerne von Ihren Erfahrungen damit. Ich freue mich über eine Rückmeldung in den Kommentaren oder per E-Mail.
2 Kommentare zu "Berechtigungsprüfungen in Z-Reports – Quellcodeanalyse im Transportprozess"
Hallo Jonas,
in deinem Beitrag hast du kurz angerissen, dass der ABAP Alchemist auch für eine regelmäßige Überprüfung konfiguriert werden kann. Allerdings ist mir aus dem Beitrag jetzt nicht direkt schlüssig geworden, wie ich das machen muss. Könntest du das vielleich noch einmal genauer erklären? Denn ich denke das es eine gute Prüfung ist, die Sicherheit bietet, dass keine Programme mit fehlenden Berechtigungsprüfungen in die Produktumgebung gelangen.
Beste Grüße
René
Hallo René,
meine Aussage zur “regelmäßigen” Überprüfung bezieht sich auf die beschriebene Anbindung an den Transportprozess (siehe auch der letzte Screenshot). Da in der Regel Programme ja nicht auf dem Produktivsystem angepasst oder neu entwickelt werden, können Änderungen, die eine neue Berechtigungsprüfung erfordern könnten und daher auf vollständige Berechtigungsprüfungen hin überprüft werden sollen, nur auf dem Transportweg ins System gelangen. Indem nach einem einmaligen Check der gesamten Z-Programme die Prüfung über jeden neu einlaufenden Transport erfolgt, kann sichergestellt werden, dass sich zu keiner Zeit Programme mit fehlenden Berechtigungprüfungen im Produktivsystem befinden.
Konnte ich damit deine Frage klären? Ansonst komm gerne nochmal auf mich zu.
Viele Grüße
Jonas