XML-RPC – Comment sécuriser votre site WordPress des attaques par Force Brute

Sucuri a publié le 8 Octobre un article faisant part d’une attaque de grande envergure qui pourrait donner aux pirates l’accès à votre blog.

Pour les non techniciens, voici une explication un peu moins technique de cette attaque. Les attaquants profitent d’une vulnérabilité de la méthode « system.multicall » XML-RPC de WordPress qui leur permet d’effectuer des centaines de tentatives de connexion avec une seule demande. Ils peuvent ainsi, presque, passer inaperçus.

Pour faire court, il s’agit d’une tentative pour forcer les connexions, en une seule tentative, afin de déterminer vos informations d’identification administrateur. Basé sur le nombre élevé de tentatives qu’un attaquant peut faire à chaque appel, ces tentatives sont 50 à 100 fois plus efficaces que les tentatives « normales » d’attaques par force brute.

Contrer les attaques XML-RPC de WordPress

WordPress XML-RPC

La première attaque a été repérée le 10 Septembre dernier, ce qui signifie que cela fait un mois que ce genre d’attaque est dans la nature, lui permettant de se propager sans encombre. Cela devient problématique lorsque l’on voit l’augmentation drastique du nombre de sites Web qui ont connu cette attaque dans les derniers jours.

Alors la question demeure, que pouvez-vous faire, en tant que propriétaire de blog WordPress, pour protéger votre site?

Bonne question! Je vais essayer de fournir une réponse claire, pour que les utilisateurs inquiets pour la sécurité de leur blog puissent protéger leur bien.

Contrer les attaques par  Force Brute de XML-RPC

Il existe plusieurs méthodes de blocages pour arrêter les attaques, mais aucune n’est infaillible. Elles diminuent uniquement la probabilité d’attaques, sans pour autant vous protéger à 100%. Vous pourrez toujours être sujet à une attaque de type DDoS (Déni de service distribué), sauf si votre site passe par un CDN ou que votre hébergeur ai activé la protection DDoS.

Arrêtez les attaques en désactivant la méthode « system multicall »

Vous pouvez désactiver la méthode system.multicall de XML-RPC en ajoutant le code suivant au fichier « functions.php » de votre thème. C’est la méthode idéale, car elle ne désactive que quelques paramètres très spécifiques de XML-RPC.

function mmx_remove_xmlrpc_methods( $methods ) {
    unset( $methods['system.multicall'] );
    unset( $methods['system.listMethods'] );
    unset( $methods['system.getCapabilities'] );
return $methods;
}
add_filter( 'xmlrpc_methods', 'mmx_remove_xmlrpc_methods');

Arrêtez les attaques grâce au fichier .htaccess

Si vous souhaitez désactiver tous les accès à XML-RPC, ajoutez le code ci-dessous à votre fichier « .htaccess » situé dans le répertoire de base WordPress (celui où se trouve le fichier index.php) . Malheureusement, cela n’aura pas forcément  l’effet désiré en fonction des plugin installés, nous allons y revenir plus loin.

<files xmlrpc*="">
order deny,allow
deny from all
</files>

Arrêtez les attaques en désactivant XML-RPC dans wp-config.php

Vous pouvez choisir de mettre à jour votre fichier de configuration wp-config.php en ajoutant la ligne suivante en dessous de la dernière déclaration ABSPATH (à la fin du fichier):

add_filter ('xmlrpc_enabled', '__return_false');

Désactiver XML-RPC avec un plugin

Disable XM-LRPC

Le plugin Disable XML RPC vous permet de désactiver XML-RPC d’un simple clic.

Si vous utilisez le plugin iThemes Security (anciennement Better WP Security), il est inutile d’installer ce plugin.

Rendez vous dans la section WordPress Tweaks d’iThemes Security, et choisissez Completely Disable XML RPC dans la liste déroulante XML-RPC, puis cliquez sur Save All Changes pour enregistrer les modifications.

 

[Tweet « Protégez votre site des attaques XML-RPC #WordPress XML-RPC attacks »]

Attention: Certains plugin populaires utilisent XML-RPC

Tous les types de blocages que nous avons vu jusqu’à présent, bloquent totalement XML-RPC, mais dans certains cas cela revient à générer « volontairement » des erreurs sur votre site.

En désactivant XML-RPC, vous risquez de « casser » les fonctionnalités de certains plugin populaires. Si vous avez installé l’un des plugin ci-dessous, la liste n’est pas limitative, il faudra faire plus de recherche pour trouver la solution idéale:

  • WordPress Mobile App
  • JetPack
  • BuddyPress
  • Windows Live Writer
  • Plusieurs plugin de galeries photo

Il existe toutefois, un plugin qui vous permet de bloquer XML RPC, tout en vous laissant la possibilité, d’utiliser JetPack sans provoquer d’erreurs. Ce plugin s’appelle Stop XML RPC Attack.

Stop XML-RPC Attack

 

Et ensuite…

Il est pratiquement acquis que XML-RPC sera à nouveau utilisé, un jour, pour lancer des attaques contre les sites WordPress. Aussi pour vous prémunir je vous propose deux solutions:

1- Un Firewall (WAF – Web Application Firewall)

Un pare-feu est un système de sécurité (logiciel) qui est installé entre deux ou plusieurs réseaux de contrôler le trafic entrant et sortant de chaque réseau. Il agit comme une barrière entre un réseau de confiance et non de confiance. Dans une configuration typique, un pare-feu est installé entre une connexion Internet et un réseau interne, protégeant ainsi le réseau des attaques de pirates et également utilisé pour contrôler qui peut accéder à l’Internet.

Les pare-feu d’applications (WAF) sont des pare-feu qui ont une portée unique, protéger votre site des attaques de pirates malveillants. Un WAF (Web Application Firewall) est installé entre le serveur Web sur lequel est hébergé votre site WordPress et la connexion publique (Internet), et il analyse chaque requête HTTP qui est envoyé vers votre site WordPress, comme le montre la capture d’écran ci-dessous.

Diagramme WordPress WAF

Si vous utilisez une application pare-feu WordPress Web

Comme vous le savez probablement déjà, il n’y a pas de solution à l’épreuve des balles, quand on parle de sécurité WordPress. Vous devez vérifier tous les aspects sécuritaire de votre site (protection,détection, réponse) pour vous assurer d’obtenir le meilleur de vos systèmes afin de garder votre site WordPress sécurisé.

Votre site WordPress reste accessible aux attaquants.

Lorsque vous utilisez un WAF en ligne (pare-feu d’applications) pour votre site WordPress, votre serveur web doit être accessible sur Internet pour permettre au WAF de faire transiter du trafic vers votre site WordPress. Cela signifie que lorsque quelqu’un tente d’accéder à votre site via votre nom de domaine, il passera par le pare-feu.

Cependant si quelqu’un peut contourner le WAF en communiquant directement avec votre serveur Web et votre site WordPress via l’adresse IP, comme le montre le schéma ci-dessous, votre site n’est plus du tout protégé.

Passe outre le WAF WordPress

Les pare-feu de site WordPress n’agissent que sur un aspect de la sécurité. Si votre budget le permet, allez-y. Je vous recommande fortement Sucuri Website Firewall, mais il y a beaucoup d’autres solutions toutes aussi efficaces.

Il est très important de noter que même si vous utilisez un pare-feu d’applications Web pour WordPress, vous ne devez pas baisser votre gardes car les pare-feu ne portent que sur un aspect de la sécurité.

2- Un CDN (Content Delivery Network)

Un réseau de distribution de contenu (CDN) est constitué d’une série de serveurs cache interconnectés, qui permettent de stocker et de distribuer votre contenu à de nombreux utilisateurs finaux basés à leur proximité.

Architecture CDN WordPress
Crédit Photo: Winning WP

De cette façon, si des personnes accèdent à votre site à partir de l’Australie, la Chine, les Etats-Unis ou le Royaume-Uni, elles sont capables de charger votre contenu à partir d’un serveur local au lieu d’avoir à attendre qu’il soit fourni par votre serveur d’origine. Cela peut avoir un impact significatif sur les temps de chargement, tout en réduisant la pression sur votre serveur d’hébergement. Cela peut aussi vous faire économiser les coûts de bande passante.

Chaque CDN dispose de ces propres règles de sécurité, mais dans l’ensemble, tous les CDN proposent des fonctions de sécurité identiques à la base, incluant les WAF (Web Application Firewall).

Le WAF (Web Application Firewall) protège automatiquement votre site de ce types d’attaques:

  • Injection SQL
  • Cross-site scripting (XSS)
  • Déni de service distribué (DDoS)
  • Attaques spécifiques à l’application (WordPress, etc.)

Utiliser un CDN reste donc une solution intéressante pour vous protéger des attaques XML-RPC très répandues en ce moment.

Dans cet article j’ai essayé d’être aussi précis que possible, tout en évitant d’être trop technique. Les explications pourraient être beaucoup plus avancées, mais il m’a semblé qu’avec cet ensemble de données la plupart d’entre vous devrait être à même de se protéger des attaque XML-RPC en cours.

Si vous avez relevé un erreur, n’hésitez pas à m’en faire part afin que je puisse la corriger.

Avez vous été victime d’attaques XML-RPC récemment? Qu’utilisez vous pour protéger votre site? Vos avis et solutions sont les bienvenus dans les commentaires ci-dessous.

séparateur de texte

Ne laissez pas vos amis se faire pirater. Faites circuler l’information!

[Tweet « Protégez votre site des attaques XML-RPC #WordPress XML-RPC attacks »]

Publié à l'origine le : 12 octobre 2015 @ 14 h 27 min

Pour compléter votre lecture.