Spoofing

Por spoofing se conoce a la creación de tramas TCP/IP utilizando una dirección IP falseada; la idea de este ataque - al menos la idea - es muy sencilla: desde su equipo, un pirata simula la identidad de otra máquina de la red para conseguir acceso a recursos de un tercer sistema que ha establecido algún tipo de confianza basada en el nombre o la dirección IP del host suplantado. Y como los anillos de confianza basados en estas características tan fácilmente falsificables son aún demasiado abundantes (no tenemos más que pensar en los comandos r-, los accesos NFS, o la protección de servicios de red mediante TCP Wrapper), el spoofing sigue siendo en la actualidad un ataque no trivial, pero factible contra cualquier tipo de organización. 
Como hemos visto, en el spoofing entran en juego tres máquinas: un atacante, un atacado, y un sistema suplantado que tiene cierta relación con el atacado; para que el pirata 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 ([HB96]).
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. Aunque en el punto siguiente hablaremos con más detalle de estos ataques, no suele ser difícil `tumbar', o al menos bloquear parcialmente, un sistema medio; si a pesar de todo el atacante no lo consigue, simplemente puede esperar a que desconecten de la red a la máquina a la que desea suplantar (por ejemplo, por cuestiones de puro mantenimiento). 
El otro punto importante del ataque, la comunicación falseada entre dos equipos, no es tan inmediato como el anterior y es donde reside la principal dificultad del spoofing. En un escenario típico del ataque, un pirata envía una trama SYN a su objetivo indicando como dirección origen la de esa tercera máquina que está fuera de servicio y que mantiene algún tipo de relación de confianza con la atacada. 
El host objetivo responde con un SYN+ACK a la tercera máquina, que simplemente lo ignorará por estar fuera de servicio (si no lo hiciera, la conexión se resetearía y el ataque no sería posible), y el atacante enviará ahora una trama ACK a su objetivo, también con la dirección origen de la tercera máquina. Para que la conexión llegue a establecerse, esta última trama deberá enviarse con el número de secuencia adecuado; el pirata ha de predecir correctamente este número: si no lo hace, la trama será descartada), y si lo consigue la conexión se establecerá y podrá comenzar a enviar datos a su objetivo, generalmente para tratar de insertar una puerta trasera que permita una conexión normal entre las dos máquinas. 
Podemos comprobar que el spoofing no es inmediato; de entrada, el atacante ha de hacerse una idea de cómo son generados e incrementados los números de secuencia TCP, y una vez que lo sepa ha de conseguir `engañar' a su objetivo utilizando estos números para establecer la comunicación; cuanto más robusta sea esta generación por parte del objetivo, más difícil lo tendrá el pirata para realizar el ataque con éxito. 
Además, es necesario recordar que el spoofing es un ataque ciego: el atacante no ve en ningún momento las respuestas que emite su objetivo, ya que estas van dirigidas a la máquina que previamente ha sido deshabilitada, por lo que debe presuponer qué está sucediendo en cada momento y responder de forma adecuada en base a esas suposiciones.
Sería imposible tratar con el detenimiento que merecen todos los detalles relativos al spoofing por lo que para obtener información adicional es necesario dirigirse a excelentes artículos que estudian todos los pormenores del ataque, como [Dae96] o [HB96]; de la misma forma, para conocer con detalle el funcionamiento del protocolo TCP/IP y sus problemas podemos consultar [Ste94], [Tan96], [Bel89] y [Mor85]. 
Para evitar ataques de spoofing exitosos contra nuestros sistemas podemos tomar diferentes medidas preventivas; en primer lugar, parece evidente que una gran ayuda es reforzar la secuencia de predicción de números de secuencia TCP: un esquema de generación robusto puede ser el basado en [Bel96], que la mayoría de Unices son capaces de implantar (aunque muchos de ellos no lo hagan por defecto). Otra medida sencilla es eliminar las relaciones de confianza basadas en la dirección IP o el nombre de las máquinas, sustituyéndolas por relaciones basadas en claves criptográficas; el cifrado y el filtrado de las conexiones que pueden aceptar nuestras máquinas también son unas medidas de seguridad importantes de cara a evitar el spoofing. 
Hasta ahora hemos hablado del ataque genérico contra un host denominado spoofing o, para ser más exactos, IP Spoofing; existen otros ataques de falseamiento relacionados en mayor o menor medida con este, entre los que destacan el DNS Spoofing, el ARP Spoofing y el Web Spoofing ([Ris01]). Para finalizar este punto, vamos a comentarlos brevemente e indicar algunas lecturas donde se puede ampliar información sobre los mismos:
· DNS Spoofing 
Este ataque hace referencia al falseamiento de una dirección IP ante una consulta de resolución de nombre (esto es, resolver con una dirección falsa un cierto nombre DNS), o viceversa (resolver con un nombre falso una cierta dirección IP). 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. 
· ARP Spoofing 
El ataque denominado ARP Spoofing hace referencia a la construcción de tramas de solicitud y respuesta ARP falseadas, de forma que en una red local se puede forzar a una determinada máquina a que envíe los paquetes a un host atacante en lugar de hacerlo a su destino legítimo. La idea es sencilla, y los efectos del ataque pueden ser muy negativos: desde negaciones de servicio hasta interceptación de datos, incluyendo algunos Man in the Middle contra ciertos protocolos cifrados. En [Vol97] podemos obtener más información acerca de este ataque, así como código fuente para enviar tramas falseadas y comprobar los efectos del ARP Spoofing en nuestra red. 
· Web Spoofing 
Este ataque permite a un pirata visualizar y modificar cualquier página web que su víctima solicite a través de un navegador, incluyendo las conexiones seguras vía SSL. Para ello, mediante código malicioso un atacante crea una ventana del navegador correspondiente, de apariencia inofensiva, en la máquina de su víctima; a partir de ahí, enruta todas las páginas dirigidas al equipo atacado - incluyendo las cargadas en nuevas ventanas del navegador - a través de su propia máquina, donde son modificadas para que cualquier evento generado por el cliente sea registrado (esto implica registrar cualquier dato introducido en un formulario, cualquier click en un enlace, etc.)
Ingenieria Social 
Usted puede tener la mejor tecnología, firewalls, sistemas de detección de ataques, dispositivos biométricos, etc. Lo único que se necesita es un llamado a un empleado desprevenido e ingresan sin más. Tienen todo en sus manos. Kevin Mitnick.
"La gente quiere ser agradable y no pretende armar un escándalo, pero es importante enseñarles a decir no. No debe haber sutilezas cuando lo que está en juego son nuestros ingresos."Allan Vance
Bajo el nombre de Ingeniería Social (literalmente traducido del inglés Social Engineering) se encuentran comprendidas todas aquellas conductas útiles para conseguir información de las personas cercanas a una computadora. Es una disciplina que consiste, ni más ni menos en sacar información a otra persona sin que esta sé de cuenta de que te esta revelando "información sensible".
Hoy en día sólo son necesarias las malas intenciones y una conexión a Internet para sembrar el caos. Ya no es cuestión de conocimientos, sobre todo teniendo en cuenta que en los sistemas operativos más populares, se antepone la comodidad a la seguridad del sistema mismo. La mayoría de los ataques a la seguridad se deben a errores humanos y no a fallas electrónicas. Los intrusos usan "ingeniería social" para acceder a los sitios, y siempre alguien los deja entrar sin ningún problema.
Tradicionalmente, los intrusos se han valido de los engaños para conseguir atacar al eslabón más débil de la cadena de usuarios y responsables de un equipo de cómputo o de una red. De nada vale encriptar las comunicaciones, sellar los accesos, diseñar un buen esquema de seguridad para las distintas estaciones de trabajo y jerarquizar convenientemente los accesos a los mismos si no contamos con un personal que se halle lo suficientemente preparado para hacerle frente los engaños externos. 
La principal herramienta que manejan actualmente los creadores de virus es la que se ha dado en llamar ingeniería social. Con este curioso término se engloba una serie de tretas, artimañas y engaños elaborados cuyo fin es confundir al usuario o, peor todavía, lograr que comprometa seriamente la seguridad de sus sistemas. Esto no es un conocimiento exacto pero, al ponerse en práctica con un grupo tan elevado de posibles víctimas, el éxito casi siempre está garantizado. Aprovechando sentimientos tan variados como la curiosidad, la avaricia, el sexo, la compasión o el miedo, el vándalo interesado consigue su objetivo, una acción por parte del usuario. 
Un claro ejemplo de Ingeniería Social más común es el de alguien que llama por teléfono a una empresa para decir que necesita ayuda o hablar con el administrador de la red porque hay que modificar algún aspecto de la configuración. Durante la conversación, y a través de escogidas y cuidadas preguntas, el atacante obtendrá los datos (como los códigos de acceso a los equipos) que necesita para vulnerar la seguridad de todo el corporativo.
La ingeniería social es una acción muy simple, pero peligrosa. Los "hackers" llaman a los centros de datos y fingen ser un cliente que perdió su contraseña, o se dirigen a un sitio y esperan que alguien deje la puerta abierta. Otras formas de ingeniería social no son tan obvias. Los "hackers" son conocidos por crear sitios Web, concursos o cuestionarios falsos que piden a los usuarios que ingresen una contraseña. Si un usuario escribe la misma contraseña que usa en su trabajo, el hacker puede ingresar en las instalaciones sin tener que descifrar ni siquiera una línea de código.
Con el objetivo de infectar el mayor número posible de equipos, cada vez son más los gusanos que recurren a la Ingeniería Social, habitualmente empleada por los creadores de código malicioso para engañar a los usuarios. En la Ingeniería Social no se emplea ningún programa de software o elemento de hardware, sólo grandes dosis de ingenio, sutileza y persuasión para así lograr obtener información a través de otra persona sin que se dé cuenta de que está revelando información importante con la que, además, el atacante puede dañar su computadora.
En la práctica, los autores de virus (gusanos o troyanos) emplean la Ingeniería Social para que sus creaciones se propaguen rápidamente. Para ello atraen la atención del usuario y consiguen que realice alguna acción que, normalmente, consiste en inducirlo a que abra algún archivo que es el que procede a realizar la infección. De hecho, la mayoría de las pérdidas provocadas por los efectos de los códigos maliciosos tienen su origen en la ignorancia u omisión de políticas de seguridad.

El personal de una empresa debería de seguir las siguientes recomendaciones para evitar caer víctima de las trampas de la Ingeniería Social: 
1. - Antes de abrir los correos analizarlos con un antivirus eficaz y debidamente actualizado, ya que cualquier mensaje de correo electrónico puede contener códigos maliciosos aunque no le acompañe el símbolo de datos adjuntos.
2. - Nunca ejecutar un programa de procedencia desconocida, aun cuando previamente sea verificado que no contiene virus. Dicho programa puede contener un troyano o un sniffer que reenvíe nuestra clave de acceso. 
3. - Los usuarios no necesitan tener acceso a todo tipo de ficheros ya que no todos son necesarios para su trabajo habitual, por ello puede ser conveniente por parte del administrador bloquear la entrada de ficheros con extensiones ".exe",".vbs", etc.
4. - Nunca informe telefónicamente de las características técnicas de la red, sus localizaciones espaciales o personas a cargo de la misma. En su lugar lo propio es remitirlos directamente al responsable del sistema.
5.- Controlar los accesos físicos al lugar donde se hallan los servidores o terminales desde los que se puede conectar con los servicios centralizados de control.
6.- Nunca tirar documentación técnica a la basura, sino destruirla. 
7.- Verificar previamente la veracidad de la fuente que solicite cualquier información sobre la red, su localización en tiempo y espacio y las personas que se encuentran al frente de la misma.
8.- En caso de existir, instalar los parches de actualización de software que publican las compañías para solucionar vulnerabilidades. De esta manera se puede hacer frente a los efectos que puede provocar la ejecución de archivos con códigos maliciosos.
10.- Controlar que las anteriores instrucciones se cumplen sistemáticamente.

Criptografia - Virus y Troyanos - Nukers IRC - IDS - La Heuristica en los Antivirus - Antivirus - Virus - Troyanos - Spoofing - Reglas de Seguridad - Elegir una buena clave - Windows o Linux?

[

]

volver a lcu