jueves, 1 de septiembre de 2016

Tu dosis diaria de WordPress 

Tu dosis diaria de WordPress

Cómo proteger WordPress de Ataques de amplificación de fuerza bruta

Desde hace tiempo el archivo de WordPress xmlrpc.php es el objetivo de un tipo de ataque muy específico, anteriormente conocido como vulnerabilidad pingback de XML-RPC y actualmente conocido como Brute Force Amplification Attack o Ataque de amplificación de fuerza bruta.

En esta entrada explicaré todo lo que necesitas saber para proteger tu sitio WordPress de este exploit malicioso, así como de otras amenazas similares.

¿Qué es XML-RPC?

Antes de ponernos manos a la obra protegiendo el archivo xmlrpc.php, es importante saber qué hace, por qué está en toda instalación de WordPress, y una explicación bastante exacta es la siguiente:

[XML-RPC es] una especificación y serie de implementaciones que permiten que el software de diversos sistemas operativos se ejecute en entornos diferentes para realizar llamadas de procesos en internet. Es un procedimiento remoto que realiza llamadas usando HTTP como transporte y XML como codificador. XML-RPC se diseño para seer lo más simple posible, al tiempo de permitir que se transmitan, procesen y devuelvan estructuras de datos completos.

wordpress-xmlrpc-brute-force-amplification

Anatomía de un ataque xml-rpc

Dicho más sencillo, básicamente XML-RPC permite a las plataformas de internet interactuar unas con otras. En concreto, el archivo de WordPress xmlrpc.php permite que diversas aplicaciones externas se conecten, transmitan y procesen datos.

¿Necesito XML-RPC?

Ya que preguntas te diré que NO, en realidad no necesitas el archivo xmlrpc.php. Ahora bien, hay varios plugins que utilizan la funcionalidad XML-RPC de WordPress para realizar operaciones remotas, así que, ante la duda, pregunta al desarrollador de cada plugin si necesita usarlo.

Por ejemplo, Jetpack utiliza XML-RPC para conectar varios de sus componentes con WordPress.com, y la misma aplicación WordPress para iPhone o Android no se conectará con tus sitios si no tienes XML-RPC activo.

Pero salvo que uses Jetpack o algún otro plugin muy específico, la mayoría de los sitios WordPress no necesitan el archivo xmlrpc.php para nada.

En consecuencia, si no necesitas el archivo es perfectamente factible que lo borres, bloquees o desactives, sobre todo para evitarte la multitud de ataques que usan este archivo.

Protección con plugins

Si buscas una solución rápida en el directorio oficial de plugins hay varios que te ofrecen desactivar XML-RPC, elige el que más confianza te merezca, o prueba varios hasta dar con el que se ajuste a tus necesidades.

Protección mediante .htaccess

Si le has perdido el miedo al archivo .htaccess hay varias maneras de bloquear el archivo xmlrpc.php. Aquí tienes unas cuantas:

Bloquear xmlrpc.php mediante RedirectMatch

# protect xmlrpc <IfModule mod_alias.c> 	RedirectMatch 403 (?i)/xmlrpc.php </IfModule>

Lo mejor de esta técnica es que no importa donde tengas instalado WordPress, el archivo xmlrpc.php quedará protegido independientemente de su ubicación en la estructura de directorios (p.ej.,/wp/xmlrpc.php, /wordpress/xmlrpc.php, /loquesea/xmlrpc.php, etc.). También distingue mayúsculas de minúsculas, así que estarás protegido ante cualquier variación de ataque "todo mayúsculas" (all-cap).

Bloquear xmlrpc.php mediante Order/Deny

# protect xmlrpc <Files xmlrpc.php> 	Order Deny,Allow 	Deny from all </Files>

Cualquiera de estos códigos funcionan perfectamente para proteger el archivo xmlrpc.php bloqueando cualquier intento de acceso al mismo, pero este método es especialmente chulo antes ataques contra XML-RPC. Es simple, exhaustivo, fiable y sin mantenimiento.

Hay otros modos de protegerte mediante .htaccess, y te invito a probarlas, aquí las tienes.

Protección mediante wp-config.php

También puedes protegerte de ataques a XML-RPC desactivando el protocolo desde al archivo wp-config.php, añadiendo la siguiente línea a continuación de require_once(ABSPATH . 'wp-settings.php');:

add_filter('xmlrpc_enabled', '__return_false');

Protección mediante una función personalizada

Si no eres de instalar plugins, o de tocar archivos del sistema como .htaccess o wp-config.php, también puedes protegerte de los ataques de amplificación de fuerza bruta desactivando la funcionalidad system.multicall del archivo xmlrpc.php. mediante una función que puedes añadir a tu plugin de funcionalidades o al archivo functions.php:

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

Eso sí, este método tienes pros y contras:

  • Pro – no necesitas instalar otro plugin
  • Pro – no necesitas modificar .htaccess o wp-config.php
  • Contra – solo vale para el tema activo si lo pones en el archivo functions.php
  • Contra – solo vale para este tipo de amenaza concreta

Creo que no hace falta explicar los pros, y sobre los contras, ten en cuenta que esto solo te protege de ataques al system.multicall y no a otras variables, y que si lo añades al archivo functions.php y cambias de tema estarás expuesto.

En definitiva

Sobre todo debes ser consciente de que el archivo de WordPress xmlrpc.php es un importante foco de ataques, y mientras no haya una solución definitiva para que WordPress no utilice este método de conexión entre aplicaciones ( mediante la WP REST API, por ejemplo) más vale bloquearlo, controlarlo o eliminarlo, ya que es uno de los objetivos principales de ataques de fuerza bruta, vulnerabilidades de pingbacks y ataques de amplificación, entre otros.

Más información:

2016-09-01  • Fernando

Más artículos…

Cómo proteger WordPress de Ataques de amplificación de fuerza bruta

Desde hace tiempo el archivo de WordPress xmlrpc.php es el objetivo de un tipo de ataque muy específico, anteriormente conocido como vulnerabilidad pingback de XML-RPC y actualmente conocido como Brute Force Amplification Attack o Ataque de amplificación de fuerza bruta.
Leer artículo completo
2016-09-01

Cómo redirigir a otra URL tras enviar un formulario de Contact Form 7

Seguramente Contact Form 7 sea el plugin de formularios de contacto más utilizado en WordPress, con enorme diferencia sobre el resto, y es chocante, en vista a lo espartano de su interfaz, nada intuitiva, no digamos para novatos.
Leer artículo completo
2016-08-31

Cómo crear un producto descargable en WooCommerce

Los productos descargables, como música, documentos o aplicaciones de software, también puedes gestionarlos en tu tienda online con WooCommerce de manera sencilla.
Leer artículo completo
2016-08-30

¿Qué son los mu-plugins de WordPress?

Por ponernos en antecedentes… Cuando la instalación de WordPress Multisitio se hacía con una descarga diferente, y quizás un poco más tarde, el directorio mu-plugins era dónde se instalaban los plugins específicos para Multisitio (anteriormente conocido como Multi Usuario, de ahí el mu), pero curiosamente ese directorio no murió con la integración de Multisitio en la descarga única de WordPress.
Leer artículo completo
2016-08-29

El verano, ese momento de relax… ¡Nunca!

La tecnología no para aunque sea verano, tampoco deberían hacerlo tus usuarios, cliente o lectores, así que ¡aprovecha el tiempo!, tecnológicamente hablando, claro.
Leer artículo completo
2016-08-25

Si quieres saber más sobre lo que ofrecemos en Ayuda WordPress echa un vistazo a los siguientes enlaces …  

Curso de WordPress presencial en Madrid

Hosting especializado WordPress
100% fiable

TU EXPERTO WORDPRESS ONLINE

FORMACIÓN WORDPRESS ONLINE

No hay comentarios:

Publicar un comentario

Seguidores

Archivo del blog