ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Redes Y Seguridad

Stephythebest1729 de Agosto de 2012

5.433 Palabras (22 Páginas)327 Visitas

Página 1 de 22

Ataques externos

Resumen:

Este artículo fue publicado en una revista de Linux en Francia en una entrega especial sobre seguridad. El editor y los autores permitieron a LinuxFocus publicar todos los artículos de esta entrega especial. Consecuentemente, LinuxFocus los irá publicando tan pronto como sean traducidos al inglés. Gracias a toda la gente envuelta en esta labor. Este fragmento será reproducido en cada artículo que tenga el mismo origen.

Este artículo presenta los diferentes tipos de ataques externos que un cracker puede usar contra las máquinas en una red. Tomaremos el principal ataque de red, algunos ataques a través de aplicaciones y ataques de Denegación de Servicio (DoS).

_________________ _________________ _________________

Ataques de red

Los ataques de red recaen sobre vulnerabilidades directamente relacionadas con los protocolos y sus implementaciones. Hay muchos. Sin embargo, la mayor parte de ellos son variantes de cinco ataques de red bien conocidos.

Ataques de fragmentos

Este ataque recae sobre los mecanismos de protección de filtrado IP. Para implementarlo, los crackers usan dos métodos diferentes: Pequeños fragmentos y Superposición de fragmentos. Estos ataques son algo antiguos, en consecuencia, los firewalls (cortafuegos) actuales hace bastante tiempo que los resuelven.

Pequeños fragmentos

De acuerdo con el RFC (Request For Comment) 791 (IP), todos los nodos de Internet (routers) deben estar capacitados para transferir paquetes de 68 bytes sin fragmentarlos. El tamaño mínimo de la cabecera de un paquete IP es de 20 bytes sin opciones. Cuando las opciones están presentes, el tamaño máximo de la cabecera es de 60 bytes. El campo IHL(Internet Header Length) lleva la longitud de cabecera de palabras de 32 bits. Este campo usa 4 bits, así que el número de posibles valores es de 2^4 - 1 = 15 (no puede tomar el valor 0000). Así, el tamaño máximo de cabecera es realmente 15*4 = 60 bytes. Finalmente, el campo Fragment Offset indicando el offset del primer byte del fragmento relativo al datagrama completo está escrito en bloques de 8 bytes. Así que un fragmento de datos lleva al menos 8 bytes. Esto produce realmente 68 bytes.

El ataque consiste en pedir una conexión TCP fragmentada en dos paquetes IP. El primer paquete IP de 68 bytes sólo lleva los 8 primeros bytes de la cabecera TCP (puertos de origen y destino, y número de secuencia). Los datos del segundo paquete IP llevan la petición TCP (flag SYN a 1 y flag ACK a 0).

Sin embargo, los filtros IP aplican la misma regla a todos los fragmentos en un paquete. El filtro de un fragmento (Offset del fragmento = 0) define la regla, en consecuencia se aplica a los otros fragmentos (offset del fragmento = 1) sin ningún otro tipo de control. Así, cuando se defragmenta a nivel IP en la máquina objetivo, el paquete de petición de conexión es reconstruido y pasado a la capa TCP. La conexión se estabiliza a pesar del filtro IP activo que debería haberlo previsto.

Figuras 1 y 2 muestran ambos fragmentos y la figura 3 muestra el paquete defragmentado en la máquina objetivo:

Fig.1: Fragmento 1

Fig.2: Fragmento 2

Fig.3: paquete defrafmentado

Superposición de fragmentos

De acuerdo al RFC 791 (IP), si dos fragmentos IP se superponen, el segundo sobreescribe al primero. El ataque consiste en dividir al paquete IP en dos fragmentos. El filtro IP aceptará el primero, que lleva 68 bytes (ver Pequeños fragmentos) el cual no pide una conexión TCP (flag SYN = 0 y flag ACK = 0). De nuevo esta regla se aplica a los otros fragmentos del paquete. El segundo (con el offset de fragmento = 1) contiene los datos de la conexión real, es entonces aceptado por el filtro IP porque no ve que la conexión se abre aquí, así cuando defragmentamos, los datos del segundo fragmento sobreescriben a los datos del primero, empezando desde el octavo byte (desde el offset del fragmento = 1). El paquete reensamblado es entonces una conexión válida para la máquina destino. La conexión se estabiliza a pesar del filtro IP.

Las figuras 1 y 2 muestran ambos fragmentos y la figura 3 muestra el paquete defragmentado en la máquina objetivo:

Fig.4: Fragmento 1

Fig.5: Fragmento 2

Fig.6: Paquete defragmentado

IP Spoofing

La clave de este ataque es usurpar la dirección IP de una máquina. Esto permite al cracker ocultar el origen de su ataque (usado en ataques de Denegación de Servicio) o para beneficiarse de una relación de confianza entre dos máquinas. Aquí explicaremos el segundo uso del IP Spoofing.

El principio básico de este ataque consiste, para el cracker, en crear sus propios paquetes IP (con programas como hping2 o nemesis) en los cuales cambiaremos, entre otras cosas, la dirección IP de origen. IP Spoofing es llamado frecuentemente Blind Spoofing. Las respuestas a los falsos paquetes no pueden ir a la máquina del cracker, ya que el origen ha sido alterado, van hacia la máquina "burlada". Sin embargo hay dos métodos para hacer que las respuestas regresen:

1. Source Routing: el protocolo IP tiene una opción llamada Source Routing (ruteo de origen) que permite definir la ruta que los paquetes IP deben tomar. Esta ruta es una serie de rutas de dirección IP que los paquetes deben seguir. Suficiente para que el cracker provea una ruta para los paquetes hacia un router que el controle. Actualmente la mayor parte de las pilas TCP/IP rechazan los paquetes que usen esta opción.

2. Re-routing: tablas de enrutado usando el protocolo RIP, pueden ser cambiadas enviándoles paquetes RIP con nueva información de enrutado. Se hace esto para enrutar los paquetes hacia un router que controle el cracker.

Estas técnicas son muy usadas: el ataque es llevado a cabo sin saber qué paquetes son los que vienen del servidor objetivo.

Blind Spoofing se usa contra servicios como rlogin o rsh. Su mecanismo de autentificación solo recae en la dirección IP de origen de la máquina cliente. Este relativamente bien conocido ataque (Kevin Mitnick lo usó contra la máquina de Tsutomu Shimomura's en 1994) requiere varios pasos:

• Encontrar la dirección IP que está utilizando la "máquina de confianza", por ejemplo showmount -e que indica a dónde se exporta el sistema de archivos, o rpcinfo que da más información.

• Dejar al host de confianza fuera de servicio usando, por ejemplo, un SYN Flooding (se hablará mas sobre este ataque más adelante en Denegación de servicios). Esto es primordial para evitar que la máquina responda a los paquetes enviados por el servidor objetivo/víctima. De otro modo, enviaría paquetes TCP RST que pararían/cortarían la conexión.

• Predicción de los números de secuencia TCP: todo paquete TCP está asociado a un número de secuencia inicial. La pila TCP/IP del Sistema Operativo lo genera de forma lineal, dependiendo del tiempo, aleatorio o seudo-aleatorio, según el sistema. El cracker sólo puede atacar a sistemas generando números de secuencia predecibles (generados linealmente o dependientes del tiempo).

• El ataque consiste en abrir una conexión TCP en el puerto deseado (rsh, por ejemplo). Para un mejor entendimiento vamos a recordar como trabaja el mecanismo de apertura de conexion TCP. Se hace en tres pasos (TCP Three Way Handshake ):

1. El emisor manda un paquete que lleva el flag TCP SYN y un número de secuencia X a la máquina víctima.

2. La víctima responde con un paquete que lleva los flags TCP SYN y ACK (con un número de reconocimiento X+1) activos, su número de secuencia es Y.

3. El emisor envía un paquete que contiene el flag TCP ACK (con un número de reconocimiento Y+1) hacia la víctima.

Durante el ataque, el cracker no recibe el SYN-ACK enviado por la víctima. Para establecer la conexión, predecirá el número de secuencia y para poder enviar un paquete con el número ACK correcto (Y+1). La conexión es entonces estabilizada a través de la autentificación por dirección IP. El cracker puede ahora enviar un comando al servicio rsh, como un echo ++ >> /.rhosts para mayores permisos de acceso. Para hacer esto ha de crear un paquete con el flag TCP PSH (Push): los datos recibidos son inmediatamente enviados a la capa superior (aquí el servicio rsh). Puede conectar a la máquina a través de un servicio como rlogin o rsh sin IP Spoofing.

La figura 7 muestra los diferentes pasos de IP Spoofing:

Fig.7: IP Spoofing aplicado al servicio rsh

rpcinfo

El cracker usa la máquina A, mientras que C representa la máquina de confianza. A(C) significa que el paquete se envia desde A con la dirección IP de C burlada. Nota: existe un programa llamado mendax que implementa estos mecanismos de IP Spoofing.

Secuestro de sesiones TCP

El secuestro de sesiones TCP permite al cracker redirigir un flujo TCP. Entonces, un cracker puede sobrepasar la protección por contraseña (como en telnet o ftp). La necesidad de escuchar (sniffing) restringe este ataque a la red física del atacado. Antes de detallar este ataque, vamos a explicar algunos principios básicos del protocolo TCP.

No vamos a revelar el misterio del protocolo TCP, pero sí concretaremos los principales puntos requeridos para entender el ataque. La cabecera TCP contiene varios campos:

• El puerto origen y el puerto destino, identificando la conexión entre dos máquinas;

• El número de secuencia que identifica cada byte enviado;

...

Descargar como (para miembros actualizados) txt (34 Kb)
Leer 21 páginas más »
Disponible sólo en Clubensayos.com