Kategorie: Wordpress Sicherheit und XMLRPC

WordPress Sicherheit – XMLRPC, warum ist es gefährlich?

Deine WordPress Sicherheit – warum ist XMLRPC gefährlich?

In Bezug auf die WordPress Sicherheit spielte die XML-RPC-Schnittstelle bei seiner Einführung im Jahr 2003 noch weniger eine Rolle. Über die XML-RPC-Schnittstelle wurde von WordPress eine Bandbreite an Funktionen angeboten, die es dir ermöglichen, Daten aus der Ferne zu übertragen und mit deiner Webseite zu interagieren. Auch wenn diese Schnittstelle damals gewisse Vorteile und Funktionen bereitstellt, birgt sie besonders heute wirklich ein erhebliches Risiko!

Heute werde ich dir erklären, was genau diese (alte) Schnittstelle ist, welche Möglichkeiten sie bietet und wie du sie heute am besten deaktivieren solltest.

Die WordPress Sicherheit – Was ist eigentlich diese berüchtigte xmlrpc.php?

Unter /xmlrpc.php stellt WordPress standardmäßig eine Schnittstelle zur Verarbeitung von XML-Dateien bereit. RPC steht hierbei für Remote Procedure Call, was so viel bedeutet wie das Aufrufen einer entfernten Funktion. Über diese Schnittstelle kommunizieren verschiedene Systeme miteinander, wie beispielsweise mobile Anwendungen oder externe Programme.

Ein gutes Beispiel dafür ist die mobile WordPress-App, die es ermöglicht, Medien hochzuladen und Beiträge zu veröffentlichen. Nun ja, mir wäre es eh zu nervig, über ein Smartpohne mit dem Fummel-Display im Blog zu arbeite. Das geht doch viel besser am Notebook oder PC oder?

Bis zur Version 3.5 kommunizierten diese App und deine WordPress-Seite ausschließlich über die XML-RPC-Schnittstelle. Heutzutage erfolgt dies übrigens über die REST-Schnittstelle, da die veraltete xmlrpc.php infolge dessen also ersetzt wurde.

Warum wird xmlrpc.php als gefährlich angesehen?

Die WordPress XML-RPC-Schnittstelle gewährt einen öffentlichen Zugang zu internen Funktionen. Dies stellt einen verlockenden Angriffsvektor für deinen WordPress-Server dar. Die häufigsten Angriffe, die beobachtet wurden, sind daher DDoS-Attacken und Brute-Force-Angriffe.

Beispiel WordPress Sicherheit XMLRPC

Beispiel WordPress Sicherheit XMLRPC

Bei einer DDoS-Attacke nutzt der Angreifer die XML-RPC-Schnittstelle (siehe Bild rechts!), die eigentlich für die Registrierung von Pingbacks gedacht ist. Ein Pingback ist ein Benachrichtigungssystem, das den ursprünglichen Verfasser über Verlinkungen in anderen Blogbeiträgen informiert. Ein Angreifer kann damit eine große Anzahl von Pingbacks gleichzeitig senden, um deinen Server zu überlasten und infolgedessen deine Webseite unzugänglich zu machen.

Bei einem Brute-Force-Angriff wird beispielsweise die wp.getUsersBlogs-Funktion der XML-RPC-Schnittstelle genutzt, um hiermit eine Vielzahl von Benutzernamen- und Passwortkombinationen auszuprobieren. Wenn dieser Angriff erfolgreich ist, erhält der Angreifer gültige Anmeldeinformationen und kann sich in die gehackte Webseite einloggen.

In unseren täglichen Hacker Protokoll sind es bis heute oft Versuche, mittel XMLRPC an die Wensite zu kommen, um sie zu übernehmen. Diese Idioten bekommen hier und auf bersits vielen anderen Homepage von Freunden dann ein 404. Sie landen dann von den anderen Websites immer hier auf unserer Homepage, Haha. 🙂

Sollte man bzgl. der WordPress Sicherheit die xmlrpc.php deaktivieren?

Falls bei deiner Homepage keine Abhängigkeiten von dieser Schnittstelle bestehen, kannst du sie wirklich problemlos deaktivieren. Die Schnittstelle existiert ja weiterhin, um eben die Abwärtskompatibilität mit älteren Systemen noch zu gewährleisten. Daher kann das WordPress-Team diese Schnittstelle in zukünftigen Versionen leider noch nicht deaktivieren. Andernfalls könnten sonst veraltete Systeme nicht mehr mit WordPress kommunizieren.

Aufgrund dieser Abhängigkeiten kann allerdings auch nicht jeder die Schnittstelle deaktivieren. Hier können jedoch verschiedene Plugins wie „Disable XML-RPC Pingback“ helfen, die dann nur bestimmte Funktionalitäten der Schnittstelle deaktivieren.

Wie kann man die Schnittstelle vollständig entfernen?

Ein einfaches Löschen der Datei reicht hier bei weitem natürlich nicht aus, da diese bei jedem kommenden WordPress-Update immer wieder neu erstellt würde. Die Schnittstelle kann am besten durch die Konfiguration der Webserversoftware wie Apache- oder NGINX-Server entfernt werden. Wenn das zu technisch ist, kann problemlos ein Plugin wie „Disable XML RPC API“ genutzt werden, um die Schnittstelle zu deaktivieren.

Alternativ gibt es auch diesen Filter, über den ich bereits einen Beitrag geschrieben habe. Dieser Filter deaktiviert die XML-RPC-Schnittstelle (rechts ein Bild dazu):

Wordpress Sicherheit XMLRPC deaktivieren

WordPress Sicherheit XMLRPC deaktivieren

Hier der als Text dazu:

add_filter( ‚xmlrpc_enabled‘, ‚__return_false‘ );

Wenn du die Schnittstelle selbst deaktivieren möchtest, folge basierend auf deinem genutzten Webserver diesen Schritten. Beim Entfernung unter Apache kann der Zugriff auf Dateien über die .htaccess-Datei gesteuert werden. Um den Zugriff auf die xmlrpc.php-Datei zu verbieten, füge folgenden Code im Stammverzeichnis von WordPress in die .htaccess-Datei ein:

<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>

Beim Entfernen unter NGINX wird der Zugriff über einen Serverblock gesteuert. Innerhalb des server { … } Blocks muss folgender Code eingefügt werden:

location ~* ^/xmlrpc.php$ {
return 403;
}

Alternativ kannst du diesen Code in einer weiteren Konfigurationsdatei unter /etc/nginx/includes speichern und in jedem WordPress Serverblock diese Konfiguration mittels include /etc/nginx/includes/proxy.conf einbinden.

Als Ergenis solltest du die Fehlermeldung 403 erhalten. 🙂 Dann funktioniert die Regel, der Zugriff auf xmlrpc.php ist jetzt verwehrt.

Die WordPress Sicherheit wurde erhöht, das Ziel wurde erreicht.

Nun solltest du sicherer unterwegs sein, ohne die eh veraltete XML-RPC-Schnittstelle. Um sicherzugehen, versuche einfach mal, deine URL mit einem angehängten /xmlrpc.php zu öffnen. Du solltest eine 403-Fehlermeldung erhalten, ähnlich wie bei unserer Webseite hier.

Bleibe immer sicher und halte dein WordPress durch eine höhere Sicherheit geschützt!

Weitere Infos zu XMLRPC übrigens auch auf Wiki. 😉

Hacker Idioten - Best of Amateurs