Recursos Afectados
Inicialmente, se debe comprobar si el protocolo HTTP/2 está habilitado.
- Cualquier empresa o usuario que esté sirviendo una carga de trabajo basada en HTTP a Internet podría estar en riesgo de este ataque. Las aplicaciones web, servicios y API en un servidor o proxy capaz de comunicarse utilizando el protocolo HTTP/2 podrían ser vulnerables.
- Módulo NGINX HTTP/2 (ngx_http_v2_module).
- Apache Tomcat, versiones:
- desde 8.5.0 hasta 8.5.93;
- desde 9.0.0-M1 hasta 9.0.80;
- desde 10.1.0-M1 hasta10.1.13.
- Listado de productos afectados de Microsoft IIS.
Descripción
Cloudfare, en colaboración con Google y Amazon AWS, ha publicado la existencia de una vulnerabilidad 0day denominada ataque «HTTP/2 Rapid Reset». Explotando esta vulnerabilidad del protocolo HTTP/2 se podrían provocar ataques hipervolumétricos de denegación de servicio distribuido (DDoS).
Solución
- Aplicar en los archivos de configuración de NGINX las siguientes medidas de mitigación:
- keepalive_requests debe mantenerse en el valor predeterminado de 1000 peticiones;
- http2_max_concurrent_streams debe mantenerse en la configuración predeterminada de 128 flujos;
- limit_conn impone un límite al número de conexiones permitidas desde un mismo cliente. Esta directiva debe añadirse con una configuración razonable que equilibre el rendimiento de la aplicación y la seguridad;
- limit_req impone un límite en el número de peticiones que serán procesadas en un determinado periodo de tiempo desde un único cliente. Esta directiva debe añadirse con una configuración razonable que equilibre el rendimiento y la seguridad de la aplicación.
- Actualizar Apache Tomcat a las versiones 8.5.94, 9.0.81 y 10.1.14.
- Desactivar el protocolo HTTP/2 en el servidor web mediante el Registry Editor.
- Adicionalmente, como recomendaciones generales, eliminar la referencia a http2 en la parte de escucha del archivo de configuración del servidor web y aplicar las recomendaciones aportadas en el blog de Cloudfare.
Detalle
La vulnerabilidad aprovecha un punto débil del protocolo HTTP/2, permitiendo a los atacantes generar ataques DDoS hipervolumétricos. El ataque consiste en enviar un gran número de streams HTTP/2 y cancelarlos inmediatamente, creando una asimetría entre el cliente y el servidor.
Esta vulnerabilidad podría permitir a un atacante, remoto no autenticado, provocar un aumento en el uso de la CPU que podría conducir a una condición de DDoS en el sistema afectado.
Se ha asignado el identificador CVE-2023-44487 para esta vulnerabilidad.