Aplicaciones web y servidores JavaScript vulnerables a ataques ReDoS

Un nuevo exploit de día cero para Windows VBScript Engine descubierto que pertenece a la pandilla de criminales cibernéticos de Corea del Norte llamada Darkhotel

Estas vulnerabilidades tienen lugar cuando un atacante envía fragmentos de texto grandes y complejos a la entrada abierta de un servidor web o aplicación basados ​​en JavaScript.

Si el componente del servidor o una biblioteca de aplicaciones no están diseñados específicamente para manejar varios casos extremos, la entrada del atacante puede terminar bloqueando toda la aplicación o el servidor por segundos o minutos a la vez, mientras el servidor analiza y compara el patrón con la entrada.

Varios lenguajes de programación y tecnologías de servidor web tienen problemas similares con el rendimiento de operaciones de coincidencia de patrones y ataques ReDoS, pero son enormemente exagerados en el caso de JavaScript debido al modelo de ejecución de un solo subproceso de la mayoría de los servidores JavaScript, donde cada solicitud es manejada por el mismo hilo.

Cuando se produce un ataque ReDoS, esto termina obstruyendo todo el servidor, en lugar de ralentizar una operación en particular.

Ataques ReDoS conocidos desde 2012 pero cobrando impulso

Los ataques ReDoS en el caso de los servidores JavaScript se detallaron por primera vez en un documento de investigación publicado en 2012, pero en aquel entonces, JavaScript, y Node.js, en particular, no eran tan gigantescos como en la escena de desarrollo web, por lo tanto, este problema particular fue ignorado en gran parte durante otra mitad de la década.

La investigación posterior publicada en 2017 reveló que el 5% de las vulnerabilidades totales encontradas en las bibliotecas y aplicaciones de Node.js eran vulnerabilidades ReDoS.

Pero según una investigación presentada en una conferencia de seguridad la semana pasada, el problema de ReDoS está ganando impulso en la comunidad de JavaScript porque no se ha tratado durante tantos años.

Cristian-Alexandru Staicu y Michael Pradel, dos académicos de la Universidad Técnica de Darmstadt, Alemania, dicen haber encontrado 25 vulnerabilidades desconocidas hasta ahora en los populares módulos Node.js.

Los dos dijeron que un atacante podría crear paquetes de exploits especiales y atacar sitios web / servidores usando cualquiera de estas 25 bibliotecas.

Enviar paquetes de exploits hace que cualquiera de los sitios vulnerables se congele entre unos segundos e incluso minutos, ya que el servidor intenta hacer coincidir el texto contenido en el exploit con un patrón de expresión regular ( regex ) para decidir qué hacer con el entrada. Tales filtros regex en los campos de entrada son comunes, ya que son la base de muchos filtros XSS.

Pero aunque un ataque es malo, enviar paquetes de exploits repetidos al mismo servidor puede causar periodos de inactividad prolongados.

Casi 340 sitios vulnerables a ataques ReDoS

Staicu y Pradel dicen que la razón principal de estos defectos es la falta de atención al rendimiento del ajuste de expresiones regulares, ya que la mayoría de los desarrolladores parecen estar enfocados en la precisión, dejando grandes agujeros en su código que los atacantes pueden explotar usando ataques ReDoS.

Los dos también llevaron su investigación un paso más allá. Idearon un método para detectar estas vulnerabilidades en sitios web en vivo sin utilizar realmente el código de explotación ReDoS.

Utilizaron este método para escanear 2.846 sitios populares basados ​​en Node.js, revelando que 339 -aproximadamente 12% - eran vulnerables a al menos una vulnerabilidad ReDoS.

"ReDoS representa una seria amenaza para la disponibilidad de estos sitios", dijo el equipo de investigación. "Nuestros resultados son un llamado a las armas para el desarrollo de técnicas para detectar y mitigar vulnerabilidades ReDoS en JavaScript".

Algunos problemas ReDoS fueron parcheados

El equipo de investigación de TU Darmstadt informó todas las vulnerabilidades a los desarrolladores de módulos respectivos, algunos de los cuales abordaron los problemas. Este repositorio de GitHub contiene exploits de prueba de concepto para probar las bibliotecas vulnerables pero también enlaces a las correcciones apropiadas para los módulos afectados.

Además de JavaScript, también se sabe que Java se ve afectado por los ataques ReDoS. En 2017 , investigadores de la Universidad de Texas en Austin crearon una herramienta llamada Rexploiter, que utilizaron para encontrar 41 vulnerabilidades ReDoS en 150 programas Java recopilados de GitHub.

Fecha actualización el 2021-08-20. Fecha publicación el 2018-08-20. Categoría: hackers Autor: Oscar olg Mapa del sitio Fuente: bleempingcomputer
Hackers Darkhotel