¿Preocupaciones de seguridad con la retención de TCP en paquetes fuera de orden?

2

Considera lo siguiente ...

Alice y Bob se están comunicando a través de TCP. Actualmente, el próximo número de secuencia de TCP esperado es 1000. Charlie, que se hace pasar por Alicia, envía un paquete TCP falsificado a Bob con un número de secuencia de 1003. La computadora de Bob se aferra a este paquete pensando que llegó fuera de lugar. Mientras tanto, Alice continúa enviando paquetes a Bob, secuenciados como 1000, 1001 y 1002. Ahora, la computadora de Bob procesa el paquete TCP falsificado pensando que es el siguiente en secuencia.

En este escenario, asumiendo que mi entendimiento es correcto, parece que el atacante no necesita predecir exactamente el siguiente número de secuencia, sino que solo necesita adivinar el número de secuencia que es mayor o igual a la secuencia actual , pero también lo suficientemente cerca del número de secuencia para que no caduque ... seguramente no se quedará con el paquete fuera de orden para siempre.

Esto plantea las siguientes preguntas ...

1) ¿Mi comprensión del escenario que describí es correcta?

2) ¿Qué determina cuánto tiempo se debe conservar un paquete fuera de orden, mientras espera los paquetes enviados anteriormente?

3) ¿Qué pasaría con la sesión TCP cuando Alice finalmente envíe un paquete con la secuencia TCP 1003, dado que el paquete falsificado de Charlie ya se procesó?

    
pregunta ansichart 02.05.2014 - 02:44
fuente

3 respuestas

2

Esto está limitado por el Tamaño de la ventana TCP .

No es suficiente simplemente adivinar un número mayor que el número de secuencia; debe estar entre el número de secuencia y (número de secuencia + tamaño de la ventana).

No sé cuánto más fácil hace que Brute fuerce un número de secuencia en la práctica. Los "fragmentos superpuestos" han sido la causa de algunas vulnerabilidades históricas, pero creo que todas las pilas TCP modernas tienen buenas defensas.

    
respondido por el paj28 06.05.2014 - 09:42
fuente
0

¿Cómo ve el atacante (Charlie) el tráfico para saber el número de secuencia? Si tienen la capacidad de monitorear el tráfico entre A y B, no se puede esperar nada de tráfico no seguro desde entonces.

En todos los demás casos enlace

    
respondido por el pacifist 06.05.2014 - 03:51
fuente
0
  1. El segmento se mantiene solo si @ paj28 la condición es verdadera.

  2. Depende del temporizador de reensamblado de la pila, que podría calcularse según parámetros variables como RTT.

  3. Si no hubo un tiempo de espera de reensamblaje, depende de la política de reensamblado de la pila: el segmento podría reemplazarse por uno nuevo (por ejemplo, pila de Linux) o el primer segmento podría mantenerse (por ejemplo, pila de Windows).

El atacante no tiene que saber exactamente el número de secuencia, pero no significa que controle el flujo de datos, ya que el reensamblaje depende de la implementación. Tiene que saber a qué sistema está enviando segmentos.

documento de Ptacek y Newsham la sección 5.4 es una buena explicación .

    
respondido por el Jeff Bencteux 11.04.2016 - 14:18
fuente

Lea otras preguntas en las etiquetas