Redes Y Seguridad
Enviado por Stephythebest17 • 29 de Agosto de 2012 • 5.433 Palabras (22 Páginas) • 295 Visitas
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
...