Quantcast
Channel: rz10.de - die SAP Basis und Security Experten » Benutzer
Viewing all articles
Browse latest Browse all 21

Hart kodierte Benutzernamen in ABAP ermitteln

$
0
0

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 ermitteln können.

Wir übernehmen Basisaufgaben und führen SAP Basis Projekte für Sie durch
Fachbereichsleiter Tobias Harmes

Ob Sie ein Systemupgrade durchführen wollen oder einfach nur Unterstützung bei der Konfiguration Ihrer SAP Systemlandschaft benötigen, wir bieten Ihnen unsere kompetenten Berater an: SAP Basis und SAP Security Berater von RZ10 buchen.

Unsere Referenzen finden Sie hier.

Kontaktieren Sie mich: Telefon 0211.9462 8572-25 oder per E-Mail info@rz10.de.

In einem unverbindlichen Gespräch kann ich mit Ihnen über Ihre Ausgangslage sprechen und Ihnen Möglichkeiten aufzeigen. Selbstverständlich können wir danach auch ein unverbindliches Angebot unterbreiten.

 

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.

Hart kodierte ABAP Benutzernamen ermitteln 1

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.

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.

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.

The post Hart kodierte Benutzernamen in ABAP ermitteln appeared first on rz10.de - die SAP Basis und Security Experten.


Viewing all articles
Browse latest Browse all 21