Académique Documents
Professionnel Documents
Culture Documents
ILEGTIMO
CONEXIONES TCP
DE
Indice
1.- Resumen
2.- Introduccin
3.- Fundamentos de TCP
3.1.- El protocolo TCP
3.2.-Funciones de TCP
3.3.- Formato de los Segmentos TCP
3.4.- Funcionamiento de TCP
3.5.- La Ventana Deslizante
4.- Reseteo de Conexiones TCP
4.1.- Cierre de conexin cordial (FIN)
4.2.- Cierre de conexin abrupta o por condicin de error grosera 1
Ejemplo de un ataque
5.- Contramedidas
6.- Referencias
La condicin de Error Grosera o grave se estable ce mediante uun mensaje ICMP que
indica el cdigo del error. (p.ej: el cdigo 3 => Port unreachable). Segn el RFC 1122 :TCP
SHOULD abort the connection (TCP debera abortar la conexin)
1.- Resumen
El presente trabajo muestra una introduccin a los problemas ocasionados por los
ataques de reseteo de conexin TCP, y se describen una variedad de dichos ataques,
que permiten a un atacante lograr que una conexin TCP sea abortada de forma
ilegtima.
2.- Introduccin
TCP es sin duda el protocolo de transporte ms utilizado en la red Internet. De l
dependen aplicaciones tales como el correo electrnico, la Web y hasta incluso
diversas aplicaciones en tiempo real para su sealizacin).
Cada una de estas aplicaciones depende, en distinto grado, de la estabilidad de la
conexin TCP correspondiente. Es decir, el error en la conexin TCP utilizada afectar a
la aplicacin que la est usando en mayor o menor medida, dependiendo de las
caractersticas de la aplicacin en particular.
Como ejemplo, en una conexin HTTP, utilizada por la web, si la conexin TCP fuese
abortada, se producira una interrupcin en la transferencia de informaci (p. ej:
descarga de ficheros o en la visualizacin de una pgina web). Sin embargo, este
efecto no sera grave, ya que bastara con reiniciar la transferencia del fichero
interrumpida o recargar la pgina para volver a establecer la conexin.
En otro caso, como en VoIP(Voz sobre IP), la interrupcin de la conexin TCP (utilizada
para sealizacin) provocara la prdida de la comunicacin de voz, siendo este efecto
ms grave que en el caso anterior.
No obstante, en el caso de los protocolos de ruteo, como BGP, que hacen uso de
coenxiones TCP para la transferencia de informacin de las rutas de encaminamiento,
el reseteo de la conexin TCP establecidad para dicho fin sera mucho ms grave que
en los casos anteriores, ya que el efecto producido sera la eliminacin de todas
aquellas entradas de la tabla de ruteo que haban sido adquiridas a travs de la
conexin que ha sido abortada. sta situacin provocar, en la mayora de los casos,
la prdidad de la conectividad con todos aquellos sistemas que dependan de las
entradas de la tabla que han sido eliminadas.
Como se ha podido ver en esta pequea introduccin, el impacto de los ataques de
resteo de conexioones TCP vara en funcin de la aplicacin que est haciendo uso de
la conexin TCP atacada. Es pues, evidente, que en aquellos casos en que el correcto
funcionamiento de la infraestructura de Internet depende, en gran medida, de una
apliccin que est haciendo uso de los servicios TCP, la proteccin contra ataques de
la ndole de los descritos, es de gran importancia.
En apartados posteriores veremos en que se basan estos ataques, algunos ejemplo de
ataques y las soluciones que se han propuesto para solucionar este tipo de
incidencias.
3.- Fundamentos de TCP
En el anterior apartado hemos descrito los inconvenientes del ataque de reseteo de
conexiones TCP, pero no hemos descrito el motivo por el que se pueden producir
dichos ataques. Es el presente apartado introduciremos los conceptos en los que se
basa el protocolo TCP para establecer la comunicacin entre dos hosts y
estableceremos los principios en los que se fundamentan este tipo de ataques
descritos.
20
by
tes
31
Ilustracin 2: Establecimiento
de conexin TCP
de conexiones. Algunos ejemplos son: FTP (21), SSH (22), Telnet (23),
SMTP (25) y HTTP (80)
Registrados y dinmicos/privados. Son, normalmente, empleados por
las aplicaciones de usuario de forma temporal cuando conectan con los
servidores, pero tambin pueden representar servicios que hayan sido
registrados por un tercero. Tambin pueden ser usados por las
aplicaciones de usuario, pero este caso es menos comn. Adems, no
tienen significado fuera de la conexin TCP en la que fueron usados.
Cmo se establece la conexin?
Habitualmente la conexin se estable entre dos hosts. Una de ellos abre un
socket en un determinado puerto y queda
la escucha de nuevas
conexiones. A esta accin se le suele llamar apertura pasiva y determina el
lado servidor de una conexin.
Por su parte el cliente, realiza una apertura activa de un puerto enviando un
segmento SYN (1r paso) que inidica al servidor que un determinado cleinte
desea establecer una conexin. El servidor reponder con una peticin SYN
vlida con un paquete SYN/ACK (2 paso). En el tlimo paso (3r paso), el
cliente deber responder al servidor con un segmento ACK, compleando as
la negociacin y estableciendo la conexin. A partir de ese momento, cliente
y servidor pueden empezar a intercambiar informacin.
Cabe destacar que, durante esta negociacin se ha establecido un nmero
de secuencia, generado por ambas partes, que evitar que se puedan
establecer conexiones falseadas.
Esto es cierto en parte, pues como veremos en el siguiente apartado, es
posible suplantar esta comunicacin y enviar informacin falseada. Es en
este punto en el que centraremos el contenido de este trabajo.
3.5.- La Ventana Deslizante
TCP utiliza un mecanismo bastante simple para el control de flujo de
informacin. Simplemente, cada segmento TCP contiene un campo
Ventana que indica cuantos bytes de informacin TCP est dispuesto a
recibir.
Este mecanismo, impide que un hosts est contnuamente mandando
segmentos al otro de manera que el primero no sea capaz de manejar toda
la informacin producindose as una situacin de congestin que
provocara la prdidad de segmentos e informacin.
La siguiente figura ilustra el funcionamiento de la ventana deslizante:
HOST
A
A Procesa
1000 bytes
ACK 1500, w
in=
2000
000)
SEQ 1500 (1
00)
SEQ 2500(10
ACK 3500, w
in= 0
ACK 3500, w
in=
1000
, win=
0
5
5
3
K
C
A
1000
HOST
B
B Deja de enviar
B vuelve a
enviar
Con el fin de evitar que la ventana TCP imponga un lmte artificial en la tasa de
transferencia, a menudo, se suele utilizar un tamao de ventana superior al
necesario.
Es en este punto dnde encontramos el punto dbil del sistema, ya que cuanto
mayor es el tamao de la ventana ms probabilidades hay que un atacante pueda
falsificar un segmento TCP con un nmero de secuencia tal que sea aceptado como
vlido2 por el sistema atacado.
Como se puede adivinar, si un atacante logra adivinar un nmero de secuencia
correcto, sera capaz de realizar cualquier tipo de operacin que puedan realizar los
sistemas que han establecido la comunicacin legtimamamente (incluyendo el envi
de segmentos RST que permitirn abortar la conexin TCP actual).
Como se puede ver, una caracterstica que, a priori, podra considerarse una gran
ventaja, se convierte en un problema con graves implicaciones para la seguridad.
4.- Reseteo de Conexiones TCP
Ya hemos analizado a los participante en el caso que nos ocupa, que como
recordamos, se trata del reseteo de conexiones TCP de manera ilegtima. Antes de
entrar en detalla, veremos la diferencia entre el cierre de una conexin TCP de manera
cordial (FIN) y el cierre de conexin TCP debido a una condicin de error
grosera(RST)
4.1.- Cierre de conexin cordial (FIN)
En la cabecera TCP mostrada en la Ilustracin 1 podemos ver que existen
una serie de flags que indican el tipo de segmento TCP que se est
enviando.
Cuando uno de los hosts decide cerrar la conexin, genralmente el cliente
cuando ha terminado de enviar los datos, enva un segmento con el bit FIN
activo, situacin que indica el servidor que la conexin desea abortarse. En
este momento se realiza la negociacin del cierre mediante 4 pasos (vase
Ilustracin 3). Finalizada la negociacin, la conexin queda abortada de
mtuo acuerdo.
4.2.- Cierre de conexin abrupta o por condicin de error grosera 3
2
Puertos efmeros
1024 - 4999
32768 - 65535
1024 - 49151
NetBSD
49152 - 65535
Ejemplo de ataque:
Escenario del ataque
1024
SEGMENTO RST
usaremos
la
herramienta
tcp-reset
disponible
en
Asumiremos que la conexin TCP a atacar no est transfiriendo datos (es decir, se
encuentra incativa). Tambin consideraremos que el atacante conoce los cutro valores
que definen una conexin TCP (IP origen, IP destino, Puesrto origen, Puerto destino), y
el tamao de la ventana utilizada por el sistema objetivo del ataque.
tcp-reset -c 192.168.0.1:1024 -s 172.16.0.1:80 -t client -r 60 -W 400
-c: Permite especificar los datos correspondientes al cliente, que en este
caso, suponemos que el cliente posee la direccin 192.168.0.1 y que usa el
puesrto 1024 para la conexin TCP.
-s: Permite especificar la informacin del servidor, que en este caso posee
la direccin 172.16.0.1 y el nmero de puerto 80.
-t (target): Permite indicar cul ser el destinatario de los segmentos RST.
-r: Permite especificar el kilobits por segundo, el ancho de banda que se
desea utilizar para el ataque.
-W: Especifica el tamao de la ventana usada por el cliente.
De este modo la herramienta tcp-reset barrer todo el espacio de los nmeros de
Estando fuera del camino que siguen los paquetes correspondientes a la conexin a ser
atacada.
HOST B
Dibujo 1: "challenge ACKs frente a RST ilegtimo"
En este punto s se
cerraria la conexin de
forma legtima
6.- Referencias
Dafal, M. 2006. Improving TCP's Resitance to Blind In-window Attacks. IETF InternetDraft
http://www.ietf.org/internet-drafts/draft-ietf-tcpm-tcpsecure-07.txt
Gont, F. 2007. ICMP attacks against TCP. IETF Internet Draft
http://www.ietf.org/internet-drafts/draft-ietf-tcpm-icmp-attacks-02.txt
Larsen, M., Gont, F. 2007. Port Randomization. IETF Internet-Draft
http://www.ietf.org/internet-drafts/draft-larsen-tsvwg-port-randomization-01.txt
Boletn de Seguridad UNAM-CERT 2004-006. Vulnerabilidades en TCP
http://www.lugro.org.ar/pipermail/lugro-mix/2004-April/000481.html
Gont's Website: http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html
Wikipedia: http://es.wikipedia.org/wiki/Transmission_Control_Protocol
Montaana, R. 2007.(Apuntes de Redes) Tema 5: El Nivel de Transporte en Internet
http://www.uv.es/montanan/redes/redes_05.pdf
Montaana, R. 2007.(Material Auxiliar) Cap 3: La capa de enlace
http://www.uv.es/montanan/redes/cap_03.rtf