Skip to main content

Encuentra y corrige la vulnerabilidad zero-day HTTP/2 Rapid Reset CVE-2023-44487

feature http2 vuln

11 de octubre de 2023

0 minutos de lectura

Entre agosto y octubre de 2023, investigadores y proveedores analizaron ataques DDoS volumétricos en circulación y descubrieron una novedosa técnica de «reinicio rápido» que aprovecha la multiplexación de flujos, una función del protocolo HTTP/2, ampliamente adoptado.

Divulgada hoy, la vulnerabilidad HTTP/2 Rapid Reset se registra como CVE-2023-44487 y se ha clasificado como de gravedad alta, con una puntuación CVSS de 7.5 (sobre 10).

Se cree que la vulnerabilidad afecta a todos los servidores web que implementan HTTP/2 y que, si se explota, podría permitir ataques DDoS volumétricos de gran magnitud. Si esta CVE afecta a un paquete de aplicación o de sistema operativo Y ese paquete está presente en una aplicación implementada con acceso a Internet, considera lo siguiente:

  • Consulta con tu proveedor de infraestructura o CDN (por ejemplo, Cloudflare, Google Cloud, AWS o Akamai) para asegurarte de que hayas mitigado esta vulnerabilidad.

  • Actualiza el paquete si hay una corrección disponible. Ya se publicaron versiones corregidas para algunos paquetes.

Snyk no está afectado por esta vulnerabilidad

Todos los servicios de Snyk accesibles desde el exterior están protegidos: están alojados detrás de Akamai o de balanceadores de carga en la nube que ya se han mitigado.

Mitigación mediante el proveedor de infraestructura

En primer lugar, se recomienda que las organizaciones apliquen cambios de configuración y mitigaciones a través de proveedores de infraestructura y CDN, cuando sea necesario, para reducir la exposición a esta novedosa técnica de DDoS. 

Aunque es posible mitigar con éxito la exposición a esta vulnerabilidad mediante proveedores de infraestructura o balanceadores de carga en la nube, es importante ir más allá y corregir el problema desde el origen: actualiza todos los paquetes que podrían estar afectados por esta CVE.

Actualización de paquetes a versiones corregidas

Luego, las organizaciones deben comprobar si alguna de sus imágenes de contenedor o ecosistemas de código abierto está afectada y aplicar las actualizaciones disponibles. Puedes encontrar todos los avisos sobre esta CVE específica en Snyk Vulnerability Database. Solo tienes que seleccionar los administradores de paquetes o las distribuciones de contenedores que usas.

Snyk Vulnerability Database filtrada por CVE-2023-44487, que muestra vulnerabilidades de agotamiento de recursos de gravedad alta en los paquetes afectados.

Detección de las vulnerabilidades HTTP/2 con Snyk

Para comprobar si tus proyectos o aplicaciones están afectados, filtra por «CVE-2023-44487» en el informe Issue Detail y encuentra los proyectos que contienen un paquete vulnerable.

Panel de detalles de problemas de Snyk filtrado por CVE-2023-44487, que muestra 32 problemas en siete vulnerabilidades únicas y el recuento por nivel de gravedad.

Prueba tus proyectos con Snyk CLI

Hay varias formas de detectar y corregir la vulnerabilidad HTTP/2 —gratis— con Snyk. Usa Snyk CLI para probar tus proyectos de forma local.

Prueba de proyectos que usan administradores de paquetes

Para las aplicaciones, ejecuta snyk test desde Snyk CLI para comparar las dependencias de tu repositorio y detectar paquetes individuales y sus vulnerabilidades. Puedes probar todos los proyectos con Snyk CLI usando snyk test --all-projects y especificar el administrador de paquetes con la marca --package-manager=. También puedes especificar un archivo de requisitos no estándar con la marca --file=.

Actualmente, los argumentos compatibles con la marca --package-manager= incluyen cocoapods, composer, golangdep, maven, npm, pip y otros (consulta la CLI para ver más opciones).

Pruebas con la CLI para proyectos de C++

Para las aplicaciones, ejecuta snyk test --unmanaged desde Snyk CLI para comparar las dependencias no administradas de tu repositorio y detectar paquetes individuales y sus vulnerabilidades.

Pruebas con la CLI para imágenes de contenedor

Para los contenedores, ejecuta snyk container test para detectar paquetes del sistema operativo que dependan de versiones vulnerables de HTTP/2. Para obtener mejores resultados, incluye tanto el nombre de la imagen como la ruta al Dockerfile que la creó. Por ejemplo:

snyk container test debian:10 --file=Dockerfile

Prueba tus proyectos mediante una integración de Git/SCM

Al importar tu proyecto a Snyk mediante nuestras integraciones de SCM compatibles (GitHub, Bitbucket, GitLab, Azure Repos), se iniciará una prueba automáticamente. Así podrás usar la interfaz de Snyk para identificar, priorizar y corregir las vulnerabilidades http/2 de tus proyectos cuando haya una corrección disponible. 

Corrección de las vulnerabilidades HTTP/2

Una vez que hayas identificado los paquetes y contenedores vulnerables en tu entorno, puedes corregirlos con Snyk. Los métodos son similares, pero tienes un par de opciones.

Para componentes de código abierto

  • Corrección automática: Conecta Snyk a tus repositorios de Git para que pueda crear pull request que actualicen tu gráfico de dependencias cuando sea posible. Luego, vuelve a compilar tu aplicación.

  • Corrección manual (opción 1): Si tienes una dependencia directa de un componente afectado por la vulnerabilidad HTTP/2, actualiza el archivo de dependencias para especificar la versión que incluye la corrección. Luego, vuelve a compilar tu aplicación.

  • Corrección manual (opción 2): Si tu aplicación usa un componente afectado por la vulnerabilidad HTTP/2 como dependencia indirecta o transitiva, identifica una versión de tu dependencia directa que incluya una versión actualizada de la dependencia afectada. Luego, vuelve a compilar tu aplicación. Como alternativa, si tu administrador de paquetes permite las anulaciones, puedes tratar la dependencia como directa e incluir una versión corregida en el archivo de requisitos.

Para imágenes de contenedor

  • Corrección automática: Conecta Snyk a tus repositorios de Git para que pueda crear pull request que actualicen la imagen base de tu Dockerfile cuando sea posible. Comprueba si la actualización sugerida de la imagen base sigue teniendo la vulnerabilidad en https://snyk.io/test/docker/<image_name> , y luego vuelve a compilar el contenedor cuando encuentres una ruta de actualización adecuada.

Panel del proyecto de Snyk que muestra recomendaciones para actualizar la imagen base, la cantidad de vulnerabilidades, los niveles de gravedad y un botón «Abrir una solicitud de cambio para corregir».
  • Corrección manual: Si tu imagen incluye versiones vulnerables de los paquetes y no hay una actualización de la imagen base disponible o no quieres usarla, puedes actualizarla por tu cuenta siguiendo las recomendaciones de corrección de Snyk Container. 

Si todavía no hay una corrección disponible

Si no puedes actualizar un paquete o contenedor específico, puedes mitigar esta vulnerabilidad antes de llegar a la ruta de llamada, como se describe más arriba. Por ejemplo, si un servicio está afectado por esta vulnerabilidad y queda expuesto a Internet mediante un balanceador de carga en la nube, no se verá afectado porque los principales proveedores de servicios en la nube ya mitigaron este riesgo en su infraestructura.

¿Cómo volver a priorizar esta vulnerabilidad con políticas personalizadas?

Si quieres aumentar la prioridad de la vulnerabilidad HTTP/2 para darle más visibilidad, puedes usar las políticas personalizadas de Snyk para volver a priorizarla. Actualmente, la CVE tiene un nivel de gravedad alto. Sin embargo, si quieres cambiar esa prioridad, puedes crear una política que afecte a CVE-2023-44487 y cambiar la gravedad a Critical.

Interfaz de reglas de seguridad que muestra cómo CVE-2023-44487 provoca un cambio en la gravedad a crítica

Como alternativa, si mitigaron el riesgo de otras maneras, pueden cambiar la gravedad a baja para que sus informes reflejen la situación con precisión. 

Vuelve a probar después de agregar políticas de severidad personalizadas

Después de agregar una política de severidad personalizada, debes volver a probar los proyectos para que vuelvan a aparecer las severidades modificadas.

Próximos pasos para responder a las vulnerabilidades HTTP/2

  1. Aplica cambios de configuración y mitigaciones mediante proveedores de infraestructura y CDN para reducir la exposición a esta novedosa técnica de DDoS. 

  2. Prueba tus proyectos con Snyk usando los métodos descritos en este artículo. Para empezar, crea una cuenta gratuita de Snyk y luego importa y analiza todos los proyectos que podrían estar afectados con el asistente de importación.

  3. Cuando haya correcciones disponibles, aplícalas actualizando las bibliotecas afectadas a versiones corregidas y creando imágenes de contenedor con imágenes base corregidas.

  4. Sigue de cerca la evolución de esta situación, asegúrate de seguirnos en Twitter/X (@snyksec) y visita el blog de Snyk para enterarte de las novedades. Los equipos de seguridad de Snyk actualizarán nuestros recursos con regularidad para incluir la información más reciente.

Empieza con los desafíos de Capture the Flag

Aprende a resolver desafíos de captura la bandera con nuestro taller virtual introductorio a pedido.