Öffnen Sie die Datei wp-config.php auf einer beliebigen WordPress-Website. Etwa in der Mitte steht ein Block aus acht Definitionen mit Namen wie AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT und NONCE_SALT. Jede ist eine lange zufällige Zeichenkette. Das sind die Salts und Keys von WordPress: Sie schützen jedes Authentifizierungs-Cookie und jeden Nonce, den Ihre Website ausstellt. Kaum jemand ändert sie, nachdem die Website einmal installiert wurde. Dieser Artikel erklärt, was sie tatsächlich tun, warum das Erneuern wichtig ist und wie man es sicher durchführt.
Was Salts und Keys leisten
Wenn Sie sich bei WordPress anmelden, setzt die Website ein Cookie, das die Gültigkeit Ihrer Sitzung nachweist. Dieses Cookie enthält ein Token, das mit einer Kombination der Keys und Salts aus wp-config.php signiert ist. Ohne Kenntnis beider kann ein Angreifer weder ein gültiges Cookie fälschen noch ein bestehendes verändern, ohne es ungültig zu machen.
WordPress verwendet dieselben Geheimnisse, um Nonces zu erzeugen und zu prüfen, die Einmal-Token, die Formularübermittlungen und Admin-Aktionen vor Cross-Site-Request-Forgery (CSRF) schützen. Sie sind grundlegend für einen großen Teil der WordPress-Sicherheit.
Wenn die Geheimnisse durchsickern, bleibt jedes damit signierte Token gültig, bis die Geheimnisse geändert werden. Genau das ist der für das Erneuern entscheidende Punkt.
Wann die Geheimnisse durchsickern können
Sie denken vielleicht, Ihre wp-config.php sei nie offengelegt worden. Absichtlich ist das wahrscheinlich nicht geschehen, doch mehrere häufige Szenarien können den Inhalt der Datei preisgeben.
Ein Backup-Archiv im Stammverzeichnis der Website. War es auch nur kurz herunterladbar, besitzt jeder, der den Dateinamen erraten hat, die Datei. Wir haben Backup-Archive mit vorhersehbaren Zeitstempeln gesehen, die jeder Angreifer durchprobieren kann.
Ein falsch konfigurierter Server, der PHP-Dateien als reinen Text ausgeliefert hat, statt sie auszuführen. Kurze Fehlkonfigurationen während Deployments sind überraschend häufig.
Der kompromittierte Laptop eines Entwicklers oder Dienstleisters. Die wp-config.php lag jahrelang in einer lokalen Kopie der Website. Wurde dessen Rechner geknackt, dann auch die Datei.
Eine frühere Kompromittierung der Website selbst. Hatte ein Angreifer irgendwann in der Vergangenheit Zugriff auf das Dateisystem, hat er wp-config.php gelesen und besitzt Ihre Geheimnisse nun für immer, sofern Sie sie nicht erneuert haben.
Was das Erneuern tatsächlich bewirkt
Das Erneuern der Salts und Keys bewirkt zwei wichtige Dinge. Erstens macht es alle bestehenden Sitzungen der Website ungültig: Jeder angemeldete Nutzer, einschließlich eines Angreifers, der noch ein erbeutetes Cookie nutzt, muss sich erneut anmelden. Zweitens macht es alle offenen Nonces ungültig: Jede Formularübermittlung, die sich auf ein vor der Erneuerung ausgestelltes Token stützt, wird abgewiesen.
Der erste Effekt ist der Sicherheitsgewinn. Hatte ein Angreifer vor der Erneuerung ein gültiges Sitzungs-Cookie, so hat er es danach nicht mehr.
Der Rest ist Detail, aber genau dieser erste Effekt ist der Grund, warum sich das Erneuern lohnt.
Der Aufwand ist gering
Die einzige Reibung beim Erneuern ist eine Runde erneutes Anmelden. Das war’s. Jeder Nutzer, auch Sie, wird beim nächsten Besuch der Website abgemeldet. Er meldet sich mit den gewohnten Zugangsdaten wieder an und ist zurück.
Für einen persönlichen Blog ist das unsichtbar. Für eine Unternehmenswebsite mit mehreren Mitarbeitern schicken Sie eine kurze E-Mail mit dem Hinweis, dass die Änderung ansteht und eine erneute Anmeldung nötig sein wird. Fünf Minuten Vorlauf ersparen Verwirrung.
Kein Datenverlust, keine Ausfallzeit: nur Sitzungen, die erneuert werden müssen.
Wie man erneuert
Der Ablauf ist einfach. Rufen Sie den offiziellen WordPress-Generator für geheime Schlüssel unter api.wordpress.org auf: Er erzeugt bei jedem Laden einen neuen Satz von acht Definitionen. Kopieren Sie den gesamten Block. Öffnen Sie wp-config.php auf Ihrem Server, entweder per SFTP oder über den Datei-Editor Ihres Hosters. Fügen Sie den neuen Block anstelle des bestehenden ein. Speichern Sie die Datei.
Bei der nächsten Seitenanfrage werden alle bestehenden Sitzungen ungültig. Beim nächsten Öffnen des Admin-Bereichs melden Sie sich neu an.
Bevor Sie das in der Produktion tun, sichern Sie wp-config.php. Das Risiko besteht darin, den neuen Block an der falschen Stelle einzufügen und die Datei zu beschädigen. Das Backup gibt Ihnen ein sofortiges Zurücksetzen.
Wie oft man erneuern sollte
Für eine kleine Website mit geringem Risiko ist ein jährliches Erneuern eine sinnvolle Grundlage. Für eine Unternehmenswebsite mit mehreren Nutzern vierteljährlich oder halbjährlich. Für eine Website mit hohem Traffic, bei der Administratoren kommen und gehen, nach jedem Personalwechsel.
Erneuern Sie stets nach einem dieser Ereignisse: einer bestätigten oder vermuteten Kompromittierung; dem Ausscheiden eines Mitarbeiters oder Dienstleisters mit Admin-Zugriff; dem Auftauchen einer Backup-Datei an einem Ort, an dem sie nicht sein sollte; jedem größeren Serverumzug, bei dem Dateien über einen ungesicherten Kanal übertragen wurden.
Mit anderen Worten: Erneuern Sie nach einem festen Zeitplan und außerdem immer dann, wenn etwas geschieht, das die Datei offengelegt haben könnte.
Kombiniert mit weiterer Härtung
Das Erneuern der Salts ist eine von mehreren aufwandsarmen, wirkungsstarken Maßnahmen, die sich in Kombination gegenseitig verstärken. Verbinden Sie es mit 2FA für jedes Administratorkonto, regelmäßigen Plugin- und Core-Updates, einer Prüfung, wer Zugriff hat, und einer sauberen wp-config.php, die in keinem öffentlichen Ordner liegt.
Der gesamte Zeitaufwand beträgt ein bis zwei Stunden im Jahr. Der Nutzen: eine der langlebigsten Kategorien von WordPress-Kompromittierungen zu schließen. Günstig, einfach und fast überall übersprungen.
Brauchen Sie Unterstützung?
Wenn Sie die Salts und Keys Ihrer WordPress-Website im Rahmen einer umfassenderen Sicherheitsbereinigung erneuern lassen möchten, kann Defyn das übernehmen. Es ist eine der kleinen Aufgaben, die wir bei jedem Onboarding erledigen.


