Hemos sufrido un ataque de fuerza bruta en WordPress

wordpress-265132_1280Ayer algunos habéis notado que los dominios proxectos.citius.usc.es, demos.citius.usc.es y persoal.citius.usc.es no funcionaban, y eso fue debido a que recibimos el aviso de que el servidor estaba infectado con un botnet.

Ya hemos sufrido algo parecido en el pasado en ese mismo servidor. En esta ocasión, no ha sido por una vulnerabilidad sino por un ataque de fuerza bruta en uno de los WordPress instalados en el servidor para un proyecto.

Tras comprobar los logs y restaurar una copia de seguridad previa al desastre, hemos comprobado que las medidas que tomamos en febrero mitigaron los efectos (el bot no era capaz de lanzarse a sí mismo y requería una petición HTTP para lanzarse cada poco tiempo), pero aún así no se pudo prevenir la infección ni su funcionamiento por completo.

Qué ha pasado

El 4 de noviembre, a las 6 de la madrugada, recibimos durante 4 horas un total de 2411 peticiones de intento de identificación en uno de los blogs, hasta que finalmente el robot pudo entrar, cambiar las contraseñas de dicho WordPress y modificar un tema usando el editor incorporado, cambiando archivos legítimos por otros que permitían a su vez infectar la máquina con más malware.

Actualización: Es cierto que con tan solo 2411 peticiones es difícil hacer un ataque de fuerza bruta, a no ser que la contraseña sea muy débil. Por desgracia, no guardamos información del tamaño de los bytes enviados ni recibidos para poder detectar si se trata de un ataque tipo BREACH o similar, aunque también es posible.

Qué podemos hacer para evitarlo

Hay varias recomendaciones que los usuarios de WordPress pueden seguir para evitar estos ataques de fuerza bruta. Hemos recomendado a todos ellos que las apliquen.

No obstante, también hemos implementado medidas adicionales de seguridad:

Hemos habilitado, en ese servidor, una revisión constante de ClamAV, un antivirus que es capaz de detectar este tipo de exploits, para que nos informe en cuanto detecte algún archivo sospechoso. En esta ocasión, ClamAV ha sido capaz de detectar los archivos, y de haber estado funcionando este sistema, lo habríamos detectado mucho antes.

También hemos instalado fail2ban, una solución que gestiona una lista negra del sistema (el archivo deny.hosts) en base a determinadas reglas que se pueden definir arbitrariamente. Por ejemplo, se puede hacer que compruebe intentos de conexión a logins de WordPress reiterados. Una vez en la lista negra en la que se mantendrá durante un tiempo prudencial, el servidor web rechazará cualquier conexión desde esa IP. Hasta ahora utilizábamos otras soluciones que no permitían definir este tipo de reglas y tan solo eran capaces de bloquear intentos de login fallidos en servicios conocidos.

Actualización: No lo comentamos originalmente, pero también aplicamos algunas medidas de seguridad adicionales. Desde luego, es cierto que parece una posibilidad que esto no se trate de un simple ataque de fuerza bruta, sino de un ataque tipo BREACH (u otros derivados de técnicas de compresión y SSL), por lo que hemos tomado también las medidas recomendadas para mitigar dichos ataques. En cualquier caso, bloqueando peticiones reiteradas a páginas de login, este tipo de ataques tampoco serían posibles.

Con estas mejoras, esperamos poder mitigar este tipo de ataques y poder responder más rápido ante posibles problemas de este tipo en un futuro.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *