Slowloris: DoS para Apache

julio 1, 2009
En líneas generales, para generar un DoS (o DDoS) en un sitio con suficientes recursos, es necesario hacer uso de una botnet, un montón de ordenadores zombies a nuestro servicio, que efectúan peticiones de forma simultánea contra un objetivo común, configurable en tiempo y en lugar por el atacante. Al final, la denegación de servicio del objetivo se puede hacer efectiva por varias causas:
  • Porque el servidor o los servidores, son incapaces de contestar a tantas peticiones de forma simultánea
  • Alguno de los mecanismos intermedios (routers, switches, firewalls, balanceadores…) que atraviesan dichas peticiones se satura de peticiones y se ve incapaz de gestionar la marabunta
  • El ancho de banda disponible de dicha organización se ve desbordado y el tráfico lícito se pierde en un gran porcentaje o se degrada el servicio.

El DoS que os presentamos actualmente corresponde a los del primer tipo descrito.

Hace ya una semana que se ha dado a conocer una nueva herramienta que ha puesto los pelos de punta a la comunidad: Slowloris. El autor de la criatura, Robert Hansen, publicó en http://ha.ckers.org/ el código fuente y el funcionamiento básico.

Este “sencillo” script hecho en Perl implementa una potente e inteligente manera de generar una denegación de servicio sobre un servidor web Apache. Para ello, se basa en la cantidad de peticiones que es capaz de mantener un servidor web de forma concurrente. La forma de saturar el pool de servicios es mediante la creación de “requests” HTTP (con HTTPS también funciona) de manera que se empiezan a enviar cabeceras y más cabeceras al servidor de manera que así se fuerza a mantener abierta las conexiones por parte del servidor. Los servidores web tienen determinado un número máximo global de sockets permitidos (configurados en los ficheros correspondientes).

Se trata de un DoS localizado al servicio web en concreto, manteniendo el resto de los servicios de la máquina accesibles.

¿Cómo mitigarlo?
Madre mía, qué buena pregunta. La verdad es que tiene una respuesta complicada.

He encontrado en Internet multitud de módulos Apache que se pueden incluir en el servidor web para efectuar diferente tipo de restricciones. Describo un poco los que más me han llamado la atención:

  • mod_evasive: Este módulo sirve para gestionar el número de peticiones por IP hacia una misma página en concreto o hacia el servidor en general. Se configuran los umbrales que permitimos así como diferentes sistemas de notificación (bloqueo dinámico con IPTables, correo de notificación de detección de intento de DoS, Syslog, etc,…)
  • mod_limitipconn: Mediante este simple módulo, podemos restringir el número de peticiones origen desde una única IP hacia un servidor. Permite configurar diferentes políticas según el Location, el tipo de fichero a descargar, etc,… para “abrir la mano” y no provocar una autodenegación de servicio.
  • mod_ip_count: Aún más simple que los anteriores, comprueba si el número de peticiones HTTP desde una única IP excede un tamaño máximo definido durante un periodo de tiempo.
Con todos ellos, la verdad es que hay que tener mucho cuidado, puesto que si configuramos de una forma excesivamente restrictiva estos módulos podemos generar la denegación de servicio nosotros mismos. Esto ocurriría por ejemplo, si los visitantes del servidor web acceden al mismo utilizando la misma dirección IP. Esto sucede cuando todas las peticiones salen desde una misma red cuyo router o firewall efectúa un NAT utiliza una única IP pública hacia Internet (lo más normal del mundo) o mediante un proxy.

Otra posible solución para paliar un ataque hecho mediante Slowloris es modificar, en el propio servidor web, el valor del parámetro TimeOut así como KeepAliveTimeOut. Para el primero por defecto son 300 segundos (o sea 5 minutos), lo cual puede hacer que efectivamente nuestro Apache sea carne de DoS en un corto espacio de tiempo. Si lo modificamos a un valor inferior (sin pasarse, puesto que una vez más, peticiones legítimas dejarían de funcionar), obligaríamos a que el atacante con slowloris hiciera uso de más y más máquinas para consumirnos muchas conexiones en muy poco tiempo. El segundo valor es el tiempo que espera para más peticiones bajo una misma conexión persistente. Por defecto viene a 15 segundos; un valor inferior liberará antes los recursos de esas conexiones persistentes.

Dentro de la propia máquina que alberga Apache (si es un *NIX) se pueden utilizar las herramientas propias del kernel de la máquina o del cortafuegos integrado para establecer políticas de conexión por cada IP.

Asimismo, utilizar las opciones de configuración provistas por los dispositivos intermedios (como firewalls o IPSs) podrían ser de utilidad también, para mitigar el flujo de tráfico que permitimos hacia el servidor web.

Anuncios

Hosting Casero

marzo 11, 2008

Aqui les dejo este interesante articulo sobre Hosting en su propia casa.

Ver Nota 


Apache recupera el terreno perdido ante IIS

marzo 9, 2008
Según un estudio de Netcraft, Apache ha conseguido cambiar el rumbo del decrecimiento de hospedaje de sitios web con el que acabó el año pasado frente al rumbo de crecimiento del software IIS de Microsoft. Apache está tomando la delantera en el escenario del software en servidores, el porcentaje de instalaciones en servidores vuelve a ser el 50.93%, 0,33 puntos por encima de Enero y 2,6 puntos desde el porcentaje más bajo: 47,73% en Octubre del año pasado

Las pérdidas de IIS son 0,23 puntos durante Febrero, sumando un pequeño aumento de 600.000 sitios web. El porcentaje de uso del software de Microsoft es 35.56%, bajando desde el 37,13% del mes de Octubre del año pasado.

Netcraft estima que 80,6 Millones de sitios web están actualmente corriendo bajo Apache.


Microsoft inicia guerra contra Apache

marzo 8, 2008

En el ámbito de los servidores Web, Microsoft tiene una posición inusualmente secundaria. El gigante informático se dispone a cambiar la situación.

Diario Ti: Microsoft desempeña un papel subordinado en el mercado de los servidores Web, en que ha dominado la combinación de Linux y Apache. La compañía se dispone ahora a realizar un nuevo intento por conquistar una cuota mayor del mercado, mediante una combinación de ISS 7.0 y Windows Server 2008. Microsoft se ha propuesto convencer a los usuarios a abandonar la combinación Linux /Apache.

En su blog, Microsoft escribe “parte de la explicación de la gran cuota del mercado que tiene Apache, es que fueron los primeros en ese segmento. En muchas empresas el uso de Internet comenzó con páginas Web relativamente sencillas, en que Apache era suficiente. En la medida en que han aumentado las necesidades de mayor integración con los demás equipos informáticos de las empresas, sumados a sistemas CMS (gestión de contenidos), cada vez más avanzados, Apache ha comenzado a perder relevancia”.

Según las estadísticas más recientes de Netcraft, Apache continúa siendo el servidor Web dominante con una cuota del mercado del 50,9%. Apache es un programa gratuito y basado en código abierto al igual que Linux. Microsoft ISS, por su parte, tiene una cuota del 35,5 % del mercado. Google ha comenzado a incursionar en el segmento de los servidores web y ya tiene una cuota del 5,3%.

El nuevo ISS 7.0 es considerado como una plataforma más segura, fácil de administrar y más económica en su operación, debido a que consiste de módulos que pueden ser instalados y eliminados según las necesidades de la empresa. De esa forma es posible evitar la instalación de funciones innecesarias, que recargan al servidor y abren riesgos de seguridad.

También es posible administrar el servidor desde la línea de comandos, al igual que ya es posible con Apache.

Fuente: Blog de Microsoft y Netcraft.

LEIDO EN :http://www.diarioti.com/gate/n.php?id=16786