SY-UNAME: Hart kodierte Benutzernamen in ABAP ermitteln

Autor: Tobias Harmes | 11. Juli 2015

16

Hart kodierte Benutzernamen in ABAP Programmen können ein erhebliches Sicherheitsrisiko darstellen. In diesem Blog-Beitrag werde ich Ihnen erklären, wie Sie diese Schwachstellen mit SY-UNAME ermitteln können.

SY-UNAME

Das Systemfeld SY-UNAME beinhaltet den Namen des derzeit angemeldeten Benutzers. Es kommt immer wieder vor, dass anstatt der Benutzung der AUTHORITY-CHECK der Inhalt des Systemfeldes SY-UNAME direkt abgefragt wird, zum Beispiel für Funktionstests. Ein Beispiel ist der folgende Code:

IF sy-uname <> ‘ENTWICKLER’.
AUTHORITY-CHECK …
ENDIF.

Verwendung von SY-UNAME ermitteln

Der Standardreport RS_ABAP_SOURCE_SCAN bietet eine gute Möglichkeit, Ihren Quellcode nach der Verwendung von SY-UNAME zu durchsuchen. Sie können den Report / das Programm zum Beispiel durch die Transaktion SE80 aufrufen und ausführen.

sy-uname

In der Eingabemaske “Scan ABAP Report Sourcen” können Sie nun in das Feld des gesuchten Strings eine Mehrfachselektion vornehmen.

Hart kodierte ABAP Benutzernamen ermitteln 2

  1. Durch das Klicken auf die Mehrfachselektion öffnet sich das Eingabefeld für die Mehrfachselektion.
  2. Geben Sie hier die folgenden Werte ein: “SY-UNAME <> .*”, “SY-UNAME = .*” und “CASE SY-UNAME”.
  3. Stellen Sie sicher, dass der Haken bei “String ist regulärer Ausdruck” gesetzt ist.
  4. Zur Eingrenzung der zur überprüfenden Programme können Sie hier mit Z* oder / und Y* die SAP Standardprogramme ausgrenzen.
  5. Damit auch die Includes mit überprüft werden, empfehle ich Ihnen, den Haken bei “Includes auflösen” zu setzen.

Nach dem Ausführen des Reports erhalten Sie einen Report mit allen Quelldateien, welche die gesuchten Strings beinhalten.

Hart kodierte ABAP Benutzernamen ermitteln 3

Mit einem Klick auf den angezeigten Quellcode können Sie sich den gesamten Quellcode der Datei anschauen.

SAP Basis Berater - gesamte Projekte oder Berater auf Zeit

Sie suchen Unterstützung durch SAP Basis Berater? Wir bieten mehr als nur einen gewöhnlichen Berater auf Zeit. Informieren Sie sich über Ihre Vorteile!

Grenzen der Ermittlung

Diese eher simple Überprüfung stößt schnell an ihre Grenzen, wie das folgende Beispiel zeigt:

DATA: lv_field TYPE string.
FIELD-SYMBOLS:  TYPE any.

lv_field = ‘SY-UNAME’.
ASSIGN (lv_field) TO .
IF  = ‘ENTWICKLER’.
*    AUTHORITY-CHECK …
WRITE ‘AUTHORITY-CHECK bypassed!’.
ENDIF.

E-Book SAP Basis

Mehr als 100 ausgewählte SAP Basis Fachartikel von rz10.de seit 2011! Auf über 900 Seiten Tipps, Tricks und Tutorials mit Screenshots aus echten SAP-Systemen.

Deshalb sollte die Verwendung von SY-UNAME nie zur Überprüfung von ausführbarem Code verwendet werden.

Was sind Ihre Erfahrungen mit dem Ermitteln von hart kodierten Benutzernamen in ABAP Programmen? Ich freue mich auf Ihre Kommentare.

 

 

Sie benötigen Unterstützung bei der Umsetzung? Unser Autor ist Berater für dieses Thema. Fragen Sie ihn an über das RZ10.de Partnerprodukt Berater für SAP Basis


Artikel war hilfreichArtikel empfehlen


Dieser Beitrag ist auch als Download verfügbar:
Tobias Harmes

Autor

Tobias Harmes

Experte, Speaker, Herausgeber rz10.de

Fragen? Anmerkungen?
Kontaktieren Sie mich

Kommentar verfassen


Unsere Top-Downloads

Kontaktieren Sie uns!
Renate Burg Kundenservice