wake-up-neo.com

Woher weiß ich, ob meine Site die Datei xmlrpc.php verwendet?

Ich habe eine Website übernommen, auf der ich arbeite, die von einem früheren Mitarbeiter entwickelt wurde. Es scheint, dass diese Website kürzlich Opfer einer Reihe von DDoS-Angriffen geworden ist, die durch die Verwendung des xmlrpc-Pingbacks verursacht wurden, der durch Protokolleinträge wie diesen bewiesen wird:

154.16.63.40 - - [22/May/2016:06:52:49 +0100] "POST /xmlrpc.php HTTP/1.1" 200 596 "-" "Googlebot/2.1 (+http://www.google.com/bot.html)" (Dies ist offensichtlich kein Google Bot, da Google keinen Grund hat, in diese Datei zu posten.)

Ich glaube, es gibt viele Lösungen für dieses Problem ( Dieses Tutorial ), aber ich tendiere dazu, den Zugriff auf die Datei direkt zu blockieren. Ich bin mir jedoch nicht sicher, ob diese Site tatsächlich den Dienst verwendet, den Sie mit xmlrpc nutzen können. Gibt es eine spezielle Möglichkeit, um zu überprüfen, ob der vorherige Entwickler irgendetwas eingerichtet hat, um die Funktionalität von WordPress XMLRPC zu nutzen? Könnte ich nach Funktionen in bestimmten Dateien suchen/gibt es irgendetwas, das schreit, um die Verwendung zu identifizieren?

jede Hilfe dabei wäre großartig!

EDIT: Wäre so etwas hilfreich?

<FilesMatch "^(xmlrpc\.php)">
    Order Deny,Allow
    # IP address Whitelist
    Allow from xxx.xxx.xxx.xxx
    Deny from all
</FilesMatch>

Wenn ich von der IP-Adresse des Servers zulasse, würde dies für Plugins usw. funktionieren, oder haben alle ihre eigene IP-Adresse, die hinzugefügt werden müsste?

3
LewisJWright

Dies sieht eher nach einem Spam-Bot oder einer Aufzählung als nach einem DDoS-Angriff aus. Um sicherzugehen, sollten Sie Ihren Ressourcenverbrauch, die Dynamik der IP-Adressen und möglicherweise die Nutzdaten untersuchen.

1. Zugriff auf xmlrpc.php-Datei blockieren. :

Ich denke du solltest nicht:

  1. Es kann Ihnen nicht helfen einen echten DDoS-Angriff zu überleben .
  2. Wie @cybmeta sagte, könnte es viele Dienste von Drittanbietern brechen.
  3. Das Zulassen des Zugriffs von bestimmten IP-Adressen hilft auch nicht, da die IP-Adresse gefälscht werden kann und Sie nicht alle IP-Adressen auflisten können, die den XML-RPC-Dienst verwenden.

Ich protokolliere oft alle IPs, die Anfragen an xmlrpc.php stellen, und verwende iptables, um die Geschwindigkeitsbegrenzung festzulegen. Dann blockiere IPs, die mit Sicherheit böse sind.

2. Woher wissen Sie, ob Ihre Site xmlrpc.php verwendet?

  1. Funktionen und Ressourcen in WordPress, die den XML-RPC-Dienst verwenden, haben eine xmlrpc Zeichenfolge im Namen der Funktionen oder Dateien, sodass Sie Ihr Thema und die Plugins durchsuchen können, um zu überprüfen, ob Übereinstimmungen vorliegen.
  2. Alle XML-RPC-Anforderungen in WordPress durchlaufen xmlrpc.php, der define('XMLRPC_REQUEST', true), sodass Sie Folgendes verwenden können:
if ( defined('XMLRPC_REQUEST') && XMLRPC_REQUEST ) {
    // Log something.
    // Or exit immediately if something is evil in the request.
}

Beachten Sie, dass Sie den Code nicht in Theme/Plugin-Dateien verwenden können. xmlrpc.php ist unabhängig von Themes und Plugins. Sie müssen ihn daher in Ihre wp-config.php-Datei einfügen.

2
MinhTri

Wie Sie beschrieben haben, waren Sie Opfer einer DDoS-Attacke (oder vielleicht auch nicht, ich nehme nur an, Sie wissen es). Diese Arten von Angriffen können gegen jeden Teil einer dynamischen Website gerichtet sein, beispielsweise gegen die Dateien index.php oder xml-rpc.php.

Aus meiner Sicht ist die richtige Lösung, nicht den angegriffenen Teil, sondern den Angreifer zu blockieren .

Blockieren Sie daher nicht die XML-RPC-API in WrodPress, da diese von einer großen Anzahl von Plugins und externen Clients verwendet wird. Blockiere es nur, wenn du wirklich weißt, was du tust und welche Konsequenzen es hat. Blockieren Sie stattdessen den Angreifer auf Serverebene. Sie können beispielsweise die IP-Adresse des Angreifers in einer Server-Firewall oder in .htaccess auf eine schwarze Liste setzen.

3
cybmeta