Simple Science

Ciencia de vanguardia explicada de forma sencilla

# Informática# Criptografía y seguridad# Redes y arquitectura de Internet

Identificando Vulnerabilidades en HTTP/1.1 con HTTP Garden

HTTP Garden revela problemas críticos en el manejo de solicitudes HTTP/1.1 por parte de los servidores web.

― 6 minilectura


Vulnerabilidades deVulnerabilidades deHTTP/1.1 Reveladasen protocolos web desactualizados.HTTP Garden encuentra fallos cruciales
Tabla de contenidos

El HTTP Garden es una herramienta diseñada para encontrar problemas en cómo los servidores web entienden y procesan solicitudes HTTP/1.1. Estos problemas pueden ser explotados por atacantes para comprometer la seguridad web. HTTP/1.1 es un protocolo web más antiguo, y muchos servidores todavía lo soportan, haciendo que sea importante investigar sus vulnerabilidades.

La Importancia de HTTP/1.1

A pesar de la aparición de protocolos más nuevos como HTTP/2 y HTTP/3, HTTP/1.1 sigue siendo popular entre muchos servidores web. Su uso generalizado significa que las vulnerabilidades en este protocolo pueden seguir presentando riesgos significativos. La mayoría de los servicios web usan HTTP/1.1 para comunicarse, especialmente cuando se trata de solicitudes básicas.

Problemas de Parsing en HTTP/1.1

El núcleo del problema radica en cómo diferentes servidores interpretan los mensajes HTTP. Mientras que los estándares especifican una forma de construir mensajes, permiten flexibilidad en la interpretación de esos mensajes. Esto lleva a diferencias entre servidores, lo que puede crear vulnerabilidades.

Por ejemplo, cuando un servidor web recibe una solicitud malformada, puede manejarla de una manera que otro servidor no lo hace. Esta inconsistencia puede permitir que los atacantes se aprovechen de la situación, eludiendo medidas de seguridad o haciendo que los servidores se comporten de manera inesperada.

El Rol de los Transductores

Un tipo específico de servidor, conocido como transductor, juega un papel crucial en el procesamiento de solicitudes HTTP. Los transductores son servidores que modifican las solicitudes entrantes antes de enviarlas a su destino final. Estos pueden ser servidores de caché, que almacenan respuestas para un acceso rápido, o gateways, que gestionan solicitudes para múltiples servidores.

Los transductores generalmente necesitan entender las solicitudes que reciben. Si malinterpretan una solicitud, puede llevar a problemas más adelante. Por ejemplo, si un servidor de caché no procesa correctamente una solicitud, podría guardar datos incorrectos o no cachar una respuesta. Esto puede permitir que los atacantes suministren datos maliciosos, llevando a consecuencias no deseadas.

La Herramienta HTTP Garden

Para descubrir problemas de parsing en HTTP/1.1, el HTTP Garden utiliza un método conocido como fuzzing diferencial. Este enfoque implica enviar varias solicitudes a múltiples servidores y comparar sus respuestas. El objetivo es encontrar discrepancias en cómo diferentes servidores manejan la misma entrada.

El sistema busca discrepancias "significativas" que podrían llevar a vulnerabilidades de seguridad. Para que una inconsistencia sea marcada como significativa, debe persistir incluso después de tener en cuenta ciertos ajustes estándar. Esto significa que la herramienta se enfoca en discrepancias que podrían ser explotadas en lugar de diferencias benignas que no representan un riesgo.

Descubriendo Vulnerabilidades

Usando el HTTP Garden, los investigadores han encontrado numerosas vulnerabilidades en servidores web populares. Muchos de estos problemas pasaron desapercibidos hasta que fueron probados usando este nuevo sistema. Un número significativo de las vulnerabilidades descubiertas ya ha sido parchado, mostrando la efectividad de la herramienta para identificar amenazas de seguridad reales.

Reutilización de Conexiones

Una característica de HTTP/1.1 es la reutilización de conexiones, lo que permite a los servidores manejar múltiples solicitudes a través de la misma conexión. Este proceso puede acelerar la comunicación pero también complica cómo se analizan y gestionan las solicitudes. Si un servidor maneja incorrectamente solicitudes debido a la reutilización de conexiones, puede llevar a problemas como confusión en las respuestas, donde las respuestas van a los clientes equivocados.

Varios Tipos de Mensajes

Cada mensaje HTTP consiste en una línea de inicio, encabezados y un cuerpo opcional. La línea de inicio especifica detalles sobre la solicitud o respuesta, mientras que los encabezados incluyen información sobre las propiedades del mensaje. El cuerpo es una parte opcional que lleva datos adicionales.

Diferentes servidores pueden implementar estos componentes de maneras ligeramente diferentes, llevando a malinterpretaciones potenciales. Por ejemplo, un servidor puede manejar datos en fragmentos de manera diferente, lo que puede abrir la puerta a ataques que dependen de una mala comunicación entre servidores.

Request Smuggling

Un riesgo de seguridad serio se conoce como request smuggling. Esto ocurre cuando un transductor malinterpreta el límite entre múltiples solicitudes. Si no identifica correctamente una solicitud, puede llevar a que una solicitud se envíe como parte de otra.

Esta técnica puede ser utilizada para eludir medidas de seguridad, permitiendo a los atacantes enviar solicitudes dañinas mientras las disfrazan como tráfico legítimo. Esto puede resultar en acceso no autorizado o exposición de datos.

Hallazgos del HTTP Garden

El HTTP Garden ha ayudado a los investigadores a encontrar más de cien discrepancias únicas en cómo diferentes servidores manejan HTTP/1.1. Algunas de estas vulnerabilidades provienen de diferencias simples en cómo se leen y analizan los mensajes. Por ejemplo, no todos los servidores manejan campos vacíos de la misma manera, lo que lleva a inconsistencias que pueden ser explotadas.

La herramienta también destaca cómo ciertas solicitudes que deberían ser benignas pueden volverse peligrosas cuando diferentes servidores están encadenados, ya que sus interpretaciones pueden no alinearse. Los hallazgos enfatizan la necesidad de una mejor conformidad con los estándares y pruebas exhaustivas de las implementaciones de los servidores.

Desafíos con los Estándares Actuales

Los estándares para HTTP/1.1 proporcionan un marco básico pero dejan margen para la interpretación. Esta flexibilidad puede ser beneficiosa pero también presenta riesgos. Los servidores pueden variar en cómo implementan los estándares, llevando a vulnerabilidades. La necesidad de una especificación más clara y detallada es evidente, ya que muchas inconsistencias podrían mitigarse con pautas más estrictas.

Futuro de los Protocolos HTTP

Con la creciente adopción de HTTP/2 y HTTP/3, se espera que muchas de las vulnerabilidades presentes en HTTP/1.1 se puedan abordar. Estos protocolos más nuevos están diseñados para ser más eficientes y seguros, reduciendo potencialmente el riesgo de los tipos de problemas que se ven en HTTP/1.1. Sin embargo, mientras HTTP/1.1 siga en uso, las vulnerabilidades continuarán siendo una preocupación para la seguridad de las aplicaciones web.

Conclusión

El HTTP Garden sirve como una herramienta crítica para identificar y abordar vulnerabilidades en las implementaciones de HTTP/1.1. El trabajo destaca la importancia de pruebas exhaustivas y monitoreo de servidores web, especialmente a medida que siguen soportando protocolos más antiguos. A través de esfuerzos continuos como los del HTTP Garden, la web puede convertirse en un lugar más seguro para usuarios y aplicaciones por igual.

Fuente original

Título: The HTTP Garden: Discovering Parsing Vulnerabilities in HTTP/1.1 Implementations by Differential Fuzzing of Request Streams

Resumen: HTTP/1.1 parsing discrepancies have been the basis for numerous classes of attacks against web servers. Previous techniques for discovering HTTP parsing discrepancies have focused on blackbox differential testing of HTTP gateway servers, despite evidence that the most significant parsing anomalies occur within origin servers. While these techniques can detect some vulnerabilities, not all parsing discrepancy-related vulnerabilities are detectable by examining a gateway server's output alone. Our system, the HTTP Garden, examines both origin servers' interpretations and gateway servers' transformations of HTTP requests. It also includes a coverage-guided differential fuzzer for HTTP/1.1 origin servers that is capable of mutating all components of a request stream, paired with an interactive REPL that facilitates the automatic discovery of meaningful HTTP parsing discrepancies and the rapid development of those discrepancies into attack payloads. Using our tool, we have discovered and reported over 100 HTTP parsing bugs in popular web servers, of which 68 have been fixed following our reports. We designate 39 of these to be exploitable. We release the HTTP Garden to the public on GitHub under a free software license to allow researchers to further explore new parser discrepancy-based attacks against HTTP/1.1 servers.

Autores: Ben Kallus, Prashant Anantharaman, Michael Locasto, Sean W. Smith

Última actualización: 2024-05-27 00:00:00

Idioma: English

Fuente URL: https://arxiv.org/abs/2405.17737

Fuente PDF: https://arxiv.org/pdf/2405.17737

Licencia: https://creativecommons.org/licenses/by-sa/4.0/

Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.

Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.

Artículos similares