Vulnerabilidad de denegación de servicio en servidores web

Investigadores de seguridad han presentado en el Chaos Communication Congress un ataque de denegación de servicio sobre servicios web desarrollados en varios lenguajes de programación como PHP, Java o ASP.NET.
Estos lenguajes almacenan los valores sumistrados por el usuario (tipicamente mediante peticiones POST) en tablas hash por su velocidad de recuperación.
El ataque consiste en suministrar al servicio web un gran número de valores precalculados que generan el mismo hash (colisión de hashes), por lo que se almacenarán en el mismo «slot» de la tabla hash lo que provocará un gran consumo de recursos, debido al gran número de comparaciones que hay que realizar para su insercion, que puede provocar una denegación de servicio.

La vulnerabilidad se encuentra en la forma en que la aplicación web almacena en tablas hash los valores sumistrados por el usuario. Entre otros, se ven afectados PHP5, Java y ASP.NET.

Sistemas Afectados:
– Aplicaciones web que utilicen alguno de los siguientes lenguajes de programación:
– PHP
– ASP.NET
– Java
– Python
– Ruby
– v8/node.js (implementación de Javascript de Google)
– Cualquier otro lenguaje de programación que no utilice un valor aleatorio en la generación de hashes para la inserción en tablas hash.

 

Solución:
La mejor solución es que los desarrolladores de los lenguajes afectados aleatoricen la clave utilizada («hash seed») al computar los hashes en la inserción en tablas hash. De este, modo el atacante no podría precalcular las colisiones de hashes.
Por el momento, los operadores o desarrolladores de los sitios web puede tomar las siguientes medidas mitigadoras:
– Reducir el tamaño de los parámetros POST. Para ASP.NET se pueden consultar el apartado «Workarounds» de su aviso de seguridad.
– Reducir el número de parámetros aceptados por la aplicación.
– Limitar el tiempo de CPU de generación de una respuesta:
– PHP: reducir max_input_time.
– ASP.NET: shutdown time limit.

 

Deja una respuesta

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

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.