J’ai remarqué dans les logs Apache de mon site, des erreurs récurrentes avec le service XML-RPC.
J’avais en effet bloqué ce service grâce aux filtres suivants :
// Disable XML-RPC. Beware, it causes issues with Jetpack.
add_filter( 'xmlrpc_enabled', '__return_false' );
add_filter( 'pre_update_option_enable_xmlrpc', '__return_false' );
add_filter( 'pre_option_enable_xmlrpc', '__return_zero' );
Code language: JavaScript (javascript)
La raison principale du blocage de ce service, était les vulnérabilités avec XML-RPC et les risques d’attaques par force brute.
J’ai donc suivi les instructions de l’équipe de Jetpack (Check Your xmlrpc.php File) : Fixing Jetpack Connection Issues
J’ai ensuite testé la disponibilité du service avec l’outil de validation du service : WordPress XML-RPC Validation Service et j’avais effectivement des erreurs…
Moralité, j’ai commenté les trois filtres et le service marche à nouveau correctement.
Comment je me protège donc des vulnérabilités avec XML-RPC et les risques d’attaques par force brute ?
1) Le module Protect de Jetpack
Jetpack: Protection From Brute Force XML-RPC Attacks
2) Le WAF de Cloudflare (j’ai un abonnement Pro)
A Look at the New WordPress Brute Force Amplification Attack (cloudflare.com)
3) Des filtres Workpress
// Disable pingback.ping XML-RPC method.
add_filter( 'xmlrpc_methods', 'dottaware_remove_xmlrpc_pingback_ping' );
function dottaware_remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );
unset( $methods['system.multicall'] );
return $methods;
}
Code language: PHP (php)