Kennwörter in Microsofts SQL Server knacken

Ein englischer Sicherheitsexperte hat herausgefunden, wie die Benutzerkennwörter in Microsofts SQL Server gespeichert werden. Dadurch werden Brute-Force-Attacken um einiges einfacher.

In Pocket speichern vorlesen Druckansicht 233 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Hajo Schulz

David Litchfield, Mitbegründer des englischen Softwarehauses Next Generation Security Software Ltd (NGSS), hat herausgefunden, wie die Benutzerkennwörter in Microsofts SQL Server gespeichert werden. Mit diesem Wissen ist es nun um einiges einfacher, ein solches Kennwort zu erraten und sich so Zugang zur Datenbank zu verschaffen.

Eigentlich schützt die im SQL Server vorhandene Funktion pwdencrypt die Passwörter: Sie wird automatisch aufgerufen, wenn ein Anwender ein neues Kennwort definiert, und verschlüsselt es, bevor es in der Datenbank gespeichert wird. Auf die Datenbanktabelle sysusers, in der das verschlüsselte Kennwort landet, hat jeder Anwender Lesezugriff, denn bei der Anmeldung muss es ja gelesen werden. Der für die Verschlüsselung verwendete Hashing-Algorithmus macht es allerdings prinzipiell unmöglich, aus der Verschlüsselung das Kennwort wiederzugewinnen. Wenn man aber das genaue Verfahren kennt, das die Funktion benutzt, kann man es in einem eigenen Programm nachbauen und dieses beispielsweise so lange mit dem Inhalt einer Wörterbuchdatei füttern, bis es ein mit dem verschlüsselten Kennwort identisches Ergebnis liefert. Da dieses Programm auf einem eigenen Rechner laufen kann, fallen dabei keine Datenbank-Zugriffe an, die bei einem aufmerksamen Administrator Verdacht erregen könnten.

Genau das ist Litchfeld nun gelungen: In einem als .pdf-Datei veröffentlichten Dokument beschreibt er haarklein den inneren Aufbau von pwdencrypt und liefert auch gleich das Listing für ein entsprechendes Crack-Programm mit. Diesem kommt sogar noch die Tatsache zugute, dass man für einen erfolgreichen Angriff in einem ersten Anlauf nur Kennwortkandidaten ausprobieren muss, die komplett aus Großbuchstaben bestehen -- in der Datenbank finden sich nebeneinander die Verschlüsselung des Originalkennworts und der in Großbuchstaben konvertierten Version.

Ob diese Erkenntnisse zu einem Patch für den SQL Server führen werden, ist derzeit in der deutschen Microsoft-Niederlassung noch nicht in Erfahrung zu bringen. Als Sicherheitsmaßnahme empfiehlt man dort, den SQL Server grundsätzlich so zu betreiben, dass sich Benutzer nicht über die Datenbank selbst, sondern über die in Windows NT beziehungsweise 2000 vorhandenen Funktionen zur Benutzeranmeldung authentifizieren. Wo das nicht möglich ist, bleiben Administratoren von SQL-Server-Installationen wohl nur Richtlinien, wie sie generell im Umgang mit Kennwörtern sinnvoll sind: Sie sollten aus Kombinationen von Buchstaben, Ziffern und Sonderzeichen bestehen, die nicht in Wörterbüchern, Namenslisten und ähnlichem zu finden sind. Und man sollte sein Passwort regelmäßig wechseln, damit ein Angreifer möglichst kurz Freude an einem einmal erratenen Kennwort hat. (hos)