Introduction :
Les CMS WordPress étant très populaire, il est capital de vérifier très régulièrement leur sécurité. Nous constatons de plus en plus d’attaques de type “pingback xmlrpc” sur les serveurs Web de nos clients.
Qu’est ce que XML-RPC ?
XML-RPC (XML Remote Procedure Call) est un protocole de communication et une spécification qui permet à des applications sur différents systèmes d’échanger des informations en utilisant le langage XML pour la sérialisation des données et les appels de procédure distante (RPC).
- Serialization des données: XML-RPC utilise le format XML pour représenter les données. Les données sont sérialisées en XML, ce qui signifie qu’elles sont converties en une représentation texte structurée et lisible par les machines.
- Appels de procédure distante: Le RPC (Remote Procedure Call) permet à une application d’appeler des fonctions ou des procédures situées sur un autre système distant, comme si elles étaient exécutées localement. Cela permet aux applications de communiquer et de collaborer, même si elles sont exécutées sur des machines différentes.
- Transmission via HTTP: XML-RPC utilise généralement le protocole HTTP comme mécanisme de transport. Les requêtes et les réponses sont encapsulées dans le corps des requêtes HTTP POST et sont envoyées au serveur distant.
- Interopérabilité: L’un des avantages majeurs d’XML-RPC est son interopérabilité. Puisqu’il utilise XML comme format de données, les systèmes écrits dans différents langages de programmation peuvent facilement se parler tant qu’ils respectent la spécification XML-RPC.
- Simplicité: XML-RPC est relativement simple à mettre en œuvre et à utiliser. Les structures de données sont définies de manière standard et les appels de procédure sont basés sur des règles bien définies.
Bien que XML-RPC soit un protocole plus ancien et souvent remplacé par des alternatives plus légères et plus modernes, il a été largement utilisé dans le passé pour l’intégration de systèmes distribués et pour faciliter l’interopérabilité entre différentes plates-formes.
Quel est son usage avec le CMS WordPress ?
Avec WordPress, XML-RPC est principalement utilisé pour permettre aux applications tierces de communiquer avec votre site WordPress de manière distante. Cela offre des fonctionnalités d’accès et de gestion du contenu à partir d’autres applications, telles que des applications mobiles, des clients de bureau, des outils d’édition hors ligne et des services web externes.
Cependant, il est important de noter que XML-RPC a été désactivé par défaut dans les versions plus récentes de WordPress en raison de problèmes de sécurité potentiels. Cela est dû à des vulnérabilités connues dans le protocole et à des tentatives d’attaques exploitant ces vulnérabilités. Ainsi, de nombreux sites WordPress ont désactivé XML-RPC pour renforcer leur sécurité.
WordPress et les attaques XML-RPC Pingback DDoS
WordPress dispose d’une fonctionnalité appelée “Pingback” qui permet aux blogs de s’interconnecter automatiquement. Lorsqu’un blog cite ou fait référence à un autre blog en utilisant un lien, le blog cité peut être informé du lien via le protocole XML-RPC, et il crée alors un “Pingback” en guise de notification.
Exploitation des failles de sécurité: Les attaquants exploitent le mécanisme de Pingback pour lancer des attaques par déni de service distribué (DDoS). Ils envoient une multitude de demandes de Pingback avec de fausses adresses de retour, ciblant ainsi le site victime. Le site victime répondait ensuite aux adresses de retour, mais étant fausses, cela provoquait un grand nombre de requêtes inutiles.
Vous pouvez facilement identifier des attaques de Pingback XML-RPC si vous vérifier les logs de votre serveur Web (ici Apache) :
"GET /xmlrpc.php HTTP/1.1" 403 373 "-" "Mozilla/5.0
...
POST /xmlrpc.php HTTP/1.1\" 200 56775 "-" "-"
Désactivez XML-RPC au niveau du serveur web
La meilleure méthode reste de supprimer les requêtes au niveau du serveur web. Sur Apache, cela peut être fait en ajoutant le contenu suivant dans votre fichier .htaccess :
## WordPress - block XML-RPC requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Vous pourrez ensuite constater sur les logs d’erreurs Apache, que les requêtes sont bien bloquées :
[client 217.151.98.163:44920] AH01797: client denied by server configuration: /var/www/html/xmlrpc.php
Votre site web WordPress est victime de l’attaque DDoS Pingback XML-RPC ?
Pas de panique, notre équipe d’expert WordPress est la pour vous aider, contactez nous dès aujourd’hui