WordPress sicherer machen
Freitag, 8. Februar 2008, 13:59 Uhr | Autor: ich
Die Berichte über die Probleme mit den Supportforen haben hoffentlich auch die WP-Entwickler erreicht.
Das Problem von normalen/einfachen/ungesalzener MD5-Hashes sind die Rainbow Tables, also vorausberechnete Hashwerte. Wenn man als Passwort zum Beispiel “password” benutzt, so wird immer der gleiche MD5-Hash erzeugt:
md5(password) => 5f4dcc3b5aa765d61d8327deb882cf99
Google kennt z.Zt. 4630 Ergebnisse für diesen Hash und wenn man die Suche weiter einschränkt findet man auch SQL-Dumps, in denen dieser Hash vorkommt. Mit anderen Worten: Auch hier hilft Google dem Hacker und das zu geringe Sicherheitsbewußtsein der Softwareentwickler verstärkt das Problem enorm.
Fast jede Software benutzt MD5 zum Erzeugen von Hashwerten, WordPress ebenfalls. Im Quellcode von WP kommt zwar auch
»md5($data . $salt)« oder auch »md5( md5($password) )«
vor, aber der Passworthash in der wp_users ist nur ein einfacher MD5-Hash. Das heißt wer die Datenbank auslesen kann hat die Hashwerte für die Passworte der User. Da viele User immer wieder die gleichen Passworte benutzen… das Passwortproblem und User hatte ich bereits hier und hier erwähnt.
Der unberechtigte Zugriff auf die Datenbank kann durch verschiedene Probleme möglich sein. Ein Fehler in der Software selber, also z.B. per SQL-Injection das Adminpasswort überschreiben. Ist der Passworthash ein einfacher MD5-Hash so kann der Hacker ohne Probleme den Hash ersetzen, um Zugriff auf die Software zu erlangen. Der Hoster hat einen Fehler gemacht und plötzlich sind alle phpMyAdmins offen. Oder das Datenbanktool phpMyAdmin hat einen Bug, oder… oder… oder…
Also im WP-Quellcode gibt es 22 Dateien in denen md5() benutzt wird. Ich habe mal alle Vorkommen mit selfmd5() ersetzt und in der wp-config.php meine eigene MD5-Funktion eingefügt, da ich davon ausgehe das alle Dateien die auf die Datenbank zugreifen erst die Konfiguration, mit dem DB-Passwort, laden.
function selfmd5($klartext) {
$zurueckgeben = md5($klartext."test");
return $zurueckgeben;
}
Ich habe ersteinmal vor der Installation von WordPress die geänderten Dateien ausgetauscht. Die Installation war erfolgreich, ich konnte Beiträge schreiben, kommentieren, editieren, löschen, neue User anlegen, etc. etc. Dann habe ich in einem bereits installierten WordPress alle Dateien ausgetauscht und in der Datenbank den Passwort-Hash des Users auf den neuen Hash aktualisiert, wieder lief alles Problemlos.
Es wäre natürlich sehr viel besser wenn die WP-Entwickler eine eigene MD5-Funktion in den Quellcode einfügen und nicht das einfache MD5 verwenden würden, denn nach jedem WP-Update muß ich wieder alle Dateien auf meine MD5-Funktion umstellen.
Also, meine Bitte an die WP-Entwickler: Baut mal eine gesalzene MD5-Funktion in WordPress ein, dies erhöht die Sicherheit von WordPress enorm.
Thema: myQuellcode, Sicherheit, Wordpress | Kommentare geschlossen






