SAP-Passwort-Sicherheit - IT-Audit.de
SAP-Passwort-Sicherheit - IT-Audit.de
SAP-Passwort-Sicherheit - IT-Audit.de
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