WordPress xmlrpc.php : tout comprendre sur le protocole

par | 11 Avr 2022 | Sécurité WordPress

De nombreux propriétaires de sites qui tentent de sécuriser leur installation WordPress se retrouvent face à la recommandation de désactiver XML-RPC. Bien souvent, il est difficile de savoir si ce protocole est utilisé ou non par le site.

Et simplement supprimer le fichier WordPress xmlrpc.php créera davantage de problèmes que de solutions. Dans cet article, nous allons définir ce qu’est le protocole XML-RPC et comment le désactiver correctement.

 

 

1. Qu’est-ce que le protocole XML-RPC

XML-RPC est un protocole qui permet à un système de faire appel à des procédures sur un système distant à travers un réseau. RPC est une abréviation pour appel d’une procédure distante en anglais (Remote Procedure Call). XML-RPC utilise le protocole non sécurisé HTTP (et pas HTTPS) pour le transfert des données et le langage XML pour la structuration de celles-ci.

Il est particulièrement avantageux puisqu’il peut connecter n’importe quel système en utilisant n’importe quel langage de programmation. Il a été inventé bien avant WordPress, mais ce dernier l’a mis à profit dès ses débuts.

 

1.1 Origine de WordPress xmlrpc

En effet, dans les années 2000, lorsque le système de gestion de contenu n’en était qu’à ses débuts, les vitesses de connexion internet étaient tellement lentes qu’il était peu pratique d’écrire des articles directement dans le navigateur. C’est pourquoi, de nombreux blogueurs écrivaient hors ligne avant de copier leurs textes dans WordPress.

Pour faciliter ce processus et connecter ces systèmes avec WordPress, le protocole XML-RPC a été ajouté. Il permettait notamment de poster un article depuis un service externe vers WordPress ou encore de communiquer avec l’app WordPress.

Par ailleurs, Jetpack était l’une des extensions qui tirait parti du protocole. Cependant, WordPress xmlrpc a été remplacé petit à petit par l’API REST et il est considéré comme obsolète aujourd’hui.

 

2. Problèmes de sécurité du protocole XML-RPC

Comme mentionné plus haut, XML-RPC fait usage du protocole HTTP qui n’est pas sécurisé. Jusqu’à la version 3.5 de WordPress, il était désactivé par défaut. Ensuite, sur les versions qui ont suivi et notamment après la sortie de l’app WordPress pour iPhone, il a été activé par défaut. Nativement, il ne peut toujours pas être désactivé au moment de la publication de cet article.

 

2.1 Remplacement de WordPress xmlrpc par l’API REST

Bien que l’API REST ait largement supplanté WordPress xmlrpc, le protocole reste actif par défaut sur les nouvelles installations de WordPress pour permettre une compatibilité rétroactive. Ceci offre donc aux sites qui l’utilisent toujours une expérience sans problèmes dus à sa désactivation lors d’une mise à jour.

Les sites qui ne l’utilisent pas, quant à eux, ne devraient pas remarquer de différence que XML-RPC soit activé ou non. Mais dans la réalité, ce n’est pas le cas. S’ils continuent de fonctionner normalement, ces sites sont bien souvent la cible de deux types d’attaques qui exploitent ce protocole.

 

2.2 Attaques par force brute

 

Désactiver WordPress xmlrpc permet de limiter les attaques par force brute
Désactiver WordPress xmlrpc permet de limiter les attaques par force brute

 
L’attaque par force brute est certainement la grand-mère des attaques sur WordPress. Elle a pour but la découverte de combinaisons d’identifiants et de mots de passe pour s’introduire sur un site. Dans l’immense majorité des cas, l’attaque est automatisée et peut tester des centaines, voire des milliers de combinaisons par minute.

 

Importance des mots de passe

Si vous utilisez des mots de passe communs, courts et réemployés, vous courez un risque important de piratage. Pour contrer les attaques par force brute, il est donc essentiel de mettre en place un certain nombre de mesures, notamment l’utilisation de mots de passe difficiles, longs et uniques et l’activation de la double authentification.

Il est aussi possible de protéger par mot de passe la page de connexion à WordPress : wp-login.php. Néanmoins, cette dernière action n’aura aucun effet si le protocole XML-RPC est activé. En effet, c’est le plus souvent en l’utilisant que les attaques par force brute sont menées.

 

2.3 Attaques par déni de service distribué

L’attaque par déni de service distribué ou DDoS, en anglais, est l’autre type d’attaque qui exploite le protocole XML-RPC à des fins de piratage. En effet, elle tire parti de la fonctionnalité de rétrolien (pingback) de WordPress pour envoyer une quantité très importante de requêtes à un site. Ceci a pour effet de submerger le serveur et d’effectivement mettre le site hors ligne.

 

3. Désactiver WordPress xmlrpc

Il est donc primordial de désactiver ce protocole dans WordPress. Dans la plupart des cas, les sites qui l’utilisent ont des versions obsolètes d’extensions ou de thèmes et n’ont pas été mis à jour récemment. Si possible, il faudra mettre le site à jour et trouver des versions alternatives des extensions qui nécessitent XML-RPC. Je vous recommande de vous diriger vers des extensions ayant remplacé le protocole par l’API REST.

 

4. Utiliser une extension

La solution la plus simple et rapide sera d’installer une extension pour désactiver XML-RPC. Si vous n’êtes pas à l’aise avec l’édition de fichiers, c’est la méthode idéale pour vous.

 

4.1 Disable XML-RPC Pingback

 

Extension de désactivation de WordPress xmlrpc
Page d’accueil de l’extension Disable XML-RPC Pingback

 
L’extension Disable XML-RPC Pingback est simple et efficace. Il suffit de l’installer et de l’activer pour protéger le site. Par ailleurs, elle ne désactive pas entièrement XML-RPC pour permettre aux extensions qui l’utilisent encore de continuer à fonctionner. En effet, elle ne désactive que les méthodes du protocole utilisées par les pirates.

 

4.2 Disable XML-RPC-API

 

Page d’accueil de l’extension Disable XML-RPC-API
Page d’accueil de l’extension Disable XML-RPC-API

 
L’extension Disable XML-RPC-API, quant à elle, offre davantage d’options de personnalisation. Elle propose des paramètres plus précis qui permettent notamment de changer les permissions ou l’URL du fichier WordPress xmlrpc.php.

 

5. Désactiver WordPress xmlrpc.php via le fichier .htaccess

Si vous ne souhaitez pas installer une extension supplémentaire à votre site et que l’édition de fichier ne vous fait pas peur, il suffit d’ajouter le morceau de code suivant en haut du fichier .htaccess de votre site. Il désactivera totalement le protocole et vous protégera ainsi des attaques. Pensez à faire une sauvegarde du fichier avant de le modifier.


    # Désactiver les requêtes pour xmlrpc.php
    <Files xmlrpc.php>
        order deny,allow
        deny from all
    </Files>

 

6. Conclusion

Le protocole XML-RPC est peu à peu tombé en désuétude grâce à l’apparition de l’API REST de WordPress. Il ne reste utile que pour des sites qui n’ont pas pu mettre à jour le cœur de WordPress ou leurs thèmes et extensions. Dans ce cas, la meilleure chose à faire pour protéger un site sera de désactiver WordPress xmlrpc.php, de tout mettre à jour, puis de trouver des alternatives si quelque chose ne fonctionne plus.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Réservez votre audit SEO gratuit et recevez un rapport personnalisé sur la santé de votre site web