martes, 6 de septiembre de 2011

Problema colosal de Apache (CVE-2011-3192)

Este mes de agosto se publicó un error de seguridad sobre el servidor web más usado Apache.


El bug que contiene Apache permite realizar un ataque de denegación de servicio, a los servidores que no estén parcheados, realizando múltiples peticiones de rango de archivo al servidor, provocando que este cree múltiples instancias de Apache, desbordando así la capacidad del servidor para atender a más clientes, y en algunos casos bloquearlo, saturándolo completamente.

La publicación y la resolución del bug la encontraréis en http://mail-archives.apache.org/mod_mbox/httpd-announce/201108.mbox/%3C20110824161640.122D387DD@minotaur.apache.org%3E


Si tenéis problemas con la versión de Apache y la cabecera "RequestHeader unset", también podéis encontrar interesante este otro enlace http://serverfault.com/questions/305032/applying-header-range-fix-to-apache-2-0-59-issue-cve-2011-3192

Aunque os recomiendo que si podéis actualizar a alguna versión de Apache del 1 de septiembre o posterior mejor que mejor.

Existen varias herramientas para poder comprobar si vuestro servidor es vulnerable al ataque, una de ellas es "Apache Killer". Desde la web http://www.hackersgarage.com/apache-killer-denial-of-service-flaw-in-apache-webserver.html encontraréis el enlace para su descarga y cómo usarlo.

En mis pruebas, el servidor en cuestión era vulnerable:

perl apachekill.pl www.servidorvulnerable.com 50 
host seems vuln 
ATTACKING www.servidorvulnerable.com [using 50 forks] 
.......

Después de aplicar las actualizaciones pertinentes y en otros casos el cambio de configuración de Apache, el resultado fue:

perl apachekill.pl www.servidorvulnerable.com 50
Host does not seem vulnerable

Lo más curioso es que cuando realicé el ataque a mi servidor que ejecuta aplicaciones basadas en Perl el impacto fue mínimo, pero con un servidor ejecutando Ruby el resultado fue devastador, teniendo que realizar un reset por hardware para poder volver a tener su control... 

Si además tenéis la suerte de poder instalar el balanceador de carga HAProxy en vuestro servidor, aquí tenéis un enlace para poder cortar el ataque sin necesidad de tener que modificar todos los servidores que corren bajo la misma máquina http://blog.exceliance.fr/2011/08/25/protect-apache-against-apache-killer-script/ a mi me ha sido especialmente útil para mitigar el ataque que se dirigía directamente a servidores Tomcat, que al parecer también son vulnerables.

Espero que podáis securizar vuestros servidores sin mucho problema :-)