web-dev-qa-db-fra.com

Comment savoir si mon site utilise le fichier xmlrpc.php?

J'ai repris un site Web sur lequel je travaillais, qui avait été développé par un ancien employé. Il semble que ce site ait récemment été victime d'une série d'attaques DDoS via l'utilisation du pingback xmlrpc prouvé par des entrées de journal telles que:

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)" (Évidemment, ce n'est pas un Google bot, car il n'y a aucune raison pour que Google poste dans ce fichier.)

Je crois qu’il existe de nombreuses solutions à ce problème ( Ce tutoriel ) mais j’ai tendance à vouloir bloquer totalement l’accès au fichier. Cependant, je ne sais pas si ce site utilise réellement le service que xmlrpc vous permet d'utiliser. Existe-t-il un moyen particulier de vérifier si le développeur précédent a mis en place quelque chose pour utiliser la fonctionnalité wordpress xmlrpc? Puis-je vérifier les fonctions dans des fichiers spécifiques/y a-t-il quelque chose qui crie pour identifier l'utilisation?

toute aide avec ce serait génial!

EDIT: Est-ce que quelque chose comme ça pourrait être utile?

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

Si j'autorise l'adresse IP du serveur, est-ce que cela fonctionnerait pour les plugins, etc. ou ont-ils tous leur propre adresse IP à ajouter?

3
LewisJWright

Cela ressemble à un bot de spam ou à une énumération plutôt qu’une attaque DDoS. Pour être sûr, vous devriez examiner votre consommation de ressources, la dynamique des adresses IP et peut-être les données utiles.

1. Blocage de l'accès au fichier xmlrpc.php. :

Je pense que vous ne devriez pas:

  1. Il ne peut pas vous aider survivre à une véritable attaque DDoS .
  2. Comme @cybmeta a dit, cela pourrait casser de nombreux services tiers.
  3. Autoriser l'accès à partir de certaines adresses IP n'aide pas non plus, car les adresses IP peuvent être falsifiées et vous ne pouvez pas répertorier toutes les adresses IP qui utiliseront le service XML-RPC.

J'enregistre souvent toutes les adresses IP qui font des demandes à xmlrpc.php, utilise iptables pour configurer la limite de débit. Ensuite, bloquez les IP qui sont sûrement pervers.

2. Comment savoir si votre site utilise xmlrpc.php

  1. Les fonctions et les ressources dans WordPress qui utilisent le service XML-RPC ont une chaîne xmlrpc dans le nom des fonctions ou le nom des fichiers, ce qui vous permet de parcourir votre thème et vos plugins pour vérifier s'il existe des correspondances.
  2. Toutes les requêtes XML-RPC dans WordPress passent par xmlrpc.php quelle define('XMLRPC_REQUEST', true) afin que vous puissiez utiliser:
if ( defined('XMLRPC_REQUEST') && XMLRPC_REQUEST ) {
    // Log something.
    // Or exit immediately if something is evil in the request.
}

Notez que vous ne pouvez pas utiliser le code dans les fichiers theme/plugin. xmlrpc.php est indépendant des thèmes et des plugins, vous devez donc le mettre dans votre fichier wp-config.php.

2
MinhTri

Comme vous l'avez décrit, vous avez été victime d'une attaque par DDoS (ou peut-être pas, je suppose que vous le savez). Ces types d'attaques peuvent concerner n'importe quelle partie d'un site Web dynamique, par exemple les fichiers index.php ou xml-rpc.php.

De mon point de vue, la bonne solution n'est pas de bloquer la partie attaquée mais de bloquer l'attaquant .

Donc, ne bloquez pas l'API XML-RPC dans WrodPress, elle est utilisée par un grand nombre de plugins et de clients externes. ne la bloque que si vous savez vraiment ce que vous faites et ses conséquences. Au lieu de cela, bloquez l'attaquant au niveau du serveur. Par exemple, vous pouvez mettre en liste noire l'adresse IP de l'attaquant dans un pare-feu de serveur ou un fichier .htaccess.

3
cybmeta