Longitud de encabezado HTTP grande / sobredimensionado e implicaciones de seguridad

3

¿Se pregunta si existen riesgos o implicaciones de seguridad relacionados con un servidor que devuelve longitudes de encabezado HTTP relativamente grandes (100+)?

    
pregunta user987654321 14.01.2016 - 05:17
fuente

3 respuestas

6

Varios firewalls (o IDS, IPS, UTM, NGFW, como quiera que los llamen) tienen límites en la longitud del contenido que analizan en busca de malware (por lo general, alrededor de 10 MB, pero a veces incluso más bajo). Algunos incluyen la longitud del encabezado HTTP en este cálculo. En este caso, el análisis del cuerpo HTTP (que contiene el malware) se puede omitir cuando el encabezado HTTP ya es más grande que el límite de inspección.

    
respondido por el Steffen Ullrich 14.01.2016 - 06:50
fuente
3

El HTTP RFC no corrige la longitud del encabezado, pero al menos indica:

  

Se encuentran varias limitaciones ad hoc en la longitud de la línea de solicitud en    práctica. Se RECOMIENDA que todos los remitentes y destinatarios HTTP     soporte, como mínimo, longitudes de línea de solicitud de 8000 octetos.

Eso fue para la primera línea. Para los encabezados que tiene (negrita agregada):

  

HTTP no coloca un límite predefinido en la longitud de cada encabezado   campo o en la longitud de la sección del encabezado en su totalidad, como se describe   en la sección 2.5. Varias limitaciones ad hoc en el encabezado individual   la longitud del campo se encuentra en la práctica , a menudo dependiendo de la específica   Semántica de campo.

     

Un servidor que recibe un campo de encabezado de solicitud, o conjunto de campos,   más grande de lo que desea procesar DEBE responder con un 4xx apropiado   Código de estado (error de cliente). Ignorar dichos campos de encabezado serían   Aumentar la vulnerabilidad del servidor para solicitar ataques de contrabando.   (Sección 9.5).

     

Un cliente PUEDE descartar o truncar los campos de encabezado recibidos que son   más grande de lo que el cliente desea procesar si la semántica de campo es   de tal manera que los valores perdidos se pueden ignorar de forma segura sin cambiar   El encuadre del mensaje o la semántica de respuesta.

Y en la práctica, el límite de 8000 bytes generalmente también se encuentra en los encabezados.

Cuando se manejan encabezados largos, tener solo un encabezado ignorado es peligroso ( Content-Length:<10,000spaces>42 ). Eliminar un encabezado puede transformar completamente el significado del flujo HTTP (no solo el mensaje actual, sino también otros mensajes segmentados).

Pero la eliminación del encabezado no es el único riesgo, se trataba de un antiguo truncamiento a 5000 bytes por IIS en el pasado. También podría usarse para ocultar una carga útil HTTP activa (como un encabezado Transfer-Encoding: chunked<5000 spaces>, gzip o Content-Length: <4883 spaces>42 donde cualquier actor que elimine el final del encabezado puede interpretar mal la longitud real del mensaje (y tal vez encuentre un nuevo mensaje canalizado que otros actores HTTP no vi).

    
respondido por el regilero 11.02.2016 - 09:43
fuente
2

En su servidor no tanto, es posible que tenga algún software truncado o que no funcione correctamente, pero hay pocos vectores de ataque que utilizan el envío de encabezados HTTP malformados / negativos / creados. Usted debe estar preocupado por recibir esos.

    
respondido por el Setekh 14.01.2016 - 09:02
fuente

Lea otras preguntas en las etiquetas