desactivar-xmlrpc-de-wordpress.webp

Desactivar XMLRPC de WordPress

En este post analizamos de forma precisa el «cuando» y el «porqué» desactivar XMLRPC y como hacerlo de forma eficiente.

Durante muchos años se ha facilitado el acceso remoto a WordPress mediante XMLRPC. El envío de peticiones HTTP a xmlrpc.php permite enviar ordenes a WordPress y gestionar su contenido sin necesidad de entrar al escritorio.

Tabla de contenidos

¿Qué es XMLRPC?

En el directorio raíz de cada sitio WordPress encontrarás un archivo de nombre xmlrpc.php. Se creó para ofrecer a los sitios WordPress una forma de comunicarse entre sí y para que otras aplicaciones se comunicasen con WordPress.

XML es el mecanismo de codificación utilizado para el intercambio de datos y RPC el mecanismo de comunicación. RPC son las siglas de Llamada a Procedimiento Remoto «Remote Procedure Call«.

El relevo de XMLRPC de WordPress

Si bien el acceso remoto XMLRPC de WordPress lleva muchos años en funcionamiento, desde hace tiempo la API de WordPress ha pasado a ser una solución más robusta y segura.

Con la nueva API de WordPress, el uso de XML-RPC ha quedado desfasado por completo. Si no necesitas XMLRPC para ninguna de las funcionalidades que a continuación explicamos, lo mejor es desactivar XMLRPC por completo. Te podemos asegurar que evitarás los numerosos problemas de seguridad que comporta el acceso a este archivo.

La nueva API no es perfecta, pero proporciona una solución más segura y sólida al problema de acceso a WordPress

En la actualidad, la comunidad de desarrolladores está abandonando el uso de xmlrpc.php

¿Puedo desactivar XMLRPC de mi WordPress?

El acceso a XMLRPC se utiliza todavía en la gestión remota desde WordPress.com cuando utilizamos el plugin Jetpack o servicios como Zapier, IFTTT

Jetpack todavía arrastra gestiones remotas utilizando el acceso a xmlrpc.php

También, la funcionalidad de Pingbacks o algunas de las Apps como la aplicación para móviles oficial de WordPress, utilizan xmlrpc.php para interactuar con WordPress.

Pero… ¿Quién gestiona los post de WordPress hoy por hoy desde móvil? Bueno, si eres de los que les encanta el mundo mobile, es mejor que utilices el navegador de tu dispositivo para acceder al administrador de tu WordPress. Después de todo, es más seguro, y su interfaz «responsive» funciona perfectamente.

¿Por qué desactivar xmlrpc.php?

El acceso a XMLRPC de WordPress, al ofrecer funciones de gestión avanzadas, pasa a ser atractivo para un atacante. Por eso deshabilitar XMLRPC nos ayudará de forma importante a reducir el ángulo del llamado Vector de Ataque.

Los tipos de ataque a los que suele estar expuesto xmlrpc.php son:

Ataque de fuerza bruta contra XMLRPC

En general el ataque de fuerza bruta se usa para conseguir la combinación de usuario y contraseña mediante peticiones masivas, por eso se le llama «de fuerza bruta».

Como XMLRPC está protegido por usuario y contraseña en las operaciones que modifican datos, las peticiones a xmlrpc.php son un destino ideal para intentar dar con credenciales.

Para realizar un ataque de fuerza bruta basta con realizar llamadas consecutivas xmlrpc.php probando distintos usuarios y contraseñas como parámetros.

Ataque amplificado

El ataque amplificado es una variante aún más peligrosa del ataque por fuerza bruta. En un ataque de fuerza bruta cada intento para probar un usuario y contraseña se traduce en una petición. En cambio en el ataque amplificado, en una misma petición se pueden probar decenas de miles de combinaciones. No obstante en la actualidad esta vulnerabilidad está solucionada.

Ataques DDoS usando XMLRPC

Los ataques DDoS, «Distributed Denial of Service», son extremadamente difíciles de evitar, nadie puede decir que este libre de ellos. No obstante, sí que es importante no poner las cosas fáciles. La base de un ataque DDoS es saturar tu servidor haciendo muchas peticiones simultáneas.

Si tenemos en cuenta que:

  • xmlrpc.php es capaz de interactuar con WordPress, haciendo uso intensivo de la base de datos.
  • Difícilmente se puede cachear para evitar que use tantos recursos del servidor.
  • Tiene funcionalidades como los Pingback que facilitan distribuir el envío de peticiones.

La suma de estos factores convierte a xmlrpc.php en la herramienta perfecta para el atacante.

Desactivar XMLRPC de WordPress

Para deshabilitar por completo XMLRPC, nuestro consejo sin la menor duda, es hacerlo a nivel de servidor y evitar el uso de extensiones.

Bloqueando su acceso a nivel servidor web es lo más eficiente, pues evitamos que las peticiones lleguen a ejecutarse en WordPress.

Ten en cuenta que cualquier petición que llegue a WordPress representa ejecución dinámica de código php y consultas a la base de datos.

Deshabilitar xmlrpc.php manualmente en Apache

El primer paso consiste en localizar el archivo .htaccess en la raíz de tu sitio WordPress. Este es el único archivo que necesitaremos editar para desactivar el acceso a XMLRPC.

Una manera de acceder a editar los archivos es conectar al servidor de forma segura por sftp.

Una vez que hayas abierto el archivo .htaccess, añade estas líneas al final y guarda los cambios.

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

Desactivar xmlrpc.php manualmente en Nginx

Si utilizas nginx como servidor de páginas, tal como hacemos en wetopi donde nos especializamos en rendimiento y seguridad para WordPress. Deberás localizar el archivo de configuración de nginx. Lo podrás localizar en /etc/nginx.conf o como es el caso de wetopi en /var/www/conf/nginx.conf

Para que puedas probar como bloquear las peticiones XMLRPC de WordPress sin romper tu sitio web producción,
te proporcionamos tu propio servidor de desarrollo gratuito.

Aquí puedes registrarte en pocos segundos

Una vez que hayas abierto el archivode configuración que corresponda, añade estas líneas dentro de la sección server junto tus otros «location»:

# denaying access to wordPress xmlrpc:

location = /xmlrpc.php {
    deny all;
    access_log off;
    log_not_found off;
    return 403;
}

IMPORTANTE: en wetopi no tendrás que desactivar XMLRP, por defecto ya lo está. Al arrancar tu servidor WordPress dejamos el archivo /var/www/conf/nginx-disable-xmlrpc.conf con el código indicado sobre estas líneas y así nginx lo incluye al cargar la configuración. Si lo que deseas es volver a activar xmlrpc.php, simplemente elimina este archivo y recarga la configuración de nginx.

Cargar la nueva configuración de nginx

Si estás trabajando con un servidor especializado en WordPress de wetopi, puedes cargar la nueva configuración de nginx con un simple clic desde tu panel de wetopi.

Dirígete a la página detalle de tu sitio, y haz clic en el botón Recargar que encontrará dentro de «Opciones de menú»:

Tras instalar ioncube, es necesario reiniciar el servidor

En una instalación donde gestiones tu el servidor, desde la shell lanza el comando:

nginx -s reload

Conclusión final

Xmlrpc.php fue creado para añadir funcionalidades de gestión remota en tu sitio WordPress, pero rápidamente se convirtió en una puerta trasera que amenaza la seguridad de tu web.

A día de hoy, la nueva API de WordPress proporciona dichas funcionalidades sin sacrificar la seguridad. Nuestra recomendación, si no dependes de la gestión remota de Jetpack, es que lo deshabilites tan pronto como puedas.

En resumidas cuentas, somos unos techies apasionados por WordPress que hemos creado Wetopi, un hosting especializado en WordPress, para minimizar la fricción a la que todo profesional se enfrenta al trabajar y alojar proyectos WordPress.

¿No tienes una cuenta en wetopi?

Prueba ya – Descubrirás una forma eficiente de trabajar con WordPress

Incluye servidores de desarrollo Gratis.
No es necesaria tarjeta de crédito.

Joan VegaDesactivar XMLRPC de WordPress
Share this post