CycleSEC WordPress-Security #05: Zwei-Faktor-Authentifizierung
WordPress-Security #05
In der Beitrags-Reihe „CycleSEC WordPress-Security“ befassen wir uns im CycleSEC-Blog mit Härtungsmaßnahmen, die Sie bei entsprechendem Schutzbedarf Ihrer WordPress-Webseite umsetzen können.
WordPress begann 2003 als Blog-Software. Heute liegt das Content Management System (CMS) in der Verbreitung unangefochten auf Platz 1 [1, 2, 3]. Grund genug, sich mit erweiterten Sicherheitsfunktionalitäten für WordPress zu beschäftigen.
Die Authentifizierung mittels Benutzername und Passwort ist bei WordPress Standard. Der Ruf nach einer Zwei-Faktor-Authentifizierung wird jedoch lauter. Befriedigt wird er bisher nur über den Einsatz zusätzlicher Plugins [4]. Aber was ist das Problem mit Benutzername und Passwort?
Hintergrundwissen
Die Authentifizierung an einem Account mit Username und Passwort erfordert lediglich die Kenntnis dieser beiden Werte. Ist die Vertraulichkeit des Passworts verloren, ist der Account kompromittiert. Das System kann dann nicht mehr zwischen legitimem Benutzer und einem Angreifer unterscheiden. Eine Lösung wäre es, wenn der legitime Benutzer ein weiteres Authentifizierungsmarkmal vorweisen könnte – einen zweiten Authentifizierungsfaktor.
Dieser zweite Faktor dürfte natürlich nicht wieder nur von der Kenntnis des Faktors und seiner Vertraulichkeit abhängen. Ein zweites Passwort würde als zweiter Faktor demnach nicht den gewünschten Effekt erzielen. Neben der Kenntnis eines Faktors käme z.B. noch der Besitz eines weiteren Faktors in Frage. Ein bekanntes Beispiel für die Zwei-Faktor-Authentifizierung ist die Kombination aus EC-Karte (Besitz) und PIN (Kenntnis/Wissen). Auch möglich wäre ein biometrisches Merkmal (Sein) als weiterer Faktor – z.B. Fingerabdruck, Iris etc..
Der Nachteil beim Faktor Besitz: Wird der Gegenstand, dessen Besitz nötig ist, gestohlen oder verloren, ist kein Zugriff mehr möglich. Darüber hinaus entstehen bei Erstanschaffung und bei jeder Ersatzbeschaffung zusätzliche Kosten. Alle WordPress-User mit Smartcard und Kartenleser auszustatten, kommt in den meisten Anwendungsfällen daher nicht in Frage. Dem Sicherheitsgewinn stünden zu hohe Kosten und ein zu hoher Komfortverlust entgegen. Die Lösung stellen sog. mittelbare Zwei-Faktor-Authentifizierungen dar, bei denen der Besitz sozusagen simuliert wird. Kommen wir aber erst einmal zur Schwachstelle.
Schwachstelle
Bei einer Standardinstallation von WordPress werden zur Authentifizierung von Usern lediglich Username und ein Passwort als einziger Authentifizierungfaktor angeboten. Insbesondere für privilegierte Accounts wird das allgemein als unzureichend betrachtet.
Angriffsszenario
Das Passwort kann durch ein Versehen oder z.B. via Phishing bloßgestellt werden. Ist die Vertraulichkeit des Passworts verloren, ist ist ohne Zwei-Faktor-Authentifizierung der zugehörige Account vollständig kompromittiert.
Härtungsmaßnahme
Zuerst: Machen Sie immer Backups und regelmäßige Recovery-Tests, bevor Sie Einstellungen an Ihrer WordPress verändern. Die wichtigste Härtungsmaßnahme ist häufig ein aktuelles und funktionstüchtiges Backup!
Zur Härtung des Anmeldevorgangs an Ihrer WordPress können Sie eine mittelbare Zwei-Faktor-Authentifizierungen implementieren.
Hinweis: An dieser Stelle kommen wir nochmal auf die XML-RPCs aus unserer ersten Folge WordPress-Security zu sprechen. Die Implementierung einer Zwei-Faktor-Authentifizierung ist nämlich nur dann vollständig wirksam, wenn man sie nicht wieder über das XML-RPC-Interface aushöhlt. XML-RPCs ermöglichen eine weitere Zugriffsmöglichkeit außerhalb der Web-Oberfläche, die weiterhin ohne Zwei-Faktor-Authentifizierung funktionieren würde, wenn man sie nicht deaktiviert.
Umsetzung
Die Härtungsmaßnahme lässt sich mit Hilfe des Google Authenticators leicht umsetzen. Zur Nutzung benötigt man nur die „Google Authenticator“ App auf einem mobilen Endgerät. Der Besitz der App und des Mobilgeräts wird so zum (mittelbaren) zweiten Faktor, wenn die App mit der WordPress-Installation gekoppelt wurde. Neben der App benötigt man dafür ein WordPress-Plugin wie z.B. „Google Authenticator“. Nach der Installation des Plugins kann man unter „Benutzer“ in den Einstellungen jedes Nutzers die Zwei-Faktor-Authentifizierung individuell aktivieren (vgl. Abbildung 1).
Durch Eingabe des Secrets bzw. Scannen des QR-Codes tauschen die App und das Plugin ein Shared Secret aus, das dann bei jedem Login zur Erzeugung eines Einmalpassworts genutzt wird (vgl. Abbildung 2).
Haben Sie nur einen Admin-Account, sollten Sie das Secret bzw. den QR-Code an einem sicheren Ort aufbewahren, da der Zugriff auf das Konto bei Verlust des mobilen Endgeräts nur noch manuell und mit etwas Aufwand wiederherzustellen wäre. Insbesondere sollten Sie sich tunlichst erst dann abmelden, wenn Sie in der App auf dem Endgerät das Secret eingegeben haben. Also bitte nicht ohne „Schlüssel“ das „Haus“ verlassen, falls keiner mehr „zuhause“ ist…
Einmal aktiviert erwartet Sie beim nächsten Login die zusätzliche Abfrage nach dem Einmalpasswort (vgl. Abbildung 3).
Das war es auch schon. Die Einrichtung einer Zwei-Faktor Authentifizierung ist auf diese.
Alle Beiträge aus der Reihe
CycleSEC WordPress-Security #01: Login-URL verschleiern
CycleSEC WordPress-Security #02: Absichern der wp-config.php
CycleSEC WordPress-Security #03: HTTP TRACE deaktivieren
CycleSEC WordPress-Security #04: Online-Editoren deaktivieren
CycleSEC WordPress-Security #05: Zwei-Faktor-Authentifizierung
Quellen
[1] W3Techs.com, Historical yearly trends in the usage of content management systems for websites
[2] WEBKALKULATOR, CMS Marktanteile & CMS Budgets
[3] CMSCrawler, Statistics for Germany
[4] Param Chahal, https://blog.templatetoaster.com/wordpress-two-factor-authentication/
Hinweis
Der Inhalt dieses Beitrags wurde mit Sorgfalt und auf Grundlage der uns bekannten Informationen erstellt. Da wir keine Informationen zu Ihrer konkreten Anwendungssituation und Ihrer spezifischen Bedrohungslage haben, kann für die Umsetzung der hier gegeben Empfehlungen keine Gewähr übernommen werden.
Sicherheitsmaßnahmen können andere, ganz eigene Risiken beinhalten und verursachen. Die durch CycleSEC gegebenen Empfehlungen zielen darauf ab, Risiken für die Informations- und IT-Sicherheit zu reduzieren. In den meisten Fällen können Risiken nicht vollständig vermieden werden.