Noticias de Seguridad Informática - Segu-Info

martes, 3 de enero de 2012

10:29:00

Vulnerabilidad permitiría dejar sin servicio a la mayoría de servicios web

Una vulnerabilidad que afecta a la gran mayoría de las plataformas de servicios web actuales podría permitir la realización de ataques de denegación de servicio.

La vulnerabilidad fue presentada por dos investigadores en una conferencia en el ya mítico congreso Chaos Communication Congress, organizado por el Chaos Computer Club.

El problema afecta a una larga lista de tecnologías de desarrollo web, incluyendo PHP, ASP.NET, Java, Python, Ruby, Apache Tomcat, Apache Geronimo, Jetty o  Glassfish. Concretamente versiones:
Básicamente es más fácil decir a los lenguajes que no afecta: Perl y CRuby 1.9. 

La base de la vulnerabilidad reside en que prácticamente todos los lenguajes almacenan en tablas hash los valores de los parámetros de las peticiones web. Pero las funciones hash empleadas se ven afectadas por colisiones. Por lo que es fácil generar peticiones con parámetros que tengan el mismo hash. De forma que cuando el servidor inserta los valores en la tabla hash se ve obligado a realizar un gran número de operaciones. Lo que, con un número adecuado de parámetros, provoca la denegación de servicio.

Este problema no es nuevo, básicamente es idéntico a otro ya conocido desde 2003, que afectaba a Perl. Motivo por el que este lenguaje ya incorpora la adecuada solución, que pasa por aleatorizar la clave empleada para calcular el hash. De esta forma, el atacante no podrá precalcular parámetros con hashes que provoquen colisiones. Otra forma de evitar el fallo, mucho más sencilla, pasa por limitar el número de parámetros procesados en cada petición.

Para tener una idea del alcance problema, en un sistema con Intel Core i7 sobre una aplicación PHP, bastarían 500k de datos POST para ocupar un minuto de tiempo de cálculo de CPU. De tal forma que bastaría con una conexión de entre 70 a 100 kbits/s para mantener ocupada una CPU de este tipo.

Los principales lenguajes ya han publicado actualizaciones y parches que corrigen esta vulnerabilidad, que pueden ser descargadas desde la página oficial de cada uno de ellos.

Microsoft, por ejemplo, ha publicado un boletín de urgencia para corregir esta vulnerabilidad en Microsoft .NET Framework (si bien este problema no es considerado crítico), y además solucionar otras tres vulnerabilidades (una de ellas crítica).

Apache Tomcat ha implementado una contramedida para evitar los efectos de un posible ataque, para lo que proporciona la nueva opción "maxParameterCount" que limita el número de parámetros procesados en cada petición. Por defecto está fijado a 10.000, suficientemente alto para soportar cualquier aplicación y suficientemente bajo para mitigar los efectos del DoS. Esta contramedida está disponible en las ramas 7.0.23 (en adelante) y 6.0.35 (en adelante).

En PHP una contramedida pasa por limitar el tiempo de CPU de generación de una respuesta mediante "max_input_time".

Otras actualizaciones:
  • Ruby: actualización a la versión 1.8.7-p357.
  • PHP 5: corregido a través de repositorios SVN.
  • Rack: corregido a través de repositorio GIT.
  • Apache Tomcat: actualización a las versiones 5.5.35, 6.0.35, y 7.0.23.
  • JRuby: actualización a la versión 1.6.5.1.
Más información:

#2011-003 multiple implementations denial-of-service via hash algorithm collision
http://www.ocert.org/advisories/ocert-2011-003.html

Efficient Denial of ServiceAttacks on Web ApplicationPlatforms
http://events.ccc.de/congress/2011/Fahrplan/attachments/2007_28C3_Effective_DoS_on_web_application_platforms.pdf

Microsoft Security Bulletin MS11-100 – Critical
Vulnerabilities in .NET Framework Could Allow Elevation of Privilege (2638420)
http://technet.microsoft.com/es-es/security/bulletin/ms11-100

[SECURITY] Apache Tomcat and the hashtable collision DoS vulnerability
http://mail-archives.apache.org/mod_mbox/www-announce/201112.mbox/%3C4EFB9800.5010106@apache.org%3E

Denial of Service through hash tablemulti-collisions
http://www.nruns.com/_downloads/advisory28122011.pdf

Denial of Service via Algorithmic Complexity Attacks
http://www.cs.rice.edu/~scrosby/hash/CrosbyWallach_UsenixSec2003/index.html

CCC Event blog – 28C3
http://events.ccc.de/

Fuente: Hispasec

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info
Si vas a dejar una consulta, procura tener habilitado tu perfil en Blogger o deja una forma de contacto.

Gracias por comentar!

Aquí y Ahora

 
 Widget de Google 

Acerca de Segu-Info

Segu-Info es un emprendimiento personal de Lic. Cristian Borghello CISSP - MVP que brinda información sobre Seguridad de la Información desde el año 2000. Segu-Info es la Comunidad de Seguridad de la Información más grande de habla hispana. Todos los contenidos de este sitio se encuentran bajo Licencia Creative Commons a menos que se indique lo contrario. Cristian Borghello no se hace responsable del contenido o comentarios de terceros.

  ©Template desarrollado por Dicas Blogger y Adaptado por SoloE para Segu-Info - 2009