Vulnerabilidades en el protocolo TCP

El CERT acaba de publicar un aviso sobre una vulnerabilidad en el
protocolo TCP que puede ser utilizada por realizar ataques de Denegación
de Servicio (DoS).

Potencialmente, el protocolo más afectado por esta vulnerabilidad es

BGP, Border Gateway Protocol, utilizado para el intercambio de

información de enrutamiento y de uso común en básicamente utilizado por

proveedores de acceso a Internet para mantener las tablas de

enrutamiento de las direcciones IP. Este protocolo utiliza conexiones

TCP persistentes, sin ningún tipo de autenticación entre los dos

extremos de la comunicación.

La vulnerabilidad descubierta

(documentada en “Vulnerabilities Issues in TCP” y verificable mediante

una prueba de concepto que será presentada en breve en una conferencia

de seguridad) puede permitir a un atacante remoto la finalización de las

sesiones establecidas (originando el ataque de denegación de servicio).

Por ahora únicamente se ha verificado con el protocolo BGP pero hay otros

protocolos, como DNS y los protocolos que utilizan cifrado SSL, que son

también potencialmente vulnerables puesto que también mantienen

conexiones permanentes.

Cuando se establece una sesión TCP, las

dos partes negocian el tamaño de la ventana TCP. Esta ventana reduce el

número de paquetes que un atacante necesita enviar para conseguir que un

paquete TCP falsificado sea aceptado por la víctima, ya que no preciso

enviar todas las posibles combinaciones válidas de número de secuencia.

Únicamente tendrá que calcular un número que corresponda al número de

secuencia esperado más/menos la mitad del tamaño de la ventana.

Según el estudio publicado, todo esto permite la rápida identificación

de los números de secuencia a utilizar en los paquetes falsificados: una

conexión con una ancho de banda de unos 80 Kbps (línea DSL típica) puede

insertar un paquete falsificado en cualquier conexión permanente en

aproximadamente cinco minutos. Con más ancho de banda (línea T-1, de 1,5

Mbps) se puede llegar a insertar el paquete en sólo 15 segundos.

Por lo general cualquiera protocolo que se base en la utilización de

conexiones TCP persistentes (larga duración), que utilicen un puerto TCP

de origen fácilmente identificable y con direcciones IP del origen y el

destino identificables pueden llegar a ser vulnerables.

Como

medida de protección se sugiere la utilización de IPSEC, la

autenticación MD5 en las cabeceras TCP o establecer algún sistema de

autenticación entre las dos partes de la comunicación TCP.

Muchos

fabricantes están afectados por esta vulnerabilidad. Al documento dónde

se describe la vulnerabilidad se mantiene un apartado dónde se informa

de las medidas y recomendaciones de cada fabricante concreto.