Proteger WordPress de ataques DDoS por XML-RPC
XML-RPC es un protocolo que usa XML para la codificación de los datos y HTTP para transmitir la información de los mensajes. Desde hace tiempo, se viene considerando este protocolo como una puerta de entrada para ataques de fuerza bruta DDoS y por ello, es importante prevenirse.
¿Cómo usa WordPress el protocolo XML-RPC?
WordPress utiliza el protocolo XML-RPC para poder conectar aplicaciones externas que permitan gestionar remotamente nuestro sitio web. También es un protocolo utilizado por herramientas y plugins como JetPack o ifttt , también permite permite la comunicación mediante pingbacks y trackbacks, o la funcionalidad más usada de todas, la usada para poder gestionar nuestro sitio WordPress con la aplicación móvil. En resumen, usamos el protocolo XML-RPC para acceder y gestionar (o publicar) contenidos de manera externa en WordPress.
Hasta la versión 3.5 de WordPress, existía la posibilidad de desactiva este protocolo desde el mismo menú de Ajustes de WordPress. Sin embargo, desde la versión 3.5 , WordPress consideró solucionada la vulnerabilidad del protocolo, y ahora trae activado por defecto el protocolo XML-RPC. Podéis consultar la API de XML-RPC de WordPress para obtener más información sobre la misma.
¿Cómo podemos deshabilitar XML-RPC en WordPress 3.5 o superiores?
Un método para deshabilitar el XML-RPC es utilizar – como no – un plugin. No obstante, y como ya hemos comentado varias veces los contras que esto implica (lentitud, inseguridad, etc,…), desecharemos esta opción.
La siguiente opción es modificar nosotros mismos nuestro WordPress, para desactivar el XML-RPC. Para ello podremos utilizar varios métodos:
Modificando el fichero functions.php de nuestro tema, de manera que desactive el método system.multicall (la mejor opción):
function elimina_metodos_xmlrpc_frabits( $methods ) { unset( $methods['pingback.ping'] ); unset( $methods['system.multicall'] ); unset( $methods['system.listMethods'] ); unset( $methods['system.getCapabilities'] ); return $methods; } add_filter( 'xmlrpc_methods', 'elimina_metodos_xmlrpc_frabits');
Editando nuestro archivo de configuración wp-config.php (añadirlo al final del fichero):
add_filter('xmlrpc_enabled', '__return_false');
Modificando el fichero htaccess:
# Impedir peticiones xmlrpc a WordPress <Files xmlrpc.php> order deny,allow deny from all </Files>
Hay que tener en cuenta, que tras realizar estas modificaciones, no podremos usar la funcionalidad de manejo remoto de nuestro WordPress, pero tampoco será vulnerable a estos tipos de ataques ;D
Comentarios
No hay comentarios todavía.