Hablemos de Spoofing
Concepto
Spoofing, en términos de seguridad de redes hace referencia al uso de técnicas de suplantación de identidad generalmente con usos maliciosos o de investigación, es decir, un atacante falsea el origen de los paquetes haciendo que la víctima piense que estos son de un host de confianza o autorizado para evitar la víctima lo detecte. Por ejemplo, cuando nos comunicarnos con un determinado host, la dirección de ese host ocupa un lugar determinado en la cadena de datos, al igual que nuestra propia dirección también ocupa otra posición determinada, pues si conseguimos “manipular” la información de ese lugar, podremos falsear el origen de datos y hacer creer al host destino que somos quien realmente no somos, esto es SPOOFING.
En el spoofing entran en juego tres máquinas o hosts: un atacante, un atacado, y un sistema suplantado que tiene cierta relación con el atacado; para que el atacante pueda conseguir su objetivo necesita por un lado establecer una comunicación falseada con su objetivo, y por otro evitar que el equipo suplantado interfiera en el ataque. Probablemente esto último no le sea muy difícil de conseguir: a pesar de que existen múltiples formas de dejar fuera de juego al sistema suplantado ‐ al menos a los ojos del atacado ‐ que no son triviales (modificar rutas de red, ubicar un filtrado de paquetes entre ambos sistemas…), lo más fácil en la mayoría de ocasiones es simplemente lanzar una negación de servicio contra el sistema en cuestión.
Por algo TCP es un protocolo fiable, orientado a conexión, con control y corrección de errores, etc. Pero no quiere decir que sea seguro, no lo es, de hecho es vulnerable al llamado TCP‐Spoofing, de forma que un host mal intencionado asume la personalidad de otro y establece una comunicación “falsa” con otro.
El asunto es complejo, imagine una LAN:
Para que se llegue a realizar con éxito un TCP‐Spoofing, deberíamos previamente:
- Falsear la MAC –> ARP Spoofing
- Falsear la IP –> IP‐Spoofing
- Falsear la conexión TCP –> TCP Spoofing
Este último punto es especialmente delicado, habrá que calcular los Nº de secuencia, los asentimientos, los checksum de todos los paquetes (incluidos los IP), etc. Todo ello, se tratará de un modo más profundo más adelante.
Definiciones básicas
Para entender completamente como este tipo de ataques puede ocurrir, hay que comprender la estructura de la suite de protocolo TCP/IP. Un entendimiento básico de estas cabeceras y protocolos de red es crucial para el proceso.
Host
Máquina conectada a una red de ordenadores y que tiene un nombre de equipo (en inglés, hostname). Es un nombre único que se le da a un dispositivo conectado a una red informática. Puede ser un ordenador, un servidor de archivos, un dispositivo de almacenamiento por red, una máquina de fax, impresora, etc. Este nombre ayuda al administrador de la red a identificar las máquinas sin tener que memorizar una dirección IP para cada una de ellas.
Protocolo De Internet – IP
El protocolo de Internet (IP) es un protocolo de red que funciona en la capa 3 (la red) del modelo OSI. Esto es un modelo de conexión, decir no hay ninguna información en cuanto al estado de transacción, que es usado a paquetes de ruta sobre una red. Además, no hay ningún método en el lugar para asegurar que un paquete correctamente es entregado al destino.
MAC
Todos los ordenadores de una misma red comparten el mismo medio, por lo que debe de existir un identificador único para cada equipo, o mejor dicho para cada tarjeta de red. Cuando se envían datos en una red local, hay que especificar claramente a quien van dirigidos. Esto se consigue mediante la dirección MAC, un número compuesto por 12 dígitos hexadecimales que identifica de forma única a cada dispositivo Ethernet. La dirección MAC se compone de 48 bits. Los 24 primeros bits identifican al fabricante del hardware, y los 24 bits restantes corresponden al número de serie asignado por el fabricante, lo que garantiza que dos tarjetas no puedan tener la misma dirección MAC. Direcciones MAC duplicadas causarían problemas en la red.
Tipos de Spoofing
Existen diferentes tipos de spoofing dependiendo de la tecnología a la que nos refiramos, los cuales se describirán más adelante, como el IP spoofing (quizás el más conocido), ARP spoofing, DNS spoofing, Web spoofing (phishing), e‐mail spoofing, aunque en general se puede englobar dentro de spoofing cualquier tecnología de red susceptible de sufrir suplantaciones de identidad.
Ip Spoofing
Suplantación o falseamiento de IP, hacer creer que somos quien no somos. No confundir spoofear una IP con anonimizar una IP. El spoofing trae consigo el anonimato, pero sería como un anonimato “a elegir”, esto es, apropiarse de la IP de otro usuario de la red.
Consiste en sustituir la dirección IP origen de un paquete TCP/IP por otra dirección IP a la cual se desea suplantar. Esto se consigue generalmente gracias a programas destinados a ello y puede ser usado para cualquier protocolo dentro de TCP/IP como ICMP, UDP o TCP. Hay que tener en cuenta que las respuestas del host que reciba los paquetes irán dirigidas a la IP falsificada. Por ejemplo si enviamos un ping (paquete ICMP “echo request”) spoofeado, la respuesta será recibida por el host al que pertenece la IP legalmente. Este tipo de spoofing unido al uso de peticiones broadcast a diferentes redes es usado en un tipo de ataque de flood conocido como smurf ataque. Para poder realizar IP SPOOFING en sesiones TCP, se debe tener en cuenta el comportamiento de dicho protocolo con el envío de paquetes SYN y ACK con su ISN específico y teniendo en cuenta que el propietario real de la IP podría (si no se le impide de alguna manera) cortar la conexión en cualquier momento al recibir paquetes sin haberlos solicitado. También hay que tener en cuenta que los routers actuales no admiten el envío de paquetes con IP origen no perteneciente a una de las redes que administra (los paquetes spoofeados no sobrepasarán el router).
El IP Spoofing es, cuanto menos, imposible hoy en día de cara a Internet, los proveedores se han preocupado mucho de que eso no ocurra. En épocas anteriores Internet se preocupaba de brindar conectividad sin importar la seguridad, es por ello que ese tipo de actividades tenían éxito, hoy… es muy, muy, muy difícil.
Veamos cómo se realizaría a bajo nivel este ataque: Imaginemos que estamos en una LAN con un sniffer a la escucha y obtenemos un paquete de datos:
El Encabezado IP tiene 20 bytes de longitud, supongamos que nuestro esnifer recogió esto y que ello pertenece a la parte de IP.
45 00 00 28 43 EF 40 00 80 06 5E 86 AC 1C 00 09 AC 1C 00 19
AC 1C 00 09 ‐‐‐‐‐> Bytes 13 al 16, Dirección IP origen en hexadecimal:
AC 1C 00 09 ‐‐‐‐‐> Bytes 13 al 16, Dirección IP origen en hexadecimal:
AC = 172, 1C = 28, 00 = 00, 09 = 09, en este caso la IP sería: 172.28.0.9
5E 86 5E 86 ‐‐‐‐‐‐> Bytes 11 y 12, Checksum: Es un método para comprobar la integridad de los datos, IP asume que la corrección la harán protocolos de nivel superior, aun así, verifica la integridad de los mismos, pero no la corrige.
5E 86 5E 86 ‐‐‐‐‐‐> Bytes 11 y 12, Checksum: Es un método para comprobar la integridad de los datos, IP asume que la corrección la harán protocolos de nivel superior, aun así, verifica la integridad de los mismos, pero no la corrige.
Algunos tipos de ataques:
- Non‐Blind Spoofing: Este tipo de ataque ocurre cuando el atacante está sobre la misma subred que la víctima. La secuencia y números de reconocimiento pueden ser sniffado, eliminando la dificultad de calcularlos con exactitud. La amenaza más grande de spoofing en este caso sería el secuestro de sesión. Esto es logrado por corrompiendo el paso de datos de una conexión establecida haciéndolo pasar por la máquina del atacante.
- Blind Spoofing: Esto es un ataque más sofisticado, porque la secuencia y números de reconocimiento son inalcanzables. Para intentar esto se envían varios paquetes a la máquina objetivo probando varios números de secuencia. En el pasado, las máquinas usaban técnicas básicas para generar estos números de secuencia. Era relativamente fácil averiguarlos de forma exacta estudiando paquetes y sesiones TCP. Esto ya no es posible hoy en día, la mayor parte de los sistemas operativos generan números de secuencia de manera arbitraria, haciendo difícil su predicción con exactitud. Sin embargo, si el número de secuencia fuera comprometido, los datos podrían ser enviados al objetivo.
- Man In the Middle Attack: En este ataque una máquina atacante intercepta una comunicación entre dos host. La máquina atacante controla ahora el flujo de la comunicación y puede eliminar o cambiar la información enviada por uno de los participantes originales sin el conocimiento del remitente original o del destinatario. De este modo, el atacante puede engañar a la victima haciendo que le revele información confidencial debido a que confía en él, usando para ello “IP spoofing”.
- Ataque de Negación de Servicio (DOS): IP spoofing casi siempre es usado en lo que es actualmente uno de los ataques más difíciles de los que defenderse, este es, la negación de servicio, o DOS. El atacante inunda a la víctima con tantos paquetes como sea posible en una cantidad de corta de tiempo. Para prolongar la eficacia del ataque, se suplanta la IP de origen (mediante IP spoofing) para hacer que el trazado y posterior detención del DoS sea tan difícil como sea posible. Cuando múltiples host comprometidos (en muchas ocasiones sin que estos lo sepan) participan en el ataque, todos envían trafico spoofeado lo que provoca que el ataque sea efectivo rápidamente.
Algunos casos:
¿Qué pasaría si lográsemos enviar un paquete a un host destino de otra red/subred falsificando la dirección IP origen del paquete?
Suponiendo que el router deje salir el paquete (es posible configurar ACL’s en los routers para que esto no ocurra) cuando el destino reciba el paquete de datos, responderá a la dirección IP falsificada, entonces el host falsificado recibirá el paquete y lo descartará puesto que él no lo envió. Regla nº 1 del spoof,si no podemos “ponernos en medio” de una comunicación hay que tumbar el equipo por el que nos hacemos pasar puesto que si no responderá a los paquetes del objetvo desechándolos y se cerrará la conexión.
¿Qué pasaría si lográsemos enviar un paquete a un host destino de la misma red/subred falsificando la dirección IP origen del paquete?
- Caso a) La IP del equipo falsificado existe y está activa en la LAN: Que aparecerá el mensajito famoso de que hay un nombre de host o dirección IP duplicada en la Red, hay sistemas operativos que ni tan siquiera controlan eso, pero también puede ocurrir que dejemos “frito” por instantes o para siempre a la pila de TCP/IP del equipo, recuerda que las direcciones IP dentro de una red/subred deben ser únicas.
- Caso b) La IP del equipo falsificado no existe o no está operativo: Pues que el destino actualizará su tabla ARP con nuestra MAC y la IP falsa, intentará responder a la IP remitente y no recibirá respuesta, pasado un tiempo cerrará la conexión.
¿Qué pasaría si lográsemos enviar miles de paquetes a un host destino de la misma red/subred falsificando la dirección IP origen del paquete utilizando una IP que no existe en la LAN?
Dependerá de muchos factores, Sistema Operativo, Switches, IDS, tipo de paquete enviado, etc. Pero en el mejor de los casos provocaremos un DoS al equipo destino, cada una de las miles de conexiones se quedan abiertas y esperando la respuesta, no la habrá claro… y la IP logeada… será otra que no la nuestra.
¿Cómo evitarlo?
Hay algunas precauciones que pueden ser usadas para limitar los riesgos de sufrir IP spoofing en su red, como:
- Filtrando en el router: Implementando filtros de entrada y salida en su router es una buena idea para comenzar su defensa ante el spoofing. Usted deberá implementar un ACL (lista de control de acceso) que bloquea direcciones de IP privadas por debajo de su interfaz. Además, este interfaz no debería aceptar direcciones de tu rango interno como dirección de origen (técnica común de spoofing que se usaba para engañar a los cortafuegos). Por encima de la interfaz, usted debería restringir direcciones de origen fuera de su rango válido, esto evitará que alguien en su red envíe tráfico spoofeado a Internet. Es importante que no se permita la salida de ningún paquete que tenga como dirección IP de origen una que no pertenezca a su subred.
- El cifrado y la Autenticación: la Realización del cifrado y la autenticación también reducirán amenazas de spoofing. Estas dos características están incluidos en Ipv6, que eliminará las actuales amenazas de spoofing.
Conclusión
IP Spoofing es un problema sin una solución fácil, ya que es causa de un mal diseño del protocolo TCP/IP. El entendimiento de cómo y por qué los ataques de spoofing son usados, combinado con unos métodos de prevención simples, puede ayudar a proteger su red de estos ataques.
ARP Spoofing
En una red que sólo tuviera el nivel Físico del modelo OSI, los dispositivos sólo se conocerían entre sí por medio de su dirección física y dicha dirección tiene que ser única para evitar errores de envío. Pero como los protocolos de alto nivel direccionan las máquinas con direcciones simbólicas (como en IP) tiene que existir un medio para relacionar las direcciones físicas con las simbólicas, un traductor o manejador de direcciones. Así tenemos la aparición de ARP, un protocolo de nivel de red responsable de encontrar la dirección hardware (Ethernet MAC) que corresponde a una determinada dirección IP. Para ello se envía un paquete (ARP request) a la dirección de multidifusión de la red (broadcast (MAC = ff ff ff ff ff ff)) que contiene la dirección IP por la que se pregunta, y se espera a que esa máquina (u otra) responda (ARP reply) con la dirección Ethernet que le corresponde. Cada máquina mantiene una caché con las direcciones traducidas para reducir el retardo y la carga. ARP permite a la dirección de Internet ser independiente de la dirección Ethernet, pero esto sólo funciona si todas las máquinas lo soportan.
El protocolo ARP se encuentra en el nivel de enlace del modelo OSI, y dicho nivel se encarga de identificar la conexión física de una máquina para lo cual se usan las direcciones físicas de cada dispositivo que son únicas, aunque pueden ser alteradas permitiendo suplantaciones en las comunicaciones.
El ARP Spoofing es la suplantación de identidad por falsificación de tabla ARP. Se trata de la construcción de tramas de solicitud y respuesta ARP modificadas con el objetivo de falsear la tabla ARP (relación IP‐MAC) de una víctima y forzarla a que envíe los paquetes a un host atacante en lugar de hacerlo a su destino legítimo. Normalmente la finalidad es asociar la dirección MAC del atacante con la dirección IP de otro nodo (el nodo atacado), como por ejemplo la puerta de enlace predeterminada (Gateway). Cualquier tráfico dirigido a la dirección IP de ese nodo, será erróneamente enviado al atacante, en lugar de a su destino real. El atacante, puede entonces elegir, entre reenviar el tráfico a la puerta de enlace predeterminada real (ataque pasivo o escucha), o modificar los datos antes de reenviarlos (ataque activo). El atacante puede incluso lanzar un ataque de tipo DoS (Denegación de Servicio) contra una víctima, asociando una dirección MAC inexistente con la dirección IP de la puerta de enlace predeterminada de la víctima. Explicándolo de una manera más sencilla: El protocolo Ethernet trabaja mediante direcciones MAC, no mediante direcciones IP. ARP es el protocolo encargado de traducir direcciones IP a direcciones MAC para que la comunicación pueda establecerse; para ello cuando un host quiere comunicarse con una IP emite una trama ARP‐Request a la dirección de Broadcast pidiendo la MAC del host poseedor la IP con la que desea comunicarse. El ordenador con la IP solicitada responde con un ARP‐Reply indicando su MAC. Los Switches y los hosts guardan una tabla local con la relación IP‐MAC llamada “tabla ARP”. Dicha tabla ARP puede ser falseada por un ordenador atacante que emita tramas ARP‐REPLY indicando su MAC como destino válido para una IP específica, como por ejemplo la de un router, de esta manera la información dirigida al router pasaría por el ordenador atacante quien podrá esnifar dicha información y redirigirla si así lo desea. El protocolo ARP trabaja a nivel de enlace de datos de OSI, por lo que esta técnica sólo puede ser utilizada en redes LAN o en cualquier caso en la parte de la red que queda antes del primer Router.
La idea es sencilla, y los efectos del ataque pueden ser muy negativos: desde negaciones de servicio (DoS) hasta interceptación de datos (snifer), incluyendo algunos Man in the Middle contra ciertos protocolos cifrados.
El protocolo ARP se encuentra en el nivel de enlace del modelo OSI, y dicho nivel se encarga de identificar la conexión física de una máquina para lo cual se usan las direcciones físicas de cada dispositivo que son únicas, aunque pueden ser alteradas permitiendo suplantaciones en las comunicaciones.
El ARP Spoofing es la suplantación de identidad por falsificación de tabla ARP. Se trata de la construcción de tramas de solicitud y respuesta ARP modificadas con el objetivo de falsear la tabla ARP (relación IP‐MAC) de una víctima y forzarla a que envíe los paquetes a un host atacante en lugar de hacerlo a su destino legítimo. Normalmente la finalidad es asociar la dirección MAC del atacante con la dirección IP de otro nodo (el nodo atacado), como por ejemplo la puerta de enlace predeterminada (Gateway). Cualquier tráfico dirigido a la dirección IP de ese nodo, será erróneamente enviado al atacante, en lugar de a su destino real. El atacante, puede entonces elegir, entre reenviar el tráfico a la puerta de enlace predeterminada real (ataque pasivo o escucha), o modificar los datos antes de reenviarlos (ataque activo). El atacante puede incluso lanzar un ataque de tipo DoS (Denegación de Servicio) contra una víctima, asociando una dirección MAC inexistente con la dirección IP de la puerta de enlace predeterminada de la víctima. Explicándolo de una manera más sencilla: El protocolo Ethernet trabaja mediante direcciones MAC, no mediante direcciones IP. ARP es el protocolo encargado de traducir direcciones IP a direcciones MAC para que la comunicación pueda establecerse; para ello cuando un host quiere comunicarse con una IP emite una trama ARP‐Request a la dirección de Broadcast pidiendo la MAC del host poseedor la IP con la que desea comunicarse. El ordenador con la IP solicitada responde con un ARP‐Reply indicando su MAC. Los Switches y los hosts guardan una tabla local con la relación IP‐MAC llamada “tabla ARP”. Dicha tabla ARP puede ser falseada por un ordenador atacante que emita tramas ARP‐REPLY indicando su MAC como destino válido para una IP específica, como por ejemplo la de un router, de esta manera la información dirigida al router pasaría por el ordenador atacante quien podrá esnifar dicha información y redirigirla si así lo desea. El protocolo ARP trabaja a nivel de enlace de datos de OSI, por lo que esta técnica sólo puede ser utilizada en redes LAN o en cualquier caso en la parte de la red que queda antes del primer Router.
La idea es sencilla, y los efectos del ataque pueden ser muy negativos: desde negaciones de servicio (DoS) hasta interceptación de datos (snifer), incluyendo algunos Man in the Middle contra ciertos protocolos cifrados.
¿Cómo evitarlo?
Si se quiere proteger una red pequeña se puede recurrir al uso de direcciones IP estáticas y tablas ARP también estáticas, de modo que no haya una caché dinámica. Usando estas entradas estáticas se evita que los intrusos alteren las tablas a su gusto.
El problema con esta solución es la gran dificultad para mantener estas entradas ARP, y si se piensa en redes grandes es casi imposible llevar a cabo esta labor, ya que cada vez que una máquina se conecte a la red o cambie de IP se debe actualizar las entradas de las tablas ARP.
Para redes grandes se tendría que analizar las características de “Port Security” de los switches, una de estas características permite forzar al switch a permitir sólo una dirección MAC para cada puerto físico en el switch, lo cual impide que alguien cambie la dirección MAC de su máquina o que trate de usar más de una dirección a la vez. Esto último permite prevenir los ataques de Man-in-the-Middle.
El problema con esta solución es la gran dificultad para mantener estas entradas ARP, y si se piensa en redes grandes es casi imposible llevar a cabo esta labor, ya que cada vez que una máquina se conecte a la red o cambie de IP se debe actualizar las entradas de las tablas ARP.
Para redes grandes se tendría que analizar las características de “Port Security” de los switches, una de estas características permite forzar al switch a permitir sólo una dirección MAC para cada puerto físico en el switch, lo cual impide que alguien cambie la dirección MAC de su máquina o que trate de usar más de una dirección a la vez. Esto último permite prevenir los ataques de Man-in-the-Middle.
Por lo tanto, en redes grandes es preferible usar otro método: el DHCP snooping. Mediante DHCP, el dispositivo de red mantiene un registro de las direcciones MAC que están conectadas a cada puerto, de modo que rápidamente detecta si se recibe una suplantación ARP. Este método es implementado en el equipamiento de red de fabricantes como Cisco, Extreme Networks y Allied Telesis.
Otra forma de defenderse contra el ARP Spoofing, es detectarlo. Arpwatch es un programa Unix que escucha respuestas ARP en la red, y envía una notificación vía email al administrador de la red, cuando una entrada ARP cambia.
Comprobar la existencia de direcciones MAC clonadas (correspondientes a distintas direcciones IP) puede ser también un indicio de la presencia de ARP Spoofing, aunque hay que tener en cuenta, que hay usos legítimos de la clonación de direcciones MAC.
RARP (“Reverse ARP”, o ARP inverso) es el protocolo usado para consultar, a partir de una dirección MAC, su dirección IP correspondiente. Si ante una consulta, RARP devuelve más de una dirección IP, significa que esa dirección MAC ha sido clonada.
Otra forma de defenderse contra el ARP Spoofing, es detectarlo. Arpwatch es un programa Unix que escucha respuestas ARP en la red, y envía una notificación vía email al administrador de la red, cuando una entrada ARP cambia.
Comprobar la existencia de direcciones MAC clonadas (correspondientes a distintas direcciones IP) puede ser también un indicio de la presencia de ARP Spoofing, aunque hay que tener en cuenta, que hay usos legítimos de la clonación de direcciones MAC.
RARP (“Reverse ARP”, o ARP inverso) es el protocolo usado para consultar, a partir de una dirección MAC, su dirección IP correspondiente. Si ante una consulta, RARP devuelve más de una dirección IP, significa que esa dirección MAC ha sido clonada.
DNS Spoofing
El Domain Name System (DNS) es una base de datos distribuida y jerárquica que almacena información asociada a nombres de dominio en redes como Internet. Su principal función es la asignación de nombres de dominio a direcciones IP y la localización de los servidores de correo electrónico de cada dominio. Por ejemplo, al acceder a www.google.com, si nuestro navegador no conoce su dirección IP realizará una consulta al servidor DNS para que esté le diga cuál es la IP que le corresponde y así accederá a la página mediante su IP y mostrará su contenido.
Pharming es la explotación de una vulnerabilidad en el software de los servidores DNS (Domain Name System) o en el de los equipos de los propios usuarios, que permite a un atacante redirigir un nombre de dominio (domain name) a otra máquina distinta. De esta forma, un usuario que introduzca un determinado nombre de dominio que haya sido redirigido, accederá en su explorador de internet a la página web que el atacante haya especificado para ese nombre de dominio.
Pharming es la explotación de una vulnerabilidad en el software de los servidores DNS (Domain Name System) o en el de los equipos de los propios usuarios, que permite a un atacante redirigir un nombre de dominio (domain name) a otra máquina distinta. De esta forma, un usuario que introduzca un determinado nombre de dominio que haya sido redirigido, accederá en su explorador de internet a la página web que el atacante haya especificado para ese nombre de dominio.
El DNS Spoofing hace referencia al falseamiento de una dirección IP ante una consulta de resolución de nombre, es decir, resolver con una dirección IP falsa un cierto nombre DNS o viceversa. Esto se puede conseguir de diferentes formas, desde modificando las entradas del servidor encargado de resolver una cierta petición para falsear las relaciones dirección-nombre, hasta comprometiendo un servidor que infecte la caché de otro (lo que se conoce como DNS Poisoning); incluso sin acceso a un servidor DNS real, un atacante puede enviar datos falseados como respuesta a una petición de su víctima sin más que averiguar los números de secuencia correctos.
Algunos escenarios de este ataque:
- DNS Cache Poisoning: Como imaginará, Un servidor DNS no puede almacenar la información de todas las correspondencias nombre/IP de la red en su memoria. Por ello, los servidores DNS tiene una caché que les permite guardar un registro DNS durante un tiempo. De hecho, un Servidor DNS tiene los registros sólo para las máquinas del dominio que tiene autoridad y necesita sobre máquinas fuera de su dominio debe enviar una petición al Servidor DNS que maneje esas máquinas. Para no necesitar estar preguntando constantemente puede almacenar en su caché las respuestas devueltas por otros servidores DNS.
Veamos cómo alguien podría envenenar la caché de nuestro Servidor DNS.
Un atacante corre su propio dominio (attacker.net) con su propio Servidor DNS preparado (ns.attacker.net). Es decir, el atacante personaliza los registros en su propio servidor DNS, por ejemplo un registro podría ser www.cnn.com=81.81.81.8
1) El atacante envía una petición a tu Servidor DNS que lo pide resolver www.attacker.net
2) Tu Servidor DNS no sabe la dirección IP de esta máquina por lo que necesita preguntar al servidor DNS correspondiente.
3) El Servidor DNS personalizado del atacante contesta a tu servidor DNS, y al mismo tiempo, da todos sus registros (incluyendo su registro www.cnn.com).
4) El servidor DNS no está “envenenado”. El atacante consiguió su IP, pero su objetivo era forzar una transferencia de sus registros y conseguir que tu servidor DNS esté envenenado mientras la caché no sea limpiada o actualizada.
5) Ahora si preguntas a tu servidor DNS, sobre www.cnn.com, de dará la dirección IP 172.50.50.50, donde el atacante corre su propio servidor web. El atacante puede mostrar otra web, o redirigir todos los paquetes a la verdadera web y viceversa, analizando el tráfico sin que el atacado sospeche nada.
El objetivo del uso del Cache Poisoning es la Negación de Servicio (DoS) o el enmascaramiento como una entidad de confianza.
- DNS ID Spoofing: Cuando una máquina X quiere comunicarse con una máquina Y, X siempre necesita el la IP de Y. En la mayor parte de casos, X sólo tiene el nombre de Y, por lo que el protocolo DNS es usado para resolver el nombre de Y en su dirección IP.
Por lo tanto, se envía una petición de DNS al Servidor DNS declarado en X, pidiendo la dirección IP de la máquina Y. A esta petición DNS, la máquina X asigna un número de identificación pseudoaleatorio que debe estar presente en la respuesta del servidor DNS.
Cuando X reciba la respuesta, comprobará si ambos números son los mismos, y en caso afirmativo toma la respuesta como válida, en otro caso, ignorará la respuesta.
Pero esta técnica no es del todo segura. Un atacante puede hacer correr un ataque que consiga este número de ID. Por ejemplo, si sobre una LAN, el atacante corre un snifer podría interceptar la solicitud DNS, averiguar el número ID y enviarle una respuesta falsa con el ID correcto pero con la dirección IP que le interese. Así pues, X accederá a Y pensando que se dirige a la máquina correcta.
Sin embargo, hay algunas limitaciones para lograr este ataque.
En este caso, el atacante controla a un snifer, intercepta el número de ID y contesta a su víctima con el mismo número de ID y con una respuesta a su antojo.
El problema es que aunque el atacante intercepta su petición, esta será transmitida al Servidor DNS de todos modos, por lo que este también contestará a la petición (a no ser que el atacante bloquee la petición en la entrada o realizara un envenenamiento de caché).
Esto quiere decir que el atacante tiene que contestar ANTES que el verdadero servidor DNS, por lo que el atacante DEBE estar sobre la misma LAN para tener una respuesta muy rápida a su máquina, y también ser capaz de capturar sus paquetes.
¿Cómo evitarlo?
Para poder evitar este tipo de engaño hay que ser muy observador, tanto en aspecto del sitio como en el comportamiento, ya que pequeñas cosas como las fuentes pueden descubrir el engaño.
E-Mail Spoofing
E-Mail Spoofing es un término que describe la actividad de correo electrónico fraudulenta en la cual la dirección de remitente y otras partes de la cabecera del correo son cambiadas para aparecer como si el e-mail proviene de una fuente diferente. E-Mail Spoofing es una técnica comúnmente usada para el SPAM y phishing. Cambiando ciertas propiedades del e-mail, como los campos From, Return-Path and Reply-To (que se encuentran en la cabecera del mensaje), un usuario mal intencionados puede hacer que el e-mail parezca ser de remitido por alguien que en realidad no es.
Esta técnica, a menudo es asociada con el web spoofing para imitar un sitio web real conocido, que en realidad es controlado por alguien con intenciones fraudulentas o como o como medio de protesta contra las actividades de cierta organización.
Muchos spammers usan ahora software especial para crear direcciones de remitente arbitrarias, de modo que si incluso el usuario encuentra el origen del e-mail, es poco probable que la dirección sea verdadera.
Esta técnica es usada con gran frecuencia por gusanos que se propagan de manera masiva con el fin de ocultar el origen de la propagación. Sobre la infección, los gusanos como ILOVEYOU, Klez o Sober, a menudo buscan direcciones de correo electrónico dentro del libro de direcciones de un cliente de correo, para usar estas direcciones como remitente de los correos que ellos envían, de modo que parezcan haber sido enviados por el tercero.
E-Mail Spoofing es posible porque el Protocolo SMTP, el protocolo principal usado en el enviar al correo electrónico, no incluye un mecanismo de autenticación. Aunque existe extensión de servicio de SMTP (especificado en IETF RFC 2554) que permite a un cliente SMTP para negociar un nivel de seguridad con un servidor de correo, esta precaución a menudo no se toma.
Aunque la mayor parte de los correos spoofeados no tengan mayor importancia y requieran poca atención, algunos pueden causar problemas serios y causar grandes riesgos de seguridad. Por ejemplo, se pueden pedir datos sensibles, como contraseñas, números de la tarjeta de crédito, u otra información personal, y si el atacado cae en la trampa facilitará estos datos al atacante.
¿Cómo evitarlo?
- Use firmas digitales (p.ej., PGP u otras tecnologías de cifrado) para cambiar mensajes electrónicos autenticados. El correo electrónico autenticado proporciona un mecanismo para asegurar que los mensajes son de quien parecen ser, así como la seguridad de que el mensaje no ha sido cambiado en el tránsito.
- Considere un punto solo de entrada para el correo electrónico a su sitio. Usted puede poner en práctica esto por configurando su cortafuegos de modo que conexiones SMTP de fuera su cortafuegos examinen un cubo de correo central. Esto proveerá de usted de la tala centralizada, que puede ayudar en el descubrimiento del origen de correo spoofing intenta a su sitio.
- Enseñar a sus usuarios de manera que sepan detectar este tipo de ataques y no sean engañados mediante “ingeniería social” y así no revelar información sensible (como contraseñas)
Web Spoofing
Suplantación de una página web real. Enruta la conexión de una víctima a través de una página falsa hacia otras páginas WEB con el objetivo de obtener información de dicha víctima (páginas WEB vistas, información de formularios, contraseñas etc.). El atacante puede monitorear todas las actividades que realiza la víctima. La página WEB falsa actúa a modo de proxy solicitando la información requerida por la víctima a cada servidor original y saltándose incluso la protección SSL.
La víctima puede abrir la página web falsa mediante cualquier tipo de engaño, incluso abriendo un simple LINK. Las personas que usan internet a menudo toman decisiones relevantes basadas en las señales del contexto que perciben. Por ejemplo, se podría decidir teclear los datos bancarios porque se cree que se está visitando el sitio del banco. Esta creencia se podría producir porque la pagina tiene un parecido importante, sale su URL en la barra de navegación, y por alguna que otra razón más.
Todo el tráfico entre el navegador de la víctima y el verdadero web pasa a través del programa filtro que programó el atacante, pudiendo modificar cualquier información desde y hacia cualquier servidor que la víctima visite, con lo que podrá realizar Vigilancia y Manipulación:
- Vigilancia: El atacante puede mirar el tráfico de una manera pasiva grabando las páginas que visita la víctima, y su contenido, como por ejemplo todos los datos que aparezcan en los formularios cuando la respuesta es enviada de vuelta por el servidor. Como la mayoría del comercio electrónico se hace a través de formularios, significa que el atacante puede observar cualquier número de cuenta o passwords que la victima introduce.
- Manipulación: El atacante también es libre de modificar cualquiera de los datos que se están transmitiendo entre el servidor y la victima en cualquier dirección. Por ejemplo, si la victima está comprando un producto on-line, el atacante puede cambiar el número, la cantidad, la dirección del remitente… También le podría engañar a la victima enviándole información errónea, por parte del servidor para causar antagonismo entre ellos.
¿Cómo funciona el ataque?
La clave es que el atacante se sitúe en medio de la conexión entre la víctima y el servidor.
a) Rescribe la URL:
Lo primero que se hace es grabar todo el website dentro del servidor del atacante para que así se apunte al servidor de la víctima, en vez de la verdadera. Otro método sería instalar un software que actúe como filtro. Por ejemplo, si la URL del atacante es http://www.atacante.org y la del servidor verdadero es http://www.servidor.com, quedaría: http://www.atacante.org/http://www.servidor.com
1) El navegador de la victima reclama una página de www.atacante.org
2) www.atacante.org se la reclama a www.servidor.com.
3) www.servidor.com se la entrega a www.atacante.org
4) www.atacante.org la reescribe o modifica
5) www.atacante.org le entrega la versión de la página que ha hecho al navegador de la víctima.
b) ¿Qué pasa con los Formularios?:
Si la victima llena un formulario de una página web falsa, el atacante también puede leer los datos, ya que van encerrados dentro de los protocolos web básicos. Es decir, que si cualquier URL puede ser spoofeada, los formularios también.
c) Las Conexiones Seguras no ayudan:
Una propiedad angustiosa de este ataque es que también funciona cuando la navegador de la victima solicita una página vía conexión segura. Si la victima accede a un web “seguro” (usando Secure Sockets Layer, SSL) en un web falso, todo sigue ocurriendo con normalidad, la página será entregada, y el indicador de conexión segura, se encenderá.
El navegador de la victima dice que hay una conexión segura, porque tiene una, pero desgraciadamente esa conexión es con www.atacante.org, y no con el sitio que piensa la víctima. El indicador de conexión segura solo le da a la victima una falsa sensación de seguridad.
¿Cómo detectar el ataque?
Este ataque es bastante efectivo, pero no perfecto. Todavía hay detalles que pueden hacer sospechar a la victima que el ataque ya está en marcha. En última instancia, el atacante puede llegar a eliminar cualquier rastro del ataque.
a) La Línea de Estado:
Este ataque deja dos tipos de evidencias en la barra de estado. La primera, cuando se pasa el mouse por encima de un enlace, informa la URL a la que apunta. Así pues, la victima podría darse cuenta de que la URL se ha modificado. La segunda es que por un breve instante de tiempo, se informa cual es la dirección del servidor que está intentando visitar. La victima podría darse cuenta que el servidor es www.atacante.org, y no el servidor verdadero.
El atacante puede tapar estas huellas añadiendo código Java Script en cada página reescrita para ocultar el texto en la línea de estado o hacer que cuando haya un enlace a http://www.atacante.org/http://www.servidor.com, en la línea de estado salga http://www.servidor.com, que se haría de la manera siguiente:
http://www.atacante.org/http://www.servidor.com OnMouseOver=”window.status=’http://www.servidor.com’; return true;”>http://www.servidor.com
Este detalle hace más convincente el ataque.
b) La Línea de Navegación:
Es la encargada de informar qué URL se está visitando. Así pues, el ataque causa que las paginas reescritas en www.atacante.org salgan en la línea de navegación. Este detalle puede hacer sospechar a la victima que el ataque está en marcha.
Esta huella puede ser ocultada ayudándose de un poco de Java Script, de esta manera:
function AbreVentana()
{
open(“http://www.atacante.org/http://www.servidor.com/”,”DisplayWindow”,”toolbar=yes,directories=no,menubar=no, status=yes”);
}
También se puede hacer un programa que reemplace a la línea de navegación verdadera, que parezca que sea la correcta, colocándola en el mismo sitio. Si está bien hecho se puede hacer que escriba la URL que espera ver la víctima, incluso que se puedan producir entradas por teclado, para que la víctima no se dé cuenta.
c) Ver Documento Código Fuente:
Los navegadores más populares ofrecen la posibilidad de examinar el código fuente HTML de la página actual. Un usuario podría buscar URLs reescritas, mirando su código fuente, para darse cuenta del ataque.
Este ataque también puede prevenir esto ayudándose de un programa en Java Script que oculte la barra de menús, o que haga una barra idéntica, con la salvedad que si la victima mira el código fuente, en vez de enseñar el que está viendo, apunte a la dirección verdadera.
d) Ver Información del Documento:
Esta huella se puede eliminar siguiendo las indicaciones arriba mencionadas.
¿Cómo evitarlo?
Web Spoofing es un ataque peligroso, y difícilmente detectable, que hoy por hoy se puede llevar a cabo en Internet. Afortunadamente hay algunas medidas preventivas que se pueden practicar:
a) Soluciones a corto plazo:
1.- Desactivar la opción de Java Script en el navegador.
2.- Asegurarse en todo momento que la barra de navegación está activa.
3.- ESTA ES LA MÁS IMPORTANTE: Poner atención a las URL que se enseñan en la barra de estado, asegurándote que siempre apuntan al sitio que quieras entrar.
Hoy en día tanto Java Script, como Active-X, como Java tienden a facilitar las técnicas de spoofing, se recomiendo que las desactive de su navegador, al menos en los momentos que vaya a transferir información crítica como login, password, números de tarjeta de crédito o cuenta bancaria.
b) Soluciones a largo plazo:
Todavía no se ha descubierto ningún método para evitar este ataque.
Blue MAC Spoofing
Aunque no es un ataque spoofing que haga uso de las debilidades de TCP/IP lo comentaremos brevemente como mera curiosidad.
El ataque Blue MAC Spoofing afecta a teléfonos móviles Bluetooth (y a todos los dispositivos que hagan uso de esta tecnología). No explota una implementación incorrecta de Bluetooth por parte de los fabricantes, sino un fallo del estándar en sí.
Este ataque consiste en suplantar la identidad de un dispositivo emparejado y utilizar sus credenciales de confianza para acceder a un teléfono sin que el usuario se percate, obteniendo asi total control de las funciones del teléfono y sus archivos almacenados.
Conclusión
Visto todo esto, se comprueba como la facilidad, confiabilidad y operatividad de los estándares de internet para la comunicación por la red es a la vez la fuente de su peor pesadilla. La seguridad es un compromiso constante entre eficiencia, disponibilidad y a la vez, atención y cuidado perenne que puede bien estar en los límites de la paranoia.