Las organizaciones que no implementan HTTP / 2 de un extremo a otro son vulnerables a los ataques que redirigen a los usuarios a sitios web maliciosos y otras amenazas, según un investigador de seguridad de Black Hat USA.
BLACK HAT USA 2021 – Los errores de implementación y las imperfecciones en las especificaciones técnicas que rodean a HTTP / 2 están exponiendo a los sitios web que usan el protocolo de red a riesgos completamente nuevos, advirtió un investigador de seguridad en una presentación en Black Hat USA el jueves.
James Kettle, director de investigación de PortSwigger, que pasó dos años demostrando los llamados ataques de desincronización contra sitios web que utilizan el protocolo HTTP en Black Hat, mostró esta semana cómo se podrían llevar a cabo ataques similares contra sitios web que utilizan el estándar de uso HTTP / 2. .
Como prueba de concepto, Kettle describió los ataques en los que pudo usar sus técnicas contra sitios web de organizaciones como Netflix, los operados por Application Load Balancer de Amazon y sitios web que usan el firewall de aplicaciones web en la nube Imperva. En muchos casos, pudo redirigir las solicitudes de los servidores web en estos sitios a su propio servidor.
Casi el 50% de todos los sitios web utilizan actualmente el protocolo HTTP / 2 (H2), que se introdujo en 2015 como una alternativa más rápida y sencilla a HTTP / 1.1. Como lo describe Google, con el nuevo protocolo «se conservan todos los conceptos básicos, como los métodos HTTP, los códigos de estado, los URI y los campos de encabezado». «En cambio, HTTP / 2 cambia la forma en que los datos se formatean (enmarcan) y se transportan entre el cliente y el servidor, los cuales administran todo el proceso y oculta toda la complejidad de nuestras aplicaciones dentro de la nueva capa de encuadre».
Según Kettle, pueden surgir varios problemas de seguridad si las organizaciones no usan HTTP / 2 de manera consistente. En su lugar, tienen un servidor de aplicaciones para el usuario que habla HTTP / 2 a los clientes y luego reescribe las solicitudes de esos clientes a HTTP / 1.1 antes de reenviarlas a un servidor de servicios de fondo.
«La gran mayoría de los servidores que hablan HTTP / 2 en realidad hablan HTTP / 1 al back-end», dijo durante su charla de sombrero negro. Hablas H2 con el cliente y H1 con el back-end, dijo Kettle.
«Esta configuración es ridículamente común», señaló. Por ejemplo, Kettle señaló al Application Load Balancer de Amazon, que no puede desactivar esta comunicación. Tales degradaciones HTTP / 2 y traducciones de protocolos permiten a los atacantes llevar a cabo ataques de desincronización, dijo Kettle.
Los ataques de desincronización HTTP esencialmente abusan de las debilidades en la interpretación y reacción de los servidores back-end a las sucesivas solicitudes de un servidor front-end, balanceador de carga o servidor proxy. Por ejemplo, los servidores de aplicaciones para el usuario que hablan HTTP / 2 siguen un formato determinado para transmitir la longitud del mensaje al servidor de servicios de fondo. Sin embargo, un servidor backend que solo habla HTTP / 1.1 no reconoce los datos porque obtiene información sobre la longitud de una solicitud utilizando otros métodos.
Un atacante podría aprovechar las diferencias en la longitud de los mensajes entre el servidor de aplicaciones para el usuario y el servidor de servicios de fondo para afectar materialmente la forma en que una aplicación podría procesar las solicitudes.
Objetivos de primera
Para mostrar cómo funcionaría un ataque de este tipo, Kettle señaló un exploit que llevó a cabo contra Netflix en el que los servidores front-end HTTP degradan sin verificar la longitud de las solicitudes. La vulnerabilidad permitió a Kettle desarrollar un exploit que hizo que el backend de Netflix redirigiera las solicitudes desde el frontend de Netflix a su propio servidor. Esto permitió a Kettle ejecutar código potencialmente malicioso para comprometer las cuentas de Netflix, robar contraseñas de usuarios, información de tarjetas de crédito y otros datos. Netflix corrigió la vulnerabilidad y le otorgó a Kettle su recompensa máxima de $ 20,000 por informar a la compañía.
En otro caso, Kettle descubrió que Application Load Balancer de Amazon no pudo implementar una especificación HTTP / 2 en cierta información de encabezado de mensaje que HTTP / 1.1 usa para inferir las longitudes de las solicitudes. Con esta vulnerabilidad, Kettle podría demostrar cómo un atacante podría aprovecharla para redirigir las solicitudes de los servidores de aplicaciones para el usuario a un servidor controlado por el atacante. Encontró un portal de aplicación de la ley vulnerable mientras usaba Amazon Load Balancer.
Casi todos los sitios web que utilizan Amazon Load Balancer son vulnerables a la explotación, dijo Kettle. Al igual que un CMS que ejecutaba varios sitios de noticias como el Huffington Post, y cada sitio web usaba un WAF Imperva, agregó.
Durante su presentación, Kettle destacó varios otros exploits que desarrolló para aprovechar las vulnerabilidades que surgen cuando las empresas degradan HTTP / 2 a HTTP. También lanzó una versión actualizada de HTTP Request Smuggler, una herramienta que las empresas pueden utilizar para identificar vulnerabilidades específicas de HTTP / 2 en su red. El escáner de vulnerabilidades de Burp Suite también se ha actualizado para detectar estas vulnerabilidades, dijo Kettle.
«Por favor, evite las degradaciones de HTTP / 2», aconsejó. «Simplemente hable HTTP / 2 de un extremo a otro. Si lo hace, alrededor del 80% de los ataques de esta presentación simplemente no funcionarán».
Jai Vijayan es un reportero de tecnología experimentado con más de 20 años de experiencia en periodismo comercial de TI. Más recientemente, fue editor senior en Computerworld, donde se ocupó de cuestiones de seguridad de la información y protección de datos para publicaciones. Durante sus 20 años … Ver biografía completa
Literatura recomendada:
Más información