1.-Introducción: ¿Qué es exactamente el Spoofing?
El IP (Internet Protocol) Spoofing (Suplantación) consiste básicamente en el engaño mediante alguna técnica de una lo que queramos suplantar, a cualquier tipo de receptor. Este concepto apareció originariamente debido a la necesidad que tenían los delincuentes de ocultar su rastro de internet, al igual que, fuera de internet, actualmente los delincuentes usan técnicas para tratar de no ser descubiertos. La primera vez que se usó el término de ‘Spoofing’ se remonta a los años ochenta, por Robert Morris, creador del primer gusano de internet.

2.-IP Spoofing
Para poder hablar acerca del IP Spoofing debemos de tener unos mínimos conocimientos acerca del funcionamiento de los protocolos TCP/IP, encargados de la transmisión de datos entre ordenadores.

2.1.-¿Para qué se usa?
El principal uso que se le da al IP Spoofing es para la realización de ataques DoS, los cuales se basan en inundar de paquetes un servidor para intentar saturarlo y que no pueda recibir más. Para el atacante tiene dos ventajas respecto este ataque. El primero de ellos es la ocultación de su propia identidad para que no le descubran. El segundo, es poder enviar paquetes con distintas direcciones de origen para que al receptor le resulte más difícil defenderse.
Otro objetivo menos común, puede ser el conseguir loguearse en un sistema de autentificación basado en las direcciones IP. Resultaría bastante difícil encontrar alguno entre ordenadores alejados (físicamente hablando) y además, para poder realizarlo deberíamos ser capaces de modificar miles de paquetes a la vez. Por otro lado, es más frecuente encontrarlo en redes locales (como las existentes en oficinas), la cual nos permitirían loguearnos sin un usuario y contraseña, solo mediante la IP del tipo 192.168.XXX.XXX
Otro último uso que se le puede dar al IP Spoofing, es el engaño a servidores que tienen censurado o limitado su contenido dependiendo del país del visitante. Para esto último es muy frecuente usar proxies que nos aseguran el mismo resultado.

2.2.-Protocolos TCP/IP
El protocolo IP, es un protocolo de transferencia débil (hablando en términos de seguridad), ya que una vez completada la transferencia, no tenemos conocimiento del estado de transacción de los datos. Lo entenderemos mejor si vemos y explicamos un poco su cabecera:

Por otra parte, el protocolo TCP, usa conexión orientada al diseño. Esto es debido a que su conexión (mucho más segura que la del protocolo IP) se asegura, entre otras cosas, del establecimiento de la conexión entre el emisor y el receptor en 3 etapas distintas:
-En primer lugar, el cliente envía al servidor un paquete SYN.
-Después, el servidor revisa si el puerto correspondiente se encuentra abierto o cerrado. En el caso de encontrarse cerrado, el servidor envía un paquete de respuesta rechazando la conexión. En el caso de que se encuentre abierto, el servidor envía un paquete de respuesta SYN/ACK.
-Finalmente, cuando el emisor recibe la respuesta afirmativa con el paquete SYN/ACK, éste envía al receptor un paquete ACK completando así el establecimiento de conexión.

Hasta aquí, encontramos la primera diferencia con respecto el protocolo IP, que este último no usa ningún sistema como tal, para establecer una conexión correcta con el servidor.

Por último, mencionar también que el protocolo TCP también es el encargado de reordenar los paquetes de la transferencia, detectar errores, paquetes duplicados y múltiples cosas más que podemos ver en la cabecera de este protocolo.

Para concluir con esta parte, solo me queda por decir, que el funcionamiento de una transferencia de datos tiene el siguiente orden: primero, las aplicaciones traspasan los datos a la capa TCP. TCP divide los datos y añade a cada segmento su cabecera. Después, se pasa a la capa IP, donde a través de la red, llega a la capa TCP de destino. Aquí, TCP comprueba que no se ha perdido ningún elemento y que todo está en orden. Finalmente, desde esta última capa TCP del receptor, se envía al emisor un paquete que confirma la perfecta llegada de los datos.

2.2.-Seguridad al respecto y anotaciones
El IP Spoofing fue un problema importante hace unos años, sin embargo a día de hoy es más complicado realizar esta práctica, debido a que los routers modernos bloquean la salida de paquetes con dirección de origen falsa. A pesar de ello existen medidas para protegernos contra cualquier posible amenaza relacionada con el Spoofing.
La creación de filtros de entrada y salida en los routers pueden ayudar a combatir esta amenaza. Configurando una lista de control de acceso (ACL) y restringiendo el rango de IPs privadas, ya que es común que el origen suplantado en la transferencia de paquetes de los ataques de Spoofing sean direcciones de IP locales, con lo que fácilmente podrían atravesar el firewall.

3.-ARP Spoofing
El protocolo ARP, protocolo de resolución de direcciones, nace de la necesidad existente de traducir la dirección IP en la dirección MAC, para que, entre equipo y router, puedan transmitir paquetes (ya que no se podrían entender entre ambos).
Para entender cómo se produce el Spoofing sobre el protocolo ARP, me limitaré primeramente a explicar cómo funciona el protocolo ARP encargado que existe entre la conexión de un portátil y un router.
El portátil manda paquetes (ARP request) con la dirección a la que se lo quiere enviar. Los ordenadores que no sean los receptores desecharán este paquete, y cuando el receptor objetivo (router) ha recibido esta petición, manda una respuesta (ARP reply). Una vez relacionadas, el portátil puede acceder a internet mandando maquetes a la MAC del router. Esta relación se guarda en la caché de las máquinas, en una tabla denominada, tabla ARP.
El ARP Spoofing se basa sencillamente, en el engaño de un terminal con conexión inalámbrica, al que hacemos creer que la MAC del router al que envía los paquetes, es otra inexistente, por lo que, los paquetes que envía el terminal se pierden y no llegan al router (desconexión de internet). Por otra parte, se le puede enviar a este terminal que quiere acceder a internet, un paquete para que piense que la MAC de una tercer máquina (equipo atacante) sea la del router (este proceso es posible, debido a que el protocolo ARP puede recibir respuestas (reply) sin emitir preguntas (request)), y así, la máquina víctima estaría enviando paquetes al atacante, mientras este decide si solamente quiero verlos y reenviarlos al router, o incluso si el atacante quiere modificarlos para posteriormente enviarlos al router, lo que nos permite la redirección de equipos a una página antes de permitirles el acceso a la red.
La tabla ARP de la que hablábamos antes la podemos visualizar en la consola de Windows con la línea “arp –a”. A continuación veremos su funcionamiento de un modo práctico.

3.1.-Defensas
El uso de tablas ARP estáticas nos permitiría no generar esa caché que es vulnerable de ser suplantada. Para ello, desde la consola de Windows escribimos: arp –s [IP] [MAC]. NOTA: la dirección MAC se tiene que escribir de la siguiente forma 00-11-22-33-44-55.

Otro método que se podría usar, sería el RARP, protocolo usado para consultar a partir de una dirección MAC su dirección IP correspondiente. De tal manera que si el RARP devuelve más de una dirección IP, significa que esa dirección MAC ha sido clonada.
Mencionar un último método, que sería el reconocimiento de cualquier cambio en las tablas ARP mediante programas como ArpWatch.

3.2.-Herramientas
Existen diversas herramientas que nos permiten realizar el ARP Spoofing, quizás unas de las más famosas sea ettercap, la cual nos ayuda a realizar un posterior Man In the Middle (esto nos permite “escuchar” lo que un terminal manda a un router)

4.-Email Spoofing
Este es sin duda el más sencillo de entender. Simplemente se basa en la suplantación de una dirección de correo, en la que suelen tener diversos objetivos, como el phising (por ejemplo, pueden intentar suplantar el email de una página web importante como puede ser paypal y nos mandan a una web falsa para que pongamos los datos y el atacante reciba la información) pero en general, mediante la ingeniería social pueden intentar sacar diversa información a la víctima.

4.1.-Defensas
El método más eficaz y fácil para defenderse frente al Email Spoofing es comparar la IP del email recibido con la IP del servicio que intentan suplantar.

4.2.-¿Cómo se realiza?
Existen diversas maneras para realizar correctamente esta práctica. Una de ellas, sería montarse un servidor de correo casero y usarlo para mandar emails, pudiendo modificar configuraciones que nos permitirían esta suplantación. Otra sería mediante telnet usando un servidor de correo de alguna página en la que nos permita hacerlo y el cual hay cientos de tutoriales circulando por internet. Pero el método que considero más fácil sería directamente hacerlo con un script en PHP, el cual mediante la función mail (más información: http://php.net/manual/en/function.mail.php) nos permite configurar el correo emisor (correo spoofeado), el correo receptor (víctima), el cuerpo del mensaje, el asunto, un correo de copia oculta, etc.

4.3.-Anotación
Primeramente me gustaría recordar que la suplantación de identidad de una persona está totalmente penada por la ley. Puede parecer antiguo, pero todo lo contrario, a día de hoy se siguen intentando spoofear páginas importantes. Sin ir más lejos, en mi caso personal recibo emails de supuestamente paypal, pidiéndome datos (por correo) bastante importantes, y aquí adjunto una foto del susodicho email.