BLOG | NGINX

Informe de vulnerabilidad HTTP/2 de Imperva y NGINX

NGINX - Parte de F5 - horizontal, negro, tipo RGB
Miniatura de Owen Garrett
Owen Garrett
Publicado el 5 de agosto de 2016

El 3 de agosto, Imperva, una empresa de seguridad de Internet, anunció cuatro posibles vulnerabilidades de seguridad en el protocolo HTTP/2 y emitió un informe detallado que evalúa varios servidores web contra estas vulnerabilidades.

Como se muestra en la tabla (de la página 19 del informe de Imperva), NGINX 1.9.9 tuvo un desempeño comparativamente bueno en las pruebas de Imperva y no se vio afectado por tres de las cuatro vulnerabilidades potenciales. Los intentos de explotar la vulnerabilidad restante, “Lectura lenta”, provocaron una fuga de recursos en NGINX y, en última instancia, permitieron un ataque de denegación de servicio contra los servicios HTTP/2.

Vulnerabilidades expuestas en servidores web líderes

El error se informó a NGINX y se resolvió rápidamente en las versiones NGINX 1.9.12 y NGINX Plus R9. Nos complace confirmar que ninguna de las versiones actuales del software NGINX (NGINX Plus, NGINX Open Source ‘mainline’ o NGINX Open Source ‘stable’) son vulnerables a ninguno de los posibles ataques descritos por Imperva.

Si ha implementado HTTP/2 y está utilizando una versión de nuestro software anterior a NGINX 1.9.12 o NGINX Plus R9, actualice su software. HTTP/2 es un protocolo complejo y relativamente nuevo, por lo que es recomendable ejecutar la última versión del software en todo momento.

Le sugerimos que revise nuestras mejores prácticas para ajustar NGINX y NGINX Plus . El ajuste de una configuración de Linux predeterminada suele ser bastante conservador y cambiar algunos parámetros puede aumentar la capacidad de su sistema NGINX o NGINX Plus.

El problema

En agosto de 2016, HTTP/2 se utilizaba actualmente en aproximadamente el 9% de todos los sitios web , incluidos sitios muy populares como FaceBook, Google y Wikipedia. Los proveedores de redes de distribución de contenido (CDN) que utilizan NGINX y NGINX Plus a menudo incluyen HTTP/2 como parte de sus ofertas.

El diseño complejo de HTTP/2 significa que hay muchas vías posibles que los investigadores pueden explorar para buscar debilidades de diseño o implementación. Los informes de Imperva describen cuatro vulnerabilidades potenciales en HTTP/2:

  • Ataque de lectura lenta (CVE-2016-1546) , que afecta a Apache HTTP Server 2.4.17 y 2.4.18 . Esta es la única de las cuatro vulnerabilidades que afectaron a NGINX; consulte la página 11 del informe. La lista de la Base de Datos Nacional de Vulnerabilidad (NVD) es CVE-2016-1546 .
  • Multiplexación de flujo HTTP/2 (CVE-2016-0150) , que afecta a Microsoft Windows 10 Gold y 1511 . La lista de NVD es CVE-2016-0150 .
  • Dependencia y prioridad , que afecta a las versiones de nghttpd anteriores a 1.7.0 y Apache HTTP Server 2.4.18 y anteriores. El informe afirma que la vulnerabilidad se solucionó en nghttpd 1.7.0 “como parte de un problema de limpieza de memoria más general (CVE-2015-8659) ”. La lista de NVD es (CVE-2015-8659) .
  • Bomba HPACK (CVE-2016-1544 y CVE-2016-2525) , que afecta a las versiones de nghttpd anteriores a 1.7.1 y a las versiones de Wireshark anteriores a 2.0.2 y 1.12.10 . La lista de NVD es CVE-2016-2525 ; la lista para CVE-2016-1544 está marcada como reservada y no contiene información.

Cuando Imperva probó varios servidores web para ver si presentaban vulnerabilidades, una variación de su prueba de “Lectura lenta” expuso un error de pérdida de recursos en NGINX y NGINX Plus. Esta fuga de recursos finalmente resultó en una denegación de servicio.

NGINX y NGINX Plus generalmente no son vulnerables a ataques de “lectura lenta” (a menudo conocidos como Slowloris ). El caso de prueba de Imperva nos ayudó a aislar un error de pérdida de recursos informado previamente . Luego pudimos abordar este caso de error agregando tiempos de espera y protecciones adicionales para garantizar que los recursos HTTP/2 se cerraran y liberaran correctamente, y pudimos verificar que estas medidas son efectivas.

Mitigación

Recomendamos encarecidamente actualizar a la última versión de NGINX y NGINX Plus, especialmente si ha implementado HTTP/2 y está utilizando NGINX 1.9.11 o anterior, o NGINX Plus R8 o anterior. El error de fuga de recursos expuesto por el caso de prueba de Imperva no se presenta en NGINX 1.9.12 y posteriores ni en NGINX Plus R9 y posteriores.

NGINX y NGINX Plus ofrecen formas efectivas de vencer la vulnerabilidad relevante descrita en el informe de Imperva, y la actualización a la última versión de cualquiera de los productos elimina la vulnerabilidad por completo.

Para reducir la vulnerabilidad de su sitio en general, también le recomendamos que tome las acciones descritas en nuestra publicación sobre la mitigación de ataques DDoS , que incluyen:

  • Limitar la tasa de solicitudes de un solo usuario (la directiva limit_req )
  • Limitar el número de conexiones que puede abrir un solo cliente (la directiva limit_conn )
  • Cerrar conexiones más rápidamente con tiempos de espera más agresivos

Si tiene alguna pregunta, comente esta publicación o, si es suscriptor de NGINX Plus, no dude en ponerse en contacto con nuestro equipo de soporte para obtener ayuda.


"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.