WordPress: XML-RPC-Schnittstelle abschalten! Sicher ist sicher!

Ist deine WordPress-Seite schon mal Opfer einer Brute-Force-Attacke geworden? Nicht unwahrscheinlich, dass die XML-RPC-Schnittstelle deiner Seite Angriffspunkt war. Das muss nicht sein, aber vielleicht klären wir erst einmal ein paar Begriffe:

  • Brute-Force-Attacke: Gewöhnlich sagt man Algorithmen ja eine gewisse Intelligenz nach, in Wahrheit sind sie in der Regel aber doch ziemlich dumm. Und so ist die Trial-and-Error-Methode nach wie vor eine der beliebtesten Wege sich Zugangsdaten zu einer Webseite zu verschaffen. Innerhalb von Sekundenbruchteilen werden einfach alle möglichen Kombinationen ausprobiert. Auch dann kann es verdammt lange dauern, bis die richtige Kombination dabei ist, allein währenddessen geht so manch Server in die Knie und die Webseite ist nicht erreichbar.
  • XML-RPC-Schnittstelle: Manchmal macht es WordPress Angreifern auch ziemlich einfach, nicht immer ist also der Nutzer schuld. Mit Version 3.5 wurde die XML-RPC-Schnittstelle standardmäßig aktiviert. Allerdings ohne sie wirklich mit Bordmitteln abschalten zu können. Die Schnittstelle hat durchaus ihren Sinn, etwa wenn man Pingbacks von anderen Blogs haben möchte. Notwendig ist sie auch dann, wenn man sein Blog mit eine App oder Desktop-Anwendung füllen möchte.

Und wegen letzterem Fall bietet die Schnittstelle eben auch die Möglichkeit sich einzuloggen. Da sich unter WordPress-Nutzern inzwischen herumgesprochen hat, dass man seinen Adminbereich besser schützen sollte, verlagerten Angreifer ihr Ziel auf die XML-RPC-Schnittstelle. Seit langem ist sie einer der großen Schwachpunkte.

Was tun?

Natürlich gibt es auch hier das ein oder andere Plugin, aber das Standard-Plugin ist zum Beispiel schon ziemlich in die Jahre gekommen und wer auf Nummer Sicher gehen will, sollte selbst ein wenig Hand anlegen. Das ist im Übrigen auch einfacher, als man denkt. Es genügt zwei Dateien anzupassen.

In die .htacces-Datei sollte man folgenden Code eintragen:

#XML-RPC Schnittstelle abschalten
<Files xmlrpc.php>
 Order Deny,Allow
 Deny from all
 </Files>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Mit diesen Zeilen schaltet man den Zugriff auf die Datei einfach ab. Abgelegt gehört die .htaccess in das Startverzeichnis der Webseite. Kleiner Tipp für Anfänger, die Datei wird von vielen FTP-Programmen oder auch Windows und Macs nicht immer angezeigt, da .htacces wegen des Punktes davor als Systemdatei erkannt wird und deshalb nicht sichtbar ist. Bei Windows 10 kann man sie zum Beispiel im Explorer über Ansicht > Ein/Ausblenden sichtbar machen.

Und noch ein wichtiger Hinweis: Gut aufpassen, in der .htaccess-Datei kann man auch was kaputt machen!

Das gilt auch für die functions.php, die das Kernstück eines Templates von WordPress darstellt. Ihr findet sie unter folgendem Pfad:

/STARVERZEICHNIS/wp-content/themes/TEMPLATENAME/functions.php

Einfacher geht es natürlich über Design > Editor. 🙂

Auch hier muss die XML-RPC-Schnittstelle abgeschaltet werden, das wird über den ersten der beiden Codeschnipsel erreicht:

<?php

/* Die XML-RPC-Schnittstelle komplett abschalten */
add_filter( 'xmlrpc_enabled', '__return_false' );

/* Den HTTP-Header vom XML-RPC-Eintrag bereinigen */
add_filter( 'wp_headers', 'AH_remove_x_pingback' );
 function AH_remove_x_pingback( $headers )
 {
 unset( $headers['X-Pingback'] );
 return $headers;
 }

Der zweite sorgt dafür, dass die XML-RPC-Schnittstelle auch gar nicht mehr im HTTP-Header erscheint, also Außenstehende nicht einmal mehr wissen können, dass sie rein physisch von auf dem Server existiert.

About Thomas Matterne

Thomas Matterne ist Chefredakteur des dreisprachigen Online-Magazins DenkZeit und als Online-Marketing-Manager tätig. Der ausgebildete Journalist hat ein Diplom in Wirtschaftsinformatik, und schreibt an dieser Stelle über IT-, Online-Marketing- und SEO-Themen - unteranderem.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.