Bild von Prof. Dr. Nick Gehrke

Verfasst von

Prof. Dr. Nick Gehrke

Cybersecurity ist im Moment das grosse Thema schlechthin. Die Diskussion zielt häufig auf die Infrastrukturebene ab, d.h. auf die Sicherheit von Netzwerken und Betriebssystemen. Dabei sollte die Ebene der Anwendungen aber nicht vergessen werden! Eines der wichtigsten betrieblichen Anwendungssysteme dabei ist häufig das ERP-System im Unternehmen und hier trifft man sehr häufig SAP an. Deshalb führt dieser Blog Post in das Thema SAP Passwortsicherheit ein und gibt praktische Hinweise für die Absicherung Ihres SAP Systems.

 

Wie funktioniert das SAP Passwort?

Um Zugang zu einem SAP System zu erhalten, muss jeder Nutzer sein Passwort eingeben. Darin unterscheidet sich SAP nicht von anderen Anwendungen. Das SAP System vergleicht also das vom Nutzer eingegebene Passwort mit dem im SAP System hinterlegten Nutzerpasswort. Dabei ist es aber keineswegs so, dass im SAP-System das tatsächliche Passwort eines Nutzers hinterlegt ist, sondern nur der sogenannte Password Hash. Im SAP-System ist das Passwort im Klartext somit nicht aufzufinden. Der Password Hash ist dabei eine Zeichenkette, die berechnet wird mit Hilfe einer sogenannten Hashfunktion, welche das Klartextpasswort in einen Password Hash transformiert. Wenn ein Nutzer ein Passwort eingibt, dann berechnet SAP den Password Hash dieser Eingabe und vergleicht dann den soeben berechneten Hash mit dem Password Hash, welcher für den Nutzer im SAP-System hinterlegt ist. Wenn die Hashes übereinstimmen, dann kann sich der Nutzer erfolgreich einloggen. Das Passwort im Klartext wird also nicht zur Verifizierung herangezogen.

Ein Password Hash hat dabei die Eigenschaft, dass man aus dem Klartextpasswort den Password Hash sehr schnell mit Hilfe der Hashfunktion berechnen kann. Der Clou ist, dass das umgekehrt nicht so einfach geht, d.h. aus dem Password Hash kann man nicht auf das Klartextpasswort schließen. Das macht das Verfahren grundsätzlich sicher. Fachleute sprechen auch davon, dass solche Hashfunktionen Einwegfunktionen sind: diese funktionieren nur in "eine Richtung".

Bekannte kryptographische Hashfunktionen zur Berechnung von Password Hashes sind MD5 oder SHA1 bzw. SHA2.

SAP ERP verwendet den Algorithmus SHA1. Password Hashes in SAP haben damit eine Länge von 160 Bits. SHA1 gilt nicht mehr in vollem Umfang als sicher und es wurde bereits gezeigt, dass (unter Laborbedingungen) SHA1 Hashes erfolgreich angegriffen wurden.

 

Wo sind die SAP Passwörter abgelegt?

Alle SAP Daten liegen in einer "hinter" dem SAP-System stehenden relationalen Datenbank in vielen verschiedenen Tabellen. Auch die SAP Nutzerpasswörter sind hier keine Ausnahme und diese liegen in einer der zahlreich vorhandenen Datenbanktabellen. Die Password Hashes befinden sich dabei in der Tabelle USR02 in dem Datenfeld PASSCODE.

An die SAP Password Hashes kommen also alle Nutzer von SAP heran, die das Zugriffsrecht zur Einsichtnahme in SAP Datenbanktabellen haben. Datenbanktabellen können mit der SAP Transaktion SE16 oder ähnlichen Transaktionen eingesehen werden. Wer also Zugriff auf SE16 hat, kann die Tabelle USR02 aufrufen und die Password Hashes im Feld PASSCODE für jeden Nutzer ansehen und auch downloaden.

 

Wie knackt man ein SAP Passwort?

Das Knacken von SAP Password Hashes kann natürlich nur erfolgen, wenn man die SAP Password Hashes in der Tabelle USR02 erhalten hat. Da es sich bei der in SAP verwendeten Hashfunktion zur Berechnung der Password Hashes um eine Einwegfunktion handelt, gibt es kein Algorithmus und keine Berechnungsvorschrift, um von dem Password Hash auf das ursprüngliche Passwort im Klartext zu schließen. In der Praxis bleibt deshalb nichts anderes übrig, als (sehr viele) verschiedene Passwörter auszuprobieren. D.h. man nimmt eine Liste von Passwortkandidaten, berechnet mit dem SHA1 Algorithmus deren Password Hashes und vergleicht diese mit den Password Hashes in der Tabelle USR02, Datenfeld PASSCODE. Das heißt, Passwörter knacken bedeutet rechenintensives Ausprobieren vieler verschiedener Möglichkeiten. Diese Methode wird Brute-Force genannt und bedeutet soviel wie "brutales Ausprobieren". Ein solches "brutales Ausprobieren" macht man natürlich nicht von Hand. Dabei helfen Computerprogramme, die solches Ausprobieren mit aller zur Verfügung stehenden Rechenpower durchführen können. Auch für SAP Password Hashes ist für diese Zwecke das Programm John the Ripper beliebt.

 

Wie stellt man sicher, dass die SAP Nutzer sichere Passwörter benutzen?

Ob Sie etwa als IT-Revisor, IT-Security Beauftragter oder SAP Administrator zum Password Hacker werden wollen, sollten Sie sich genau überlegen. Solche "Hacker-Aktionen" sind im Unternehmenskontext im Zweifel eher problematisch, da man dafür sicher ein "besonderes Mandat" braucht. Wogegen in Ihrer Firma aber sicher niemand etwas haben wird ist, wenn Sie Ihr SAP-System derart ausgestalten, sodass die Nutzer keine andere Wahl haben, als sichere Passwörter zu wählen. Dies wiederum ist im Zweifel sogar Ihr Pflicht. Die Frage ist also, wie man ein SAP-System im Hinblick auf Passwortsicherheit sinnvoll einstellt.

Die Passwortsicherheit wird in SAP über systemweite Parameter eingestellt. Sie können diese Passwortparameter im Audit Information System in SAP ansehen über den Pfad: AIS - System audit – System Konfiguration – Parameter – Systemparameter mit doku.

Ich habe einmal 10 wichtige Passwordparameter zusammengestellt:

 

No

Parameter

Empfohlen

1

login/min_password_lng

6 (Kennwortmindestlänge)

2

login/min_password_letters

1 (Kennwort muss mindestens einen Buchstabe enthalten)

3

login/min_password_digits

1 (Kennwort muss mindestens eine Zahl enthalten)

4

login/min_password_specials

1 (Kennwort muss mindestens ein Sonderzeichen enthalten)

5

login/min_password_diff

3 (mindestens die Hälfte der minimalen Kennwortlänge)

6

login/password_history_size

15 Kennworte (bei einem Wechsel, der alle 90 Tage erzwungen wird)

7

login/password_max_idle_initial

Gültigkeitsdauer für ein initiales Kennwort überschreitet nicht 3 Arbeitstage

8

login/password_expiration_time

erzwungener Wechsel des Kennworts nach höchstens 90 Tagen 

9

login/password_max_idle_productive

Gültigkeitsdauer eines nicht benutzten Kennworts höher setzen als die Dauer für den erzwungenen Wechsel des Kennwort

10

login/password_change_waittime

1 (Benutzer muss einen Tag warten, bis er sein Kennwort wieder ändern darf)

 

Die Empfehlungen sind der SAP Anwendergruppe entnommen und gelten als allgemein akzeptiert. Weitere Einstellungen für Systemparameter betreffend das SAP Passwort finden Sie hier ab Seite 16.

 

Worauf soll man in Sachen SAP Passwort noch achten?

Neben den Systemparametern für die SAP Passwortsicherheit lassen sich noch einige andere wichtige Hinweise geben:

1. Legen Sie verbotene Passworte für Ihr SAP System fest. So sollten Trivialpassworte ausgeschlossen werden wie z. B. der eigene Firmenname oder häufig gebrauchte Worte des Alltags. Verbotene Passworte können in der Tabelle USR40 hinterlegt werden, damit SAP die Verwendung solcher Passworte ablehnen kann.

2. Wenn ein Nutzer neu angelegt wird, wird häufig ein Initialpasswort vom Administrator vergeben, welches dann beim ersten Login geändert werden muss. Achten Sie in Ihrer Organisation darauf, dass das Initialpasswort nicht immer gleich ist und somit die Gefahr besteht, dass ein SAP Nutzeraccount durch einen Unberechtigten aufgrund allgemeiner Kenntnis des Initialpassworts "gekapert" wird.

3. Das sicherste Passwort nützt nichts, wenn SAP Nutzer im eingeloggten Zustand ihren Arbeitsplatz verlassen und vergessen, den Arbeitsplatz zu sperren. Dann kann jeder sich an den Rechner setzen und SAP bedienen. Stellen Sie deshalb SAP derart ein, sodass nach einer gewissen Zeit der Untätigkeit ein automatischer Logout passiert (Systemparameter rdisp/ gui_auto_logout).

Sie haben weitere Fragen zur Sicherheit von SAP?

Schreiben Sie einen Kommentar zu diesem Blog.

Oder laden Sie sich eines unserer nützlichen ePapers herunter:

 

zu den ePapers

 

Kommentare