T C P Ilegitimo
Transcript of T C P Ilegitimo
14/04/23 22
PREÁMBULOPREÁMBULO1.- Resumen1.- Resumen2.- Introducción2.- Introducción3.- Fundamentos de TCP3.- Fundamentos de TCP
3.1.- El protocolo TCP3.1.- El protocolo TCP3.2.-Funciones de TCP3.2.-Funciones de TCP3.3.- Formato de los Segmentos TCP3.3.- Formato de los Segmentos TCP3.4.- Funcionamiento de TCP3.4.- Funcionamiento de TCP3.5.- La Ventana Deslizante3.5.- La Ventana Deslizante
4.- Reseteo de Conexiones TCP4.- Reseteo de Conexiones TCP4.1.- Cierre de conexión cordial (FIN)4.1.- Cierre de conexión cordial (FIN)4.2.- Cierre por condición de error “grosera”4.2.- Cierre por condición de error “grosera”Ejemplo de un ataqueEjemplo de un ataque
5.- Contramedidas5.- Contramedidas6.- Referencias6.- Referencias
14/04/23 33
1.- RESUMEN1.- RESUMEN
Un ataque de “reseteo” de conexión Un ataque de “reseteo” de conexión consiste en abortar de forma “ilegítima” consiste en abortar de forma “ilegítima” una conexión TCP establecida.una conexión TCP establecida.
Debido a un fallo en la gestión de Debido a un fallo en la gestión de segmentos TCP del tipo RSTsegmentos TCP del tipo RST
Se necesitan ciertos datos para realizarloSe necesitan ciertos datos para realizarlo ““Grave” según la situaciónGrave” según la situaciónSoluciones propuestas por la IETFSoluciones propuestas por la IETF
14/04/23 44
2.- INTRODUCCIÓN2.- INTRODUCCIÓN
TCP: Protocolo de transporte más utilizado => TCP: Protocolo de transporte más utilizado => Web, Correo, SSH…Web, Correo, SSH…
Cada aplicación depende en mayor o menor Cada aplicación depende en mayor o menor medida de TCP => +/- gravedad del ataquemedida de TCP => +/- gravedad del ataque
HTTPHTTP => - grave (sólo recargar la página) => - grave (sólo recargar la página) VoIPVoIP => “señalización” + grave. Pérdida de => “señalización” + grave. Pérdida de
informacióninformación BGPBGP => ++grave. Se pierden las entradas de la tabla => ++grave. Se pierden las entradas de la tabla
de rutas que se habían adquirida en esa conexión. de rutas que se habían adquirida en esa conexión. Pérdida de conectividad.Pérdida de conectividad.
14/04/23 55
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.1.- El protocolo TCP3.1.- El protocolo TCP• Transmission Control Protocol (1973 – 1974) , Vint Cerf y Robert Kahn es uno de los protocolos fundamentales en Internet.
• Garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron
• Permite distinguir diferentes aplicaciones en una máquina =>Puertos• IETF RFC 793.
14/04/23 66
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.2.- Funciones del TCP3.2.- Funciones del TCP
• Capa intermedia entre IP y Aplicación
• Añade las funciones necesarias para prestar un servicio que permita que la comunicación entre dos sistemas se efectúe: libre de errores, sin pérdidas y con seguridad
14/04/23 77
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.3.- Formato de segmentos TCP3.3.- Formato de segmentos TCP
00 15 16 15 16 31 31
14/04/23 88
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.4.- Funcionamiento de TCP3.4.- Funcionamiento de TCP
Las conexiones TCP se componen de tres etapas:Las conexiones TCP se componen de tres etapas:
1.1. Establecimiento de Conexión => Negociación en Establecimiento de Conexión => Negociación en tres pasos (3-way handshake)tres pasos (3-way handshake)
2.2. Transferencia de DatosTransferencia de Datos
3.3. Fin de Conexión => Negociación en 4 pasos (4-Fin de Conexión => Negociación en 4 pasos (4-way handsake)way handsake)
14/04/23 99
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.4.- Funcionamiento de TCP3.4.- Funcionamiento de TCPEstablecimiento de Conexión => Negociación en Tres Establecimiento de Conexión => Negociación en Tres pasos (3-way handshake)pasos (3-way handshake)
14/04/23 1010
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.4.- Funcionamiento de TCP3.4.- Funcionamiento de TCPTransferencia de DatosTransferencia de Datos
14/04/23 1111
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.4.- Funcionamiento de TCP3.4.- Funcionamiento de TCPFin de Conexión => Negociación en 4 pasos (4-way Fin de Conexión => Negociación en 4 pasos (4-way
handsake)handsake)
14/04/23 1212
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.4.- Funcionamiento de TCP3.4.- Funcionamiento de TCP
• TCP usa el concepto de TCP usa el concepto de número de puertonúmero de puerto para para identificar a las aplicaciones emisoras y receptoras.identificar a las aplicaciones emisoras y receptoras.
• Cada lado de la conexión TCP tiene asociado un Cada lado de la conexión TCP tiene asociado un número de puerto (de 16 bits sin signo, con lo que número de puerto (de 16 bits sin signo, con lo que existen 65536 puertos posibles) asignado por la existen 65536 puertos posibles) asignado por la aplicación emisora o receptora. aplicación emisora o receptora.
14/04/23 1313
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.4.- Funcionamiento de TCP3.4.- Funcionamiento de TCP
• Clasificación de puertos:Clasificación de puertos:
• Bien Conocidos (Well-Know Ports): Bien Conocidos (Well-Know Ports):
• 0 -1023.0 -1023.
• Establecidos por la IANA Establecidos por la IANA (Internet Assigned (Internet Assigned Numbers Authority)Numbers Authority)
•Aplicaciones = > Servidores que quedan a la Aplicaciones = > Servidores que quedan a la escucha de peticiones (SSH, HTTP,FTP…)escucha de peticiones (SSH, HTTP,FTP…)
14/04/23 1414
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.4.- Funcionamiento de TCP3.4.- Funcionamiento de TCP
• Clasificación de puertos:Clasificación de puertos:
• Registrados y dinámicos/privados (efímeros): Registrados y dinámicos/privados (efímeros):
• 1024 -65535.1024 -65535.
• Empleados por aplicaciones de usuario. Empleados por aplicaciones de usuario. TemporalesTemporales
• No tienen significado fuera de TCPNo tienen significado fuera de TCP
14/04/23 1515
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.5.- La ventana Deslizante3.5.- La ventana Deslizante
• Sistema de control de flujo de información usado Sistema de control de flujo de información usado por TCPpor TCP
• Es una ventana de duración variable que permite a Es una ventana de duración variable que permite a un un emisoremisor transmitir un número de unidades de transmitir un número de unidades de datosdatos antes de que se reciba un antes de que se reciba un ACKACK o antes de que o antes de que ocurra un evento especificado.ocurra un evento especificado.
•Sistema simple: cada segmento TCP contiene un Sistema simple: cada segmento TCP contiene un campo “ventana” que indica que cantidad de bytes campo “ventana” que indica que cantidad de bytes está dispuesto a recibir el host.está dispuesto a recibir el host.
14/04/23 Trabajo Redes - ETSE UV - 2007
1616
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.5.- La ventana Deslizante3.5.- La ventana Deslizante
HOST A
HOST B
A Procesa 1000 bytes
B Deja de enviar
B vuelve a enviar
14/04/23 1717
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.5.- La ventana Deslizante3.5.- La ventana Deslizante
Contiene los números de secuencia correspondientes a los segmentos TCP que se están transmitiendo-recibiendo.
La utilidad de la ventana deslizante en el control de flujo de la información radica en que:
• TCP considera válidos solamente aquellos segmentos-datos que se encuentran dentro de la ventana de recepción, el resto son descartados.
http://www2.rad.com/networks/2004/sliding_window/demo.html
14/04/23 1818
3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP
3.5.- La ventana Deslizante3.5.- La ventana Deslizante
Influye de manera directa en el rendimiento de la Influye de manera directa en el rendimiento de la conexiónconexión
Máx Tasa Transmisión = Ventana / RTTMáx Tasa Transmisión = Ventana / RTT
RTT: Round-Trip Time (Tiempo de ida y vuelta
Con el fin de evitar que la ventana TCP imponga un límite Con el fin de evitar que la ventana TCP imponga un límite artificial en la tasa de transferencia, a menudo, se suele utilizar artificial en la tasa de transferencia, a menudo, se suele utilizar un tamaño de ventana superior al necesario => PROBLEMASun tamaño de ventana superior al necesario => PROBLEMAS
14/04/23 1919
4.- RESETEO DE CONEXIONES TCP4.- RESETEO DE CONEXIONES TCP
4.1.- Cierre de Conexión Cordial (FIN) 4.1.- Cierre de Conexión Cordial (FIN)
Aborta una conexión previamente establecida, Aborta una conexión previamente establecida, provocando Denegación de Servicio (DoS).provocando Denegación de Servicio (DoS).
14/04/23 2020
4.- RESETEO DE CONEXIONES TCP4.- RESETEO DE CONEXIONES TCP
4.2.- Cierre de Conexión Abrupta (RST) 4.2.- Cierre de Conexión Abrupta (RST)
Aborta una conexión previamente establecida, Aborta una conexión previamente establecida, provocando Denegación de Servicio (DoS).provocando Denegación de Servicio (DoS).
Condición de error en alguno de los hosts:
• Intento de conexión a un puerto dónde no hay aplicación escuchando
• Terminación anormal del proceso en comunicación => se abortan todas las comunicaciones del proceso.
14/04/23 2121
4.- RESETEO DE CONEXIONES TCP4.- RESETEO DE CONEXIONES TCP
Para realizar el ataque de reseteo de conexiones TCP,Para realizar el ataque de reseteo de conexiones TCP,un atacante necesitará un segmento RST falsificadoun atacante necesitará un segmento RST falsificado
Y para ello deberá “adivinar”:Y para ello deberá “adivinar”:1.1. IP OrigenIP Origen2.2. IP DestinoIP Destino3.3. Puerto OrigenPuerto Origen4.4. Puerto DestinoPuerto Destino
MUCHAS MUCHAS COSAS, ¿NO?COSAS, ¿NO?
14/04/23 2222
4.- RESETEO DE CONEXIONES TCP4.- RESETEO DE CONEXIONES TCP
No hay tanto que adivinar…
IP Servidor: Seguro que es conocidaIP Cliente: Puede ser conocida mediante sniffingPuerto Servidor: usualmente será conocido
Puerto Cliente: ??
PERO….
14/04/23 2323
4.- RESETEO DE CONEXIONES TCP4.- RESETEO DE CONEXIONES TCP
Puerto Cliente: ¿65536 puertos…? NO.
1.- Los puertos BIEN CONOCIDOS no los usará2.- La mayoría de los sistemas eligen sus “puertos efímeros” de un subespacio de todo el espacio de puertos disponible.
Sistema Operativo Puertos efímeros
Linux Kernel 2.6 y MS Windows 1024 - 4999
Solaris y AIX 32768 - 65535
FreeBSD y OpenBSD 1024 - 49151
NetBSD 49152 - 65535
14/04/23 2424
4.- RESETEO DE CONEXIONES TCP4.- RESETEO DE CONEXIONES TCP
Puerto Cliente: ¿65536 puertos…? NO.
3.- Muchas implementaciones eligen sus puertos de forma incremental. Es decir, si una conexión saliente usa el puerto 1025, la siguiente usará el 1025, etc.
¡NO ES TAN DIFÍCIL¡NO ES TAN DIFÍCILAVERIGUAR EL PUERTO CLIENTE!AVERIGUAR EL PUERTO CLIENTE!
¡NO ES TAN DIFÍCIL¡NO ES TAN DIFÍCILAVERIGUAR EL PUERTO CLIENTE!AVERIGUAR EL PUERTO CLIENTE!
14/04/23 2525
4.- RESETEO DE CONEXIONES TCP4.- RESETEO DE CONEXIONES TCP
Ahora el atacante ya tiene todos los datos, sólo le falta: Nº Secuencia válidoNº Secuencia válido
TCP-RESET lo hará por tíTCP-RESET lo hará por tí
14/04/23 2626
4.- RESETEO DE CONEXIONES TCP4.- RESETEO DE CONEXIONES TCP
Escenarios de Ataque:Escenarios de Ataque:1.- Ventana TCP inmóvil: El atacante deberá escanear todo el espacio de números de secuencia TCP, enviando segmentos cuyos números de secuencia estarían separados entre sí por un valor aproximado al tamaño de la ventana utilizada por el sistema en cuestión.
2.- Ventana TCP móvil: Velocidad promedio igual a la tasa de transferencia promedio de la conexión TCP. En esta situación tendremos dos posibles formas de realizar el ataque.
1ª Forma: enviar sucesivos segmentos RST con distintos números de secuencia, pero teniendo en cuenta tanto el tamaño de la ventana TCP como la tasa de transferencia de datos de la conexión
2ª Forma: segmentos RST a intervalos regulares, pero todos ellos con el mismo número de secuencia.
14/04/23 2727
4.- RESETEO DE CONEXIONES TCP4.- RESETEO DE CONEXIONES TCP
tcp-reset -c 192.168.0.1:1024 -s 172.16.0.1:80 -t client -r 60 -W 400
1024
Segmento RSTSegmento RST
14/04/23 2828
5.- CONTRAMEDIDAS5.- CONTRAMEDIDAS
El IETF ha propuesto una serie de medidas que podrían evitar este tipo de ataques:
1.- Elección aleatoria de los puertos efímeros:Si se eligen los puertos efímeros de forma aleatoria dentro del rango 1024-65536, sería virtualmente imposible para un atacante adivinar “ a ciegas1”, el puerto usado por el cliente, y como consecuencia, tanto el tiempo como la cantidad de paquetes requeridos para realizar el ataque en cuestión serían notablemente más elevados.
14/04/23 2929
5.- CONTRAMEDIDAS5.- CONTRAMEDIDAS
El IETF ha propuesto una serie de medidas que podrían evitar este tipo de ataques:
2.- Modificación al procesamiento de los segmentos RST:
Punto 1: En caso de recibir un segmento RST con un número de secuencia fuera de la venta TCP, el mismo sería descartado. (RFC 793)
Punto 2: Si el segmento RST recibido contiene como número de secuencia TCP, el próximo número de secuencia que se espera recibir, se abortará la conexión TCP correspondiente.(más restrictivo que el actual)
Punto 3: Si el segmento RST recibido contiene un número de secuencia TCP que se encuentra dentro de la ventana TCP, pero no cumple con la condición del punto 2, se responderá a dicho segmento con RST con un ACK. (“Desafío ACK”)
14/04/23 3030
5.- CONTRAMEDIDAS5.- CONTRAMEDIDASPunto 3: Punto 3: El desafío El desafío ACKACK(“challenge (“challenge ACK”)ACK”) .
.
.
HOST A
RSTRST ILEGÍTIMO
ILEGÍTIMO
Se envía ACK
(“Challenge ACK”)
Cierre OK
14/04/23 3131
6.- REFERENCIAS6.- REFERENCIASDafal, M. 2006. Improving TCP's Resitance to Blind In-window Attacks. IETF Internet-Drafthttp://www.ietf.org/internet-drafts/draft-ietf-tcpm-tcpsecure-07.txt
Gont, F. 2007. ICMP attacks against TCP. IETF Internet Drafthttp://www.ietf.org/internet-drafts/draft-ietf-tcpm-icmp-attacks-02.txt
Larsen, M., Gont, F. 2007. Port Randomization. IETF Internet-Drafthttp://www.ietf.org/internet-drafts/draft-larsen-tsvwg-port-randomization-01.txt
Boletín de Seguridad UNAM-CERT 2004-006. Vulnerabilidades en TCPhttp://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
Montañana, R. 2007.(Apuntes de Redes) Tema 5: El Nivel de Transporte en Internet http://www.uv.es/montanan/redes/redes_05.pdf
Montañana, R. 2007.(Material Auxiliar) Cap 3: La capa de enlace http://www.uv.es/montanan/redes/cap_03.rtf