jueves, 17 de diciembre de 2009

IP Spoofing

Los criminales han empleado durante mucho tiempo tácticas para enmascarar su verdadera identidad, desde asignarse alias, hasta ocultar la identificación de sus llamadas. No deberia ser una sorpresa, que criminales que llevan a cabo actividades maliciosas en redes y ordenadores deban emplearlas técnicas para lo mismo. El IP Spoofing es la forma más común de camuflarse online. En IP Spoofing, el atacante gana acceso no autorizado a un ordenador o red haciendo parecer que ese mensaje malicioso ha venido de una máquina de confianza "spoofeando" la dirección de IP de esa máquina. En este artículo, examinaremos los conceptos acerca del IP Spoofing: porqué es posible, cómo funciona, que se usa y cómo defenderse contra ello.

History:
El concepto de IP Spoofing inicialmente fue debatido en círculos académicos en los años ochenta. Aunque se conocía desde hace tiempo, no fue hasta Robert Morris, cuyo hijo creó el primer gustano de internet, y encontró un agujero en la seguridad del protocolo TCP, conocido como predicción de secuencia. Stephen Bellovin debatió el problema en profundidad en la Suite de Problemas de Seguridad de los protocolos TCP/IP, un documento que aborda los problemas de diseño de la Suite de los protocolos TCP/IP. Otro famoso ataque, el crackeamiento en el Día de Navidad del ordenador de Tsutomu Shimoura, por parte de Kevin Mitnick, en el que empleó el IP Spoofing y las técnicas de predicción de secuencia de TCP. Aunque la popularidad de esos crackeamientos ha descendido debido a la desaparición de los servicios que explotaron, el Spoofing todavía puede ser usado y necesita ser abordado por todos los administradores de seguridad.

Discusión Técnica:
Para comprender totalmente como tienen lugar estos ataques, uno debe examinar la estructura de la suite del protocolo TCP/IP. Un básico entendimiento de los intercambios de estas cabeceras y redes es crucial para el proceso.

IP (Internet Protocol) - Protocolo de Internet:

El protocolo de Internet (IP) es un procotolo de funcionamiento de red en tres capas (red) del modelo de OSI. Es un modelo de protocolo no orientado a la conexión, esto significa que no hay información con respecto a un estado de transacción, el cual es usado para encaminar paquetes a una red. De forma adicional, aquí no hay un método para asegurar que el paquete ha llegado debidamente a su destino.

Examinando la cabezar de la IP, podemos ver que los primeros 12 bytes (o las tres primeras filas de la cabecera) contienen varia información acerca de este paquete. Los próximos 8 bytes (las siguientes 2 líneas) sin embargo, contienen la IP de origen y destino. Usando alguna herramienta, un atacante puede fácilmente modificar esta dirección, especialmente la dirección de origen. Es importante ver que cada datagrama es enviado independientemente de los otros debido a la naturaleza sin estados de IP.

Procotolo de Control de Transmisión (TCP):
IP puede ser considerado como un enrutamiento del contenedor para la capa 4 (transporte) la cual contiene el Protocolo de Control de Transmisión (TCP). A diferencia de IP, TCP usa conexión orientada al diseño. Esto significa que los participantes en una sesión TCP pueden crear primero una conexión - via 3 - de forma "Handshake" (SYN-SYN/ACK-ACK) - luego se actualiza otra en progreso - a través de secuencias y acuses de recibo. Esta conversación asegura la fiabilidad de los datos, desde que el emisor recibe un OK desde el receptor, después de cada intercambio de paquetes.

IMAGEN

Como podemos ver arriba, la cabecera TCP es muy diferente de la cabecera IP. Nos preocupamos de los primeros 12 bytes del paquete TCP, los cuales contienen el puerto y la información de la secuencia. Al igual que un diagrama de IP, los paquetes TCP pueden ser manipulados mediante software. Los puertos de origen y destino dependen normalmente de la aplicación en red en uso (por ejemplo HTTP a través del puerto 80). Lo que es importante para nuestra comprensión del spoofing son las secuencias y reconocimiento numérico. Los datos contenidos en esos campos aseguran la entrega de paquetes, determinando si un paquete necesita ser reenviado. La secuencia numérica es el número del primer byte del paquete actual, el cual es interesante para el flujo de datos. El número de reconocimiento a su vez, contiene el valor de la siguiente secuencia numérica de este flujo. Esta relación confirma, en ambos extremos, se recibieron los paquetes adecuados. Es muy diferente que IP, ya que el estado de transacción está muy vigilado.

Consecuencias del diseño TCP/IP:
Ahora que tenemos una visión general de los formatos TCP/IP, examinemos las consecuencias. Obviamente, es muy fácil enmascarar una dirección emisora manipulando la cabecera IP. Esta técnica es usada por razones obvias, y es bastante empleada en ataques que hablaremos a continuación. Otra consecuencia, específica del TCP, es la predicción de un número de secuencia, el cual puede dar lugar al secuestro o suplantación del host. En este método se basa el IP Spoofing, desde una sesión, aunque sea falsa, se construye. Examinaremos las ramificaciones de esto en ataques tratados posteriormente.

Spoofing attacks:
Hay unas pocas variaciones en los tipos de ataque que emplean el IP Spoofing satisfactoriamente. Aunque algunos están anticuados, otros están presentes en las preocupaciones de seguridad actuales.

Non-Blind Spoofing:
Este tipo de ataque tiene lugar cuando el atacante está en la misma subred que la víctima. Esta secuencia y reconocimiento numéricos pueden ser sniffado, eliminando la potencial dificultad de tener que calcularlos. La mayor amenaza de spoofing en esta instancia podría ser el secuestro de sesión. Esto es logrado corrompiendo el flujo de datos de una conexión establecida, y luego reestablecerla basándola en una correcta secuencia y reconocimiento numéricos de la máquina atacante. Usando esta técnica, un atacante podría eludir de cualquier manera y forma efectiva, las medidas de autenticación con el objetivo de construir la conexión.

Blind Spoofing:
Este ataque es más sofisticado debido a que la secuencia y reconocimiento de los números es inalcanzable. Con objetivo de sortear esto, los paquetes importantes son enviados a máquinas objetivo con la función de probar números de secuencia. Aunque no es el caso actualmente, antiguamente, las máquinas usaban técnicas básicas para la generación de números de secuencia. Fue relativamente fácil descubrir la fórmula exacta estudiando los paquetes y las sesiones TCP. A dia de hoy, los sistemas operativos implementan una generación aleatoria de números de secuencia, haciendo difícil predecirlos con exactitud. Si, sin embargo, el número de secuencia estuviese comprometido, los datos podrían ser enviados al objetivo. Hace bastantes años, algunas máquinas usaban unos serivicos de autentificación basados en el host (i.e. Rlogin). Un ataque bien diseñado podría añadir datos necesarios al sistema (i.e. una nueva cuenta de usuario), a ciegas, habilitando al atacante total acceso, el cual se hace pasar por un host de confianza.

Ataque Man In The Middle (hombre en el medio):
Ambos tipos de Spoofing, son formas comunes de violación de seguridad conocidas como ataque Man In The Middle (MITM). En esos ataques, un grupo malicioso intercepta una comunicación legítima entre dos grupos amistosos. El host malicioso controla el flujo de comunicación y puede eliminar o alterar la información enviada por uno de los participantes originales sin el conocimiento de ninguno de los emisores o receptores. De esta manera, el atacante puede engañar a una víctima revelando información confidencial spoofeando la identidad original del emisor, quien es alguien de confianza por parte del receptor.

Ataque Denial of Service:
IP Spoofing se usa casi siempre en lo que es actualmente uno de los ataques más difíciles de defenderse (ataques de denegación de servicio o DoS). Dado que los crackers están preocupados de la consumición de banda ancha y recursos, no necesitan preocuparse completamente de transacciones y handshakes. Por el contrario, desean flodear a la víctima con tantos paquetes como sea posible en un corto periodo de tiempo. Con objetivo de prolongar la eficacia de sus ataques, ellos spoofean la dirección de IP del emisor trazando y parando el DoS tan difícilmente como sea posible. Cuando muchos hosts participan en el ataque, es más dificil de bloquear el todo el tráfico spoofeado enviado de manera rápida.

Misconceptions of IP Spoofing:
Mientras que alguno de los ataques describidos anteriormente están un poco desfasados, como el secuestro de sesión para servicios de autentificación basados en hosts, el IP Spoofing es todavía relevante en escáneres de webs y algunas pruebas, así como múltiples ataques de denegación de servicio. Sin embargo, esta técnica no permite conexiones de acceso anónimas, las cuales son un error común para quienes no están familiarizados con la práctica. Cualquier tipo de spoofing más allá de un simple floodeo es relativamente avanzado y usado en instancias muy específicas, como la evasión y el secuestro de conexiones.

Defending Against Spoofing:
Hay unas cuantas precauciones que pueden ser tomadas para limitar los riesgos de IP Spoofing en tu red, como:

Filtering at the Router:
Un buen comienzo para empezar tu defensa contra el spoofing es implementando un filtro que controle los ingresos y salidas en tu router. Necesitarás implementar un ACL (Lista de Control de Acceso) que bloquee IP's privadas en la interfaz del flujo de datos de salida. Además, este interfaz no debería aceptar direcciones que salgan de un cierto rango de la dirección de la fuente, ya que esto es una técnica de spoofing muy usada para saltar los firewalls. En el interfaz de flujo de datos de entrada, debes restringir la dirección de acceso al exterior de un rango válido, el cual prevenga a alguien en tu red de enviar tráfico spoofeado a Internet.

Encryption and Authentication:
Implementar la encriptación y la autentificación reducirá los intentos de spoofing. Ambas de estas características están incluedas en IPv6 la cual reducirá las actuales amenazas de spoofing. Además, deberías eliminar las medidas de autenficicación basadas en host, las cuales son a veces comunes en máquinas de la misma subred. Asegura que las medidas apropiadas de autentificación son correctas y lleva a cabo un canal seguro (encriptado).

Conclusión:
IP Spoofing es un problema sin fácil solución, ya que hereda el diseño de la suite TCP/IP. Entender cómo y porqué son usados los ataques de spoofing, combinados con unos métodos de prevención simples, pueden ayudar a proteger tu red de maliciosas técnicas de cracking y tapaderas.

No hay comentarios:

Publicar un comentario