16.11.2012 Aufrufe

SAP-Passwort-Sicherheit - IT-Audit.de

SAP-Passwort-Sicherheit - IT-Audit.de

SAP-Passwort-Sicherheit - IT-Audit.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>IT</strong>-<strong>Audit</strong>.<strong>de</strong>, August 2003 <strong>SAP</strong>-<strong>Passwort</strong>-<strong>Sicherheit</strong><br />

_____________________________________________________________________________________<br />

Natürlich sind auf diese Weise bereits vorhan<strong>de</strong>ne Manipulationen nicht erkennbar, son<strong>de</strong>rn nur<br />

solche, die seit <strong>de</strong>r ersten Ermittlung <strong>de</strong>s Hashwertes erfolgten.<br />

Nach je<strong>de</strong>m Releasewechsel bzw. Basis Support Package, in <strong>de</strong>m <strong>de</strong>r Quelltext <strong>de</strong>s Programms<br />

<strong>SAP</strong>MSYST in einer neuen Version ausgeliefert wird, ist <strong>de</strong>r Hashwert neu zu ermitteln.<br />

1.2 Schutz <strong>de</strong>r <strong>Passwort</strong>-Hashwerte<br />

<strong>SAP</strong> legt die Hashwerte zum <strong>Passwort</strong> eines Benutzers - sowie zu <strong>de</strong>n fünf vorhergehen<strong>de</strong>n - in <strong>de</strong>r<br />

Tabelle USR02 ab. Zusätzlich speichert <strong>SAP</strong> bei <strong>Passwort</strong>-Än<strong>de</strong>rungen <strong>de</strong>n Hashwert, das Datum<br />

und die Uhrzeit <strong>de</strong>r Än<strong>de</strong>rung sowie <strong>de</strong>n Namen <strong>de</strong>s letzten Än<strong>de</strong>rers in <strong>de</strong>r Tabelle USH02<br />

(Än<strong>de</strong>rungshistorie für Logon-Daten).<br />

In einem Entwicklungssystem kann man nicht verhin<strong>de</strong>rn, dass ein Entwickler <strong>de</strong>n Inhalt <strong>de</strong>r Tabellen<br />

USR02 und USH02 mandantenübergreifend ausliest und so an die <strong>Passwort</strong>-Hashwerte aller<br />

Benutzer gelangt. Außer<strong>de</strong>m ist es einem Angreifer mit Entwicklerrechten möglich, <strong>de</strong>n Hashwert in<br />

Tabelle USR02 durch einen an<strong>de</strong>ren Hashwert zu ersetzen, um sich dann erfolgreich als an<strong>de</strong>rer<br />

Benutzer anzumel<strong>de</strong>n.<br />

Auch in produktiven Systemen sind die Möglichkeiten solche Zugriffe zu verhin<strong>de</strong>rn begrenzt. Die<br />

Berechtigung zur Anzeige <strong>de</strong>s Tabelleninhaltes per Transaktion SE16 kann zwar über das<br />

Berechtigungsobjekt S_TABU_DIS (Berechtigungsgruppe SC) gesteuert wer<strong>de</strong>n. Jedoch erfolgt die<br />

entsprechen<strong>de</strong> Berechtigungsprüfung nicht, wenn ein Benutzer <strong>de</strong>n zuvor in Transaktion SE16 von<br />

einem an<strong>de</strong>ren Benutzer generierten Report zur Anzeige <strong>de</strong>s Tabelleninhaltes im Hintergrund ausführt<br />

(Hinweis: in früheren Releases war sogar noch die direkte Ausführung dieses Reports im Dialog per<br />

Transaktion SE38 bzw. SA38 möglich).<br />

Ein weiteres Problem ist, dass nahezu alle Transaktionen und Reports, welche die Gültigkeit eines in<br />

einem Dialogfeld eingegebenen Benutzers prüfen, die Tabelle mit SELECT SINGLE * FROM USR02<br />

... lesen. Daher ist es nicht praktikabel, alle Zugriffe auf die Tabelle USR02 per SQL <strong>Audit</strong> Log zu<br />

protokollieren, weil die SELECT-Anweisungen eines Programms zum Sammeln <strong>de</strong>r Hashwerte in all<br />

<strong>de</strong>n an<strong>de</strong>ren SELECT-Anweisungen untergehen.<br />

Außer<strong>de</strong>m genügt die Debugging-Berechtigung in einem Produktiv-System schon ohne die<br />

Berechtigung, Feldinhalte im Debugger zu verän<strong>de</strong>rn, um an die <strong>Passwort</strong>-Hashwerte beliebiger<br />

Benutzer zu gelangen.<br />

1.3 Schutz <strong>de</strong>r Hash-Funktion<br />

<strong>SAP</strong> versucht, nicht legitime Aufrufe <strong>de</strong>r im <strong>SAP</strong>-Kernel enthaltenen Funktion zur Ermittlung <strong>de</strong>s<br />

<strong>Passwort</strong>-Hashwertes zu erkennen und zu verhin<strong>de</strong>rn. Ein als nicht legitim erkannter Aufruf dieser<br />

Funktion wird im System Log protokolliert, <strong>de</strong>r entsprechen<strong>de</strong> Nutzer gesperrt und vom System<br />

abgemel<strong>de</strong>t.<br />

Versuche, mit Hilfe <strong>de</strong>r Hashwerte per Crack-Programm an die Klartext-Passwörter zu gelangen, sind<br />

daher spätestens seit Release 4.6B nicht mehr so einfach möglich, wie dies früher <strong>de</strong>r Fall war.<br />

Dennoch gibt es in allen aktuellen Releases nach wie vor die Möglichkeit, <strong>SAP</strong>-Passwörter zu<br />

knacken. Der Autor hat zu Testzwecken ein Programm erstellt, das zu beliebigen Passwörtern die<br />

Hashwerte ermittelt und mit <strong>de</strong>n Hashwerten aus Tabelle USR02 vergleicht. Dieses Programm eignet<br />

sich zum Knacken von <strong>SAP</strong>-Passwörtern für alle Releases bis einschließlich 6.x.<br />

Mit einem han<strong>de</strong>lsüblichen PC (CPU: AMD Athlon XP 2100+) ließen sich pro Minute ca. 7,5 Millionen<br />

Kombinationen aus Benutzername und <strong>Passwort</strong> prüfen und die ermittelten Hashwerte mit <strong>de</strong>nen aus<br />

Tabelle USR02 vergleichen. Ein Angreifer braucht also nur einen aktuellen PC, um ca. 10 Millionen<br />

Kombinationen aus <strong>Passwort</strong> und Benutzername pro Minute auszuprobieren.<br />

Frank Dittrich Seite 2 von 11

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!