Eine definitive Anleitung zu XMLRPC für WordPress (+ So deaktivieren Sie es)

Veröffentlicht: 2021-04-08

Website-Sicherheit ist eine schwierige Sache, um sie richtig zu lösen. Insbesondere bei Sicherheitsproblemen im Zusammenhang mit XML-RPC – wie es häufig bei Angriffen auf WordPress-Sites ausgenutzt wird. Es gibt viele Informationen im Internet, die alle möglichen Lösungen anbieten, aber welche sind richtig? Dieser Artikel erklärt das Wie, die Lösungen da draußen und was eigentlich die beste Lösung ist. Tauchen wir ein!

XMLRPC ist älter als WordPress selbst. Dieses System wurde in WordPress eingeführt, um das Dilemma der langsamen Internetverbindung zu bekämpfen, indem es den Benutzern hilft, neue Beiträge offline zu schreiben und sie dann auf den Server hochzuladen. Die Möglichkeit, WordPress remote mit anderen Anwendungen zu verbinden, war nur mit der Datei xmlrpc.php möglich.

Selbst einige erfahrene Entwickler verstehen XMLRPC und die damit verbundenen Sicherheitsbedrohungen nicht vollständig. Es ist durchaus möglich, dass die Site/Sites, die Sie verwalten, eine aktive XMLRPC-Datei haben, die Ihre sofortige Aufmerksamkeit erfordert, aber Sie können einen effektiven Aktionsplan nur ausführen, wenn Sie wissen, wie XMLRPC betrieben wird und wie es am besten sicher gehandhabt wird.

Obwohl WordPress jetzt über eine eigene REST-API verfügt, ist die Datei xmlrpc.php immer noch im Kern vorhanden und standardmäßig aktiviert, wodurch die WordPress-Site verschiedenen Cyberangriffen ausgesetzt wird. In diesem Artikel lernen wir die Verwendung dieser Datei, die damit verbundenen Schwachstellen und wie Sie damit umgehen, ohne die Sicherheit Ihrer Website zu gefährden.

Inhaltsverzeichnis

  • Was ist eine xmlrpc.php-Datei?
  • Wie bösartig können Hacker mit der xmlrpc.php-Datei sein?
    • Bruteforce-Angriff
    • DDoS-Angriff
    • Cross-Site-Port-Angriff (XSPA)
  • Ineffektive Methoden zum Blockieren von XMLRPC-Angriffen
    • Durch vollständiges Deaktivieren des XMLRPC
    • Warum die Installation eines Sicherheits-Plugins Ihrer Website tatsächlich schadet
    • Wie behandelt Accelerated Domains XMLRPC-Probleme für seine Kunden?
  • Abschließende Gedanken

Was ist eine xmlrpc.php-Datei?

In seiner einfachsten Form wurde XML-RPC (Remote Procedure Call) für die plattformübergreifende Kommunikation erstellt. Dieses Protokoll wurde verwendet, um Prozeduraufrufe unter Verwendung von HTTP als Transport und XML als Encoder durchzuführen. Der Client führt diese Aufrufe durch, indem er eine HTTP-Anforderung an den Server sendet und im Gegenzug die HTTP-Antwort erhält. XML-RPC ruft Funktionen über eine HTTP-Anforderung auf, und diese Funktionen führen dann einige Aktionen aus und senden im Gegenzug hartcodierte Antworten.

Vergleichen wir dies mit einem REST-API-Aufruf, um das Konzept vollständig zu verstehen.

Verfahren RPC SICH AUSRUHEN
Anmelden POST/Anmeldung POST/Benutzer
Benutzer lesen GET/readUser?userid=123 GET/Personen/1234

REST verwendet URL-Parameter, um Ressourcen zu identifizieren, während RPC die Abfrageparameter verwendet, um sie als Funktionsargumente bereitzustellen.

WordPress verwendete XMLRPC, um seinen Benutzern die Remote-Interaktion mit ihrer Website zu ermöglichen. Es verwendet es immer noch, um seine mobile App zu betreiben und Plugins wie JetPack, WooCommerce usw. zu unterstützen. Die Verwendung der xmlrpc.php -Datei hat ihre Nachteile, aber ist die vollständige Deaktivierung die einzig praktikable Lösung? Um dies zu beantworten, müssen wir uns zunächst die damit verbundenen Schwachstellen und die verfügbaren Lösungen zu deren Vermeidung ansehen.

Wie bösartig können Hacker mit der xmlrpc.php-Datei sein?

Mit XMLRPC nutzen Hacker die Remote Procedure Calls (RPC) und rufen Funktionen auf, um die gewünschten Daten abzurufen. Bei den meisten WordPress-Sites ist die xmlrpc.php -Datei leicht nachverfolgbar, und allein durch das Senden beliebiger XML-Daten kontrollieren Hacker die Site, um den Code auszuführen, den sie vorbereitet haben, um eine bestimmte Art von Angriff auszuführen.

Um zu verstehen, wie WordPress XMLRPC kompromittiert wird, schauen wir uns die beliebtesten damit verbundenen Cyberangriffe an.

Bruteforce-Angriff

Beim Bruteforce-Angriff versucht der Hacker, durch zahlreiche Anmeldeversuche den richtigen Benutzernamen und das richtige Passwort zu erraten. Leider verwenden viele WordPress-Sites schwache Admin-Passwörter oder haben keine Sicherheitsebene hinzugefügt, um Angreifer zu stoppen. Diese Websites können mit dieser Art von Angriff leicht kompromittiert werden.

Andere verwenden ein starkes Passwort und haben auch Sicherheitsmechanismen wie reCaptcha und eine automatische IP-Blockierung, die gegen Brute-Force-Angriffe wirksam ist, aber wenn sich der Hacker für die Verwendung von XMLRPC entscheidet; Sie muss nicht einmal auf den WordPress-Admin zugreifen.

Ein sehr verbreitetes Tool von Kali Linux, WPSCAN, wird verwendet, um alle Benutzernamen aufzuzählen, und sobald dies erledigt ist, erzwingen die Hacker das Passwort mithilfe der xmlrpc.php -Datei, indem sie die folgende HTTP-Anforderung an die Opferseite senden.

POST /xmlrpc.php HTTP/1.1
User-Agent: Fiddler
Host: www.example.com
Content-Length: 164

<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>

Im obigen Beispiel kann ein Hacker Tausende von Variationen senden, bis er das richtige Passwort abruft.

Die folgende Antwort wird auf die obige Anfrage zurückgesendet. Die Antwort enthält den Fehlercode und eine klare Meldung, dass der versuchte Benutzername und das Passwort falsch waren. Es ist ein klarer Hinweis, der den Hacker anweist, es erneut zu versuchen, bis das richtige Passwort gefunden wird.

HTTP/1.1 200 OK
Server: nginx
Date: Sun, 26 May 2019 13:30:17 GMT
Content-Type: text/xml; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.1.21
Cache-Control: private, must-revalidate
Expires: Sun, 02 Jun 2019 13:30:17 GMT
Content-Length: 403

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>403</int></value>
</member>
<member>
<name>faultString</name>
<value><string>Incorrect username or password.</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>

Die Antwort gab HTTP 200-Code und die Meldung zurück, dass der angegebene Benutzername und das Kennwort falsch waren. Durch den XMLRPC-Kanal muss sich ein Hacker keine Gedanken über reCaptchas machen oder Plugins für Anmeldeversuche einschränken. Sie kann die Variationen so lange ausführen, bis das richtige Passwort abgerufen wird.

Hinweis: Brute-Force-Angriffe sind ressourcenintensiv und verursachen auch Leistungsprobleme. Der Trial-and-Error -Prozess läuft über einen längeren Zeitraum in einer Schleife, die Ihren Server damit beschäftigen kann, die tatsächlichen Besucher zu bedienen. Dieser unnötige Ressourcenverbrauch führt dazu, dass Server mehr Strom verbrauchen.

DDoS-Angriff

Distributed Denial of Service (DDoS) ist einer der tödlichsten Cyberangriffe, der den Server lahmlegen kann, indem er mit Hunderten und Tausenden gleichzeitiger Anfragen getroffen wird. Hacker verwenden die Pingback-Funktion von WordPress zusammen mit der Datei xmlrpc.php, um solche Angriffe auszuführen.

Im Idealfall zielt der Hacker auf den Endpunkt oder eine Seite, die mehrmals angegriffen werden kann und länger braucht, um zu antworten. Auf diese Weise kann ein einzelner Treffer maximale Auswirkungen auf die Serverressourcen haben, und in unserem Fall leistet XMLRPC dem Hacker gute Dienste, wenn es darum geht, solche Endpunkte aufzudecken.

Mehrere bereits kompromittierte WordPress-Sites werden verwendet, um die pingback.ping-Methode auszuführen, um ein einzelnes Opfer anzugreifen. Die überwältigenden HTTP GET- und POST-Anforderungen blockieren den regulären Datenverkehr und bringen schließlich den Server zum Absturz.

Zuerst prüft der Hacker, ob die xmlrpc.php-Datei aktiviert ist oder nicht, indem er die folgende Anfrage sendet.

POST /xmlrpc.php HTTP/1.1
Host: withinsecurity.com
Connection: keep-alive
Content-Length: 175

<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>demo.sayHello</methodName>
<params>
<param>
<value>admin</value>
</param>
</params>
</methodCall>

Sobald bestätigt ist, dass der XMLRPC auf der Ziel-Website aktiviert ist, beginnt der Angreifer, ihn zu treffen, indem er das Netzwerk der ausgenutzten Websites verwendet, um mehrere Pingback-Anforderungen an eine Opfer-Website zu senden. Dies kann von mehreren Hosts aus automatisiert und dazu verwendet werden, einen Massen-DDoS-Angriff auf die Opferseite auszulösen.

POST /xmlrpc.php HTTP/1.1
Host: withinsecurity.com
Connection: keep-alive
Content-Length: 293

<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param>
<value><string>http://173.244.58.36/</string></value>
</param>
<param>
<value><string>https://example.com/blog/how-to-make-a-salad</string></value>
</param>
</params>
</methodCall>

Cross-Site-Port-Angriff (XSPA)

Cross-Site Port Attacks (XSPA) sind sehr verbreitet, bei denen der Hacker das bösartige Skript einschleust, um Informationen über TCP-Ports und IP-Adressen abzurufen. Im Fall von WordPress wird XMLRPC zusammen mit seinem Pingback-Mechanismus verwendet, um jede IP-Maskierung wie grundlegende WAF wie Cloudflare zu umgehen.

Bei einem XSPA-Angriff verwendet der Hacker die pingback.ping-Methode, um einen Beitrag auf einer Zielwebsite zu pingen, die wiederum die IP-Adresse als Antwort sendet. Hacker verwendet einen Sniffer, um den Endpunkt zum Senden des Pingbacks und einer Live-URL eines Blogbeitrags zu erstellen.

Hacker senden die folgende Anfrage von ihrem Server.

<methodCall>
<methodName>pingback.ping</methodName>
<params><param>
<value><string>http://<YOUR SERVER >:<port></string></value>
</param><param><value><string>http://<SOME VALID BLOG FROM THE SITE ></string>
</value></param></params>
</methodCall>

Wenn die Antwort faultCode und einen Wert größer als 0 enthält, bedeutet dies, dass der Port offen ist, damit Sie direkt mit dem Senden der HTTP-Pakete beginnen können.

Ineffektive Methoden zum Blockieren von XMLRPC-Angriffen

Bisher haben wir in diesem Artikel festgestellt, dass die xmlrpc.php-Datei anfällig für einige ernsthafte Cyber-Angriffe wie DDoS, Bruteforce und Cross-Site Port Attack ist, daher ist es entscheidend, sie richtig zu handhaben, um diese Angriffe zu blockieren .

Durch vollständiges Löschen des XMLRPC

Sie können einfach die XMLRPC-Datei löschen, die Ihren Server dazu bringt, 404-Fehler an jeden zu werfen, der versucht, darauf zuzugreifen. Der Nachteil dieser Lösung ist, dass die Datei jedes Mal neu erstellt wird, wenn Sie WordPress aktualisieren.

Durch vollständiges Deaktivieren des XMLRPC

Die andere praktikablere Option besteht darin, die Datei xmlrpc.php zu deaktivieren. Sie können dies tun, indem Sie einfach den Codeblock in Ihre .htaccess -Datei einfügen. Stellen Sie sicher, dass Sie dies vor den sich nie ändernden .htaccess -Regeln tun, die von WordPress hinzugefügt werden.

<Files xmlrpc.php>
order allow,deny
deny from all
</Files>

Dadurch wird die xmlrpc.php -Datei für jede Anwendung oder jeden Dienst, der sie verwendet, deaktiviert. Sie können eine bestimmte IP-Adresse auf die Whitelist setzen, falls Sie weiterhin über XMLRPC auf Ihre WordPress-Site zugreifen möchten. Dazu müssen Sie den folgenden Befehl hinzufügen:

<Files xmlrpc.php>
<RequireAny>
Require ip 1.1.1.2
Require ip 2001:db8::/32
</RequireAny>
</Files>

Vorteile

  • Beseitigt das Risiko, dass XMLRPC bei Cyberangriffen missbraucht wird.
  • Langfristige Leistungsvorteile und Einsparungen bei Serverressourcen.

Nachteile

  • Das Deaktivieren von XMLRPC entspricht dem Deaktivieren des Remotezugriffs für Apps, die diese Version des Remotezugriffs verwenden. Dies bedeutet, dass Jetpack, WP Mobile App oder jede andere Lösung, die sich über XMLRPC mit Ihrer WordPress-Site verbindet, sich nicht mehr mit Ihrer Site verbinden kann.
  • Legacy-Code für benutzerdefinierte Apps funktioniert möglicherweise auch nicht.

Warum die Installation eines Sicherheits-Plugins Ihrer Website tatsächlich schadet

WordPress-Benutzer verlassen sich oft auf Plugins für jede erforderliche Funktion oder Funktionalität, ohne viel über deren Auswirkungen auf die Leistung der Website nachzudenken. Es gibt mehrere WordPress-Sicherheits-Plugins, die versprechen, Ihre Website vor XMLRPC-bezogenen Sicherheitsproblemen zu schützen, aber in Wirklichkeit schaden sie Ihrer Website mehr.

Hier sind einige der Gründe, warum das Sichern Ihrer Website mit einem Plugin nicht die beste Wahl ist.

  • Sicherheits-Plugins sind nur auf Anwendungsebene wirksam und schützen Ihren Server nicht vor Angriffen.
  • Sie fügen Ihrer Website unnötigen Code hinzu, der die Leistung herabsetzt und die Zeit bis zum ersten Byte (TTFB) erhöht.
  • Einige dieser Plugins schaden mehr als sie nützen und werden von Hackern verwendet, um Hintertüren zu Ihrer Website zu erstellen.
  • Diese Plugins erfordern eine häufige Verwaltung, die die Arbeitsbelastung erhöht.

Nach der obigen Bewertung bietet keine der Optionen eine ideale Lösung, um das XMLRPC-Sicherheitsproblem zu handhaben. Dies bringt uns zu beschleunigten Domänen. Ein Dienst, der entwickelt wurde, um komplexe sicherheitsbezogene Probleme und vieles mehr zu lösen. Schauen wir uns an, wie Accelerated Domains das XMLRPC-Problem effektiv für Sie lösen können.

Wie behandelt Accelerated Domains XMLRPC-Probleme für seine Kunden?

Accelerated Domains löst komplexe Leistungs-, Sicherheits- und Skalierbarkeitsprobleme auf die effizienteste Weise. Accelerated Domains bietet verwaltete Sicherheit auf Unternehmensebene, die alle Arten von Cyberangriffen blockiert, einschließlich derjenigen, die mit XMLRPC verbunden sind.

Die intelligente Sicherheits-Engine von Accelerated Domains sitzt vor dem Server und filtert fast 40 % des gesamten HTTP-Verkehrs. Durch seine intelligenten heuristischen Funktionen, die auf kontinuierlicher Dateneinspeisung und Servebolts praktischem Wissen und Verkehrsanalyse basieren, erkennt es selbst die raffiniertesten Cyberangriffe frühzeitig im Zeitplan. Beschleunigte Domains wirken, ohne die Leistung Ihrer Website in irgendeiner Weise zu beeinträchtigen. Tatsächlich beschleunigt es es.

Accelerated Domains proactive Security Engine schützt Ihre Website automatisch vor DDoS-Angriffen. Mit einer Netzwerkkapazität von fast 60 Tbit/s ist es gut gerüstet, um selbst einigen der größten DDoS-Angriffe im Internet standzuhalten. In ähnlicher Weise bietet es einen effektiven Verteidigungsmechanismus gegen Bruteforce-Angriffe durch eine automatische Ratenbegrenzungsfunktion, bei der die Anzahl der von einer einzelnen Quelle generierten Anfragen identifiziert und begrenzt wird, um böswillige Aktivitäten zu verhindern.

Vorteile

  • Accelerated Domains mindert die meisten Sicherheitslücken im Zusammenhang mit XMLRPC, daher muss es nicht deaktiviert werden.
  • Ermöglicht dem Benutzer, Plugins wie Jetpack, die WooCommerce-App und andere Tools, die von der xmlrpc.php-Datei abhängig sind, weiterhin zu verwenden.
  • Problemlose Integration in jede Domain, sodass die .htaccess -Datei nicht geändert werden muss.
  • Es müssen keine zusätzlichen Plugins installiert werden.

Nachteile

  • Es hat keine.

Abschließende Gedanken

Cyberangriffe werden von Tag zu Tag raffinierter, und als Webmaster und Geschäftsinhaber ist es für Sie von entscheidender Bedeutung, sie zu verstehen und die Werkzeuge zu kennen, um ihnen zu begegnen. Die Mehrzahl der Angriffe wird durch einen proaktiven Ansatz wie die ständige Überwachung und Aktualisierung der Software oder durch das Hinzufügen von Tools wie Accelerated Domains vermieden, die all dies per Autopilot erledigen. Nach der Aktivierung filtert Accelerated Domains den Datenverkehr auf intelligente Weise und ergreift bei Bedarf die erforderlichen Maßnahmen, um Ihren Ursprungsserver und Ihre Website vor Cyberangriffen zu schützen.