Si vous utilisez WordPress pour votre site web, sachez qu'une nouvelle méthode d'attaque par bruteforce découverte au début du mois par la société Sucuri permet à un attaquant de tester de très nombreux identifiants et mots de passe avec une simple requête HTTP.

Avec une attaque classique, 1 requête = 1 tentative de login. Mais avec cette attaque qui exploite une faiblesse dans XML-RPC, 1 requête = x tentatives de login.

WordPress XML-RPC Brute Force Amplification Attack

Évidemment, comme vous ne verrez plus des tonnes de tentatives débouler dans vos logs, cette attaque est plus difficile à détecter. Comme XML-RPC permet de faire passer du XML via HTTP vers WordPress pour déclencher des actions (cron, api, manipulation de données...etc), il est très simple d'encapsuler non pas une mais un grand nombre de demandes de logins dans la même requête XML grâce à la méthode system.multicall.

Ce nombre de demandes est limité uniquement par la mémoire accordée à PHP. Autant dire que plus votre PHP a de mémoire, plus l'attaquant va pouvoir tester en même temps des centaines, voire des milliers d'identifiants en même temps.

Alors, comment se protéger ? Et bien si vous utilisez Cloudflare et que vous avez accès au WAF (Firewall applicatif présent dans la version payante de CF), pensez à activer les règles liées à WordPress.

 f1

Cliquez sur le jeu de règles et bloquez la WP0018.

af2

Autrement, il vous reste l'option "code" qui consiste à désactiver les appels à la méthode system.multicall en ajoutant ceci dans votre fichier functions.php, en attendant que WordPress publie un patch.

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

Ainsi vous serez protégé des scripts kiddies qui seraient tentés de s'en prendre à votre site. Pensez aussi à mettre un mot de passe un peu plus complexe qui sera difficile de casser avec un simple dictionnaire.