T C P Ilegitimo

31

Transcript of T C P Ilegitimo

Page 1: T C P  Ilegitimo
Page 2: 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

Page 3: T C P  Ilegitimo

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

Page 4: T C P  Ilegitimo

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.

Page 5: T C P  Ilegitimo

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.

Page 6: T C P  Ilegitimo

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

Page 7: T C P  Ilegitimo

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

Page 8: T C P  Ilegitimo

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)

Page 9: T C P  Ilegitimo

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)

Page 10: T C P  Ilegitimo

14/04/23 1010

3.- FUNDAMENTOS DE TCP3.- FUNDAMENTOS DE TCP

3.4.- Funcionamiento de TCP3.4.- Funcionamiento de TCPTransferencia de DatosTransferencia de Datos

Page 11: T C P  Ilegitimo

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)

Page 12: T C P  Ilegitimo

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.

Page 13: T C P  Ilegitimo

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…)

Page 14: T C P  Ilegitimo

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

Page 15: T C P  Ilegitimo

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.

Page 16: T C P  Ilegitimo

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

Page 17: T C P  Ilegitimo

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

Page 18: T C P  Ilegitimo

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

Page 19: T C P  Ilegitimo

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).

Page 20: T C P  Ilegitimo

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.

Page 21: T C P  Ilegitimo

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?

Page 22: T C P  Ilegitimo

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….

Page 23: T C P  Ilegitimo

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

Page 24: T C P  Ilegitimo

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!

Page 25: T C P  Ilegitimo

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í

Page 26: T C P  Ilegitimo

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.

Page 27: T C P  Ilegitimo

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

Page 28: T C P  Ilegitimo

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.

Page 29: T C P  Ilegitimo

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”)

Page 30: T C P  Ilegitimo

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

Page 31: T C P  Ilegitimo

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