Une faille XML sur les sites WordPress et Drupal

Posté par | content

 

Après la vulnérabilité décelée récemment dans le plug-in MailPoet, et corrigée depuis, une importante faille de sécurité a été détecté dans les cms WordPress et Drupal qui utilisent XMLRPC. Une intrusion à distance peut désactiver votre site via une méthode dite de déni de service (DoS).

 

Nir Goldshlager de la société Break Security, à l’origine de cette découverte, a indiqué que les versions 3.5 à 3.9 de WordPress étaitent concernées, ainsi que les versions 6.x et 7.x de Drupal, également impactées.

 

Cette vulnérabilité XML-RPC peut entraîner une tentative d’intrusion qui rend les ressources du serveur ou du réseau indisponible pour ses utilisateurs, conséquences d’une montée en charge de 100% de l’utilisation du CPU et de la mémoire vive. La base de données du site atteind rapidement son nombre maximale de connexions ouvertes, ce qui a pour conséquences de rendre les sites et serveurs indisponibles pendant une certaine durée.

 

XML (acronyme de Extensible Markup Language signifiant langage de balisage extensible) est un langage de création de fichiers de données, ayant la particularité de permettre la création et la définition de balises à la demande (d’où l’origine de l’expression « extensible »). XML a été conçu pour permettre les transferts d’informations d’une plateforme à une autre (deux applications non interfacées, par exemple). Il évite ainsi les fastidieux et coûteux développements d’interfaces.

Source Mosaique Info

 

XML-RPC est un protocole RPC (Remote procedure call), une spécification simple et un ensemble de codes qui permettent à des processus s’exécutant dans des environnements différents de faire des appels de méthodes à travers un réseau.
XML-RPC permet d’appeler une fonction sur un serveur distant à partir de n’importe quel système (Windows, Mac OS X, GNU/Linux) et avec n’importe quel langage de programmation. Le serveur est lui même sur n’importe quel système et est programmé dans n’importe quel langage. Cela permet de fournir un Service web utilisable par tout le monde sans restriction de système ou de langage.
Les processus d’invocation à distance utilisent le protocole HTTP pour le transfert des données et la norme XML pour la structuration des données. XML-RPC est conçu pour permettre à des structures de données complexes d’être transmises, exécutées et renvoyées très facilement.

Source Wikipedia

 

Des correctifs ont été rapidement mis en ligne par les deux sociétés :

  • WordPress a ainsi déployé la version 3.9.2, ainsi que les 3.8.4 et 3.7.4 afin de colmater cette faille. L’éditeur précise qu’il ne prendra plus en charge les versions précédentes, notamment les 3.6.x et 3.5.x qui sont aussi concernées.
  • De son côté, Drupal a mis en ligne les versions 7.31 et 6.33 de son cms.

 

Néanmoins, vous avez la possibilité de protéger l’accès à votre site via le fichier .htaccess :

ErrorDocument 403 « Error 403: Forbidden Access »

<Files xmlrpc.php>
order allow,deny
deny from all
</Files>

La définition de la 403 a pour objectif de ne pas renvoyer sur WordPress qui pourrait avoir une page d’erreur dédiée.

 

Concernant WordPress, vous pouvez vous protéger des attaques par force brute :

Une attaque par force brute est une personne ou un robot (bots) qui cherche votre mot de passe en essayant toutes les combinaisons possibles.

 

En installant le plug-in « Limit login attempts« .

Vous assurer que votre nom d’utilisateur n’est pas « Admin« , avec un mot de passe simplifié.

 

Si ce n’est pas le cas :

  • Connectez-vous avec PHPMyAdmin depuis votre interface cPanel.
  • Cliquez sur le nom de votre base de données, puis sur la table wp_users.
  • Pour éviter que votre nom d’utilisateur ne soit affiché en public, laissez user_nicename en « Admin », et modifiez user_login pour avoir un nom d’utilisateur que personne ne pourra deviner.

 

Votre site est maintenant protégé contre les attaques par force brute. De ce fait, un hacker ne pourra donc pas trouver votre mot de passe.

Toutefois, si ce dernier essaie d’accéder quand même à votre interface, ajoutez les lignes suivantes dans votre fichier .htaccess (après le code XMLRPC cité plus haut) :

 

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !^.*cookie\-mona\-securisation=4532698754.*$ [NC]
RewriteRule wp-login.php – [F]
</IfModule>

 

Puis, créez un nouveau fichier .php que vous rennomerez par exemple : connexion.php et collez-y le code suivant :

 

<?php //
Script PHP à nommer avec un nom complexe
setcookie(« cookie-mona-securisation », 4532698754);
header(‘Location: wp-login.php’);
?>

 

Testez-le ensuite en vous loguant à votre interface avec wp-login.php. Une page « Erreur 403″ devrait s’afficher. Appelez ensuite dans votre navigateur Internet votre nouveau fichier .php : http://urlnomdevotresite/connexion.php.

 

Vous accéder à votre système de gestion de contenus !

 

Toute personne malveillante ou bots qui essaieront de se connecter et ne passant pas parc URL, rencontreront une erreur 403.

 

© Coloures-pic – Fotolia.com

© Platine 08/08/2014