Protección contra el hombre en el medio. Todo sobre el ataque del Hombre del Medio (MitM)

18/10/2016 | Vladímir Jázov

Los planes del FSB, el Ministerio de Telecomunicaciones y Comunicaciones Masivas y el Ministerio de Industria y Comercio para implementar las disposiciones de la Ley Yarovaya sobre la interceptación y descifrado de la correspondencia de los rusos ya no son solo planes, sino que ya están comenzando a ponerse en marcha. en acción mediante orden para la preparación de un dictamen pericial sobre la posibilidad de interceptar mensajes de WhatsApp, Viber, Facebook Messenger, Telegram, Skype mediante ataques MITM y demostración de un prototipo de dicha herramienta.

Escribimos sobre el plan para organizar un ataque MITM "legítimo" en un artículo anterior. Hoy nos detendremos con más detalle en el principio mismo de tal ataque y los métodos de su implementación.

¿Qué es un ataque MITM?

Man In The Middle (MITM) se traduce como "hombre en el medio". Este término se refiere a un ataque a la red donde un atacante se encuentra entre el usuario de Internet y la aplicación a la que accede. Por supuesto, no físicamente, sino con la ayuda de un software especial. Se presenta al usuario como la aplicación solicitada (puede ser un sitio web o un servicio de Internet), simula trabajar con ella y lo hace de tal manera que da la impresión de un funcionamiento normal y un intercambio de información.

El objetivo del ataque son los datos personales del usuario, como las credenciales de inicio de sesión. varios sistemas, datos bancarios y números de tarjetas, correspondencia personal y otra información confidencial. En la mayoría de los casos, los ataques son aplicaciones financieras (clientes bancarios, bancos en línea, servicios de pago y transferencia de dinero), servicios SaaS de empresas y sitios web. comercio electrónico(tiendas en línea) y otros sitios donde se requiere autorización para iniciar sesión.

La información que obtiene un atacante se puede utilizar para diversos fines, incluidas transferencias ilegales de dinero, cambios de cuentas, interceptación de correspondencia personal, compras a expensas de otra persona, compromisos y chantaje.

Además, tras robar credenciales y piratear el sistema, los delincuentes pueden instalar software malicioso en la red corporativa. software organizar el robo de propiedad intelectual (patentes, proyectos, bases de datos) y causar daños económicos al eliminar datos importantes.

Un ataque MITM se puede comparar con un cartero que, mientras entrega su correspondencia, abre una carta, reescribe su contenido para uso personal o incluso falsifica la letra, añade algo propio y luego sella el sobre y lo entrega al destinatario. como si nada hubiera pasado.. Además, si ha cifrado el texto de la carta y desea comunicar el código de descifrado personalmente al destinatario, el cartero se presentará como destinatario de tal forma que ni siquiera notará la sustitución.

Cómo se lleva a cabo un ataque MITM

La ejecución de un ataque MITM consta de dos fases: interceptación y descifrado.

  • Interceptación

La primera etapa del ataque es interceptar el tráfico del usuario al objetivo previsto y dirigirlo a la red del atacante.

La forma más común y sencilla de interceptar es un ataque pasivo, cuando un atacante crea puntos Wi-Fi con acceso gratuito (sin contraseña ni autorización). En el momento en que un usuario se conecta a dicho punto, el atacante obtiene acceso a todo el tráfico que pasa a través de él y puede extraer cualquier dato del mismo para interceptarlo.

El segundo método es la interceptación activa, que se puede realizar de una de las siguientes formas:

suplantación de propiedad intelectual– reemplazar la dirección IP del objetivo en el encabezado del paquete con la dirección del atacante. Como resultado, los usuarios, en lugar de visitar la URL solicitada, terminan en el sitio web del atacante.

Suplantación de ARP– sustitución de la dirección MAC real del host por la dirección del atacante en la tabla ARP de la víctima. Como resultado, los datos enviados por el usuario a la dirección IP del nodo requerido terminan en la dirección del atacante.

Suplantación de DNS Infección de caché DNS, penetración en servidor DNS y sustitución de un registro de coincidencia de direcciones de sitios web. Como resultado, el usuario intenta acceder al sitio solicitado, pero recibe la dirección del sitio del atacante del servidor DNS.

  • Descifrado

Una vez interceptado, el tráfico SSL bidireccional debe descifrarse de tal forma que el usuario y el recurso que solicita no noten la interferencia.

Hay varios métodos para esto:

Suplantación de HTTPS– se envía un certificado falso al navegador de la víctima cuando se establece una conexión al sitio a través del protocolo HTTPS. Este certificado contiene una firma digital de la aplicación comprometida, por lo que el navegador considera confiable la conexión con el atacante. Una vez que se establece dicha conexión, el atacante obtiene acceso a cualquier dato ingresado por la víctima antes de que se transmita a la aplicación.

BESTIA SSL(explotación del navegador contra SSL/TLS): el ataque explota la vulnerabilidad SSL en las versiones 1.0 y 1.2 de TLS. La computadora de la víctima está infectada con JavaScript malicioso, que intercepta las cookies cifradas enviadas a la aplicación web. Esto compromete el modo de cifrado "encadenamiento de bloques de texto cifrado", de modo que el atacante obtiene las cookies descifradas y las claves de autenticación.

Secuestro de SSL– transferencia de claves de autenticación falsas al usuario y a la aplicación al inicio de una sesión TCP. Esto crea la apariencia de una conexión segura cuando en realidad la sesión está controlada por un "intermediario".

Eliminación de SSL– Degrada la conexión de HTTPS seguro a HTTP simple al interceptar la autenticación TLS enviada por la aplicación al usuario. El atacante proporciona al usuario acceso no cifrado al sitio, mientras mantiene una sesión segura con la aplicación, obteniendo la capacidad de ver los datos transmitidos por la víctima.

Protección contra ataques MITM

Es posible una protección confiable contra ataques MITM si el usuario toma varias acciones preventivas y utiliza una combinación de métodos de cifrado y autenticación por parte de los desarrolladores de aplicaciones web.

Acciones del usuario:

  • Evite conectarse a puntos Wi-Fi que no tengan protección con contraseña. Desactive la función de conectarse automáticamente a puntos de acceso conocidos: un atacante puede disfrazar su Wi-Fi como legítima.
  • Preste atención a la notificación del navegador acerca de ir a un sitio no seguro. Un mensaje de este tipo puede indicar una transición a un sitio web falso de un atacante o problemas con la protección de un sitio web legítimo.
  • Finalice la sesión con la aplicación (cerrar sesión) si no está en uso.
  • No utilice redes públicas (cafés, parques, hoteles, etc.) para realizar transacciones confidenciales ( correspondencia de negocios, transacciones financieras, compras en tiendas online, etc.).
  • Utilice un antivirus con bases de datos actualizadas en su computadora o computadora portátil; le ayudará a protegerse contra ataques que utilicen software malicioso.

Los desarrolladores de aplicaciones web y sitios web deben utilizar seguridad protocolos TLS y HTTPS, que complican enormemente los ataques de suplantación de identidad al cifrar los datos transmitidos. Su uso también impide la interceptación del tráfico para obtener parámetros de autorización y claves de acceso.

Se considera una buena práctica proteger TLS y HTTPS no sólo para las páginas de autorización, sino también para todas las demás secciones del sitio. Esto reduce la posibilidad de que un atacante robe las cookies del usuario en el momento en que navega por páginas desprotegidas después de la autorización.

La protección contra ataques MITM es responsabilidad del usuario y del operador de telecomunicaciones. Lo más importante para el usuario es no perder la vigilancia, utilizar únicamente métodos probados de acceso a Internet y elegir sitios con cifrado HTTPS al transferir datos personales. Se puede recomendar a los operadores de telecomunicaciones que utilicen sistemas de inspección profunda de paquetes (DPI) para detectar anomalías en las redes de datos y prevenir ataques de suplantación de identidad.

Las agencias gubernamentales planean utilizar el ataque MITM para proteger a los ciudadanos, no para causar daños, a diferencia de los atacantes. La interceptación de mensajes personales y otro tráfico de usuarios se realiza en el marco de la legislación vigente, realizada por decisión de las autoridades judiciales para combatir el terrorismo, el narcotráfico y otras actividades prohibidas. Usuarios habituales Los ataques MITM “legítimos” no son peligrosos.

Lograr resultado deseado Casi siempre hay varias formas. Esto también se aplica al campo de la seguridad de la información. A veces, para lograr un objetivo, puedes usar la fuerza bruta, buscar agujeros y desarrollar exploits tú mismo, o escuchar lo que se transmite a través de la red. Además, la última opción suele ser la óptima. Es por eso que hoy hablaremos de herramientas que nos ayudarán a captar información valiosa de tráfico de red, atrayendo ataques MITM por esto.

MITMf

Empecemos por uno de los candidatos más interesantes. Este es un marco completo para realizar ataques de intermediario, construido sobre la base de sergio-proxy. Recientemente incluido en KaliLinux. Para instalarlo usted mismo, simplemente clone el repositorio y ejecute un par de comandos:

# setup.sh # pip install -r requisitos.txt

# pip install -r requisitos.txt

Tiene una arquitectura extensible mediante complementos. Entre los principales se encuentran los siguientes:

  • Spoof: le permite redirigir el tráfico mediante suplantación de ARP/DHCP, redirecciones ICMP y modificar solicitudes de DNS;
  • Sniffer: este complemento rastrea los intentos de inicio de sesión para varios protocolos;
  • BeEFAutorun: le permite iniciar automáticamente módulos BeEF según el tipo de sistema operativo y navegador del cliente;
  • AppCachePoison: realiza un ataque de envenenamiento de caché;
  • SessionHijacking: secuestra sesiones y almacena las cookies resultantes en el perfil de Firefly;
  • BrowserProfiler: intenta obtener una lista de complementos utilizados por el navegador;
  • FilePwn: le permite reemplazar mensajes enviados a través de archivos HTTP usando Backdoor Factory y BDFProxy;
  • Inyectar: ​​inyecta contenido arbitrario en una página HTML;
  • jskeylogger: incorpora un keylogger de JavaScript en las páginas del cliente.

Si esta funcionalidad le parece insuficiente, siempre puede agregar la suya propia implementando la extensión adecuada.

masillajinete

Otra utilidad digna de atención. Es cierto que, a diferencia de todas las demás herramientas consideradas hoy en día, está muy especializada. Como dice el propio autor del proyecto, para crear esta utilidad se inspiró en el hecho de que durante las pruebas de penetración, los datos más importantes se encontraban en servidores Linux/UNIX, a los que los administradores se conectaban a través de SSH/Telnet/rlogin. Además, en la mayoría de los casos, era mucho más fácil acceder a la máquina de los administradores que al servidor de destino. Habiendo penetrado en la máquina del administrador del sistema, todo lo que queda es asegurarse de que PuTTY se esté ejecutando y, utilizando esta herramienta, construir un puente trasero hacia el atacante.

La utilidad le permite no sólo capturar la "comunicación" entre el administrador y el servidor remoto (incluidas las contraseñas), sino también ejecutar comandos de shell arbitrarios dentro de una sesión determinada. Además, todo esto sucederá de forma absolutamente transparente para el usuario (administrador). Si está interesado en detalles técnicos, por ejemplo, cómo se implementa PuTTY en el proceso, le recomiendo que lea la presentación del autor.

Una utilidad bastante antigua, nacida hace más de ocho años. Destinado a clonar sesiones robando cookies. Para el secuestro de sesión, tiene habilidades básicas de detección de host (en caso de conectarse a una red abierta). red inalámbrica o hub) y realizar envenenamiento por ARP. El único problema es que hoy, a diferencia de hace ocho años, casi todas las grandes empresas como Yahoo o Facebook utilizan cifrado SSL, lo que hace que esta herramienta sea completamente inútil. A pesar de esto, todavía hay suficientes recursos en Internet que no utilizan SSL, por lo que es demasiado pronto para descartar la utilidad. Sus ventajas incluyen el hecho de que se integra automáticamente en Firefox y crea un perfil separado para cada sesión interceptada. Fuente está disponible en el repositorio y puede crearlo usted mismo utilizando la siguiente secuencia de comandos:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip ladrón de sesiones

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev

# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp

# setcap cap_net_raw,cap_net_admin=eip ladrón de sesiones

ProxyFuzz

ProzyFuzz no tiene nada que ver directamente con la realización de ataques MITM. Como puedes adivinar por el nombre, la herramienta está diseñada para realizar fuzzing. Se trata de un pequeño fuzzer de red no determinista, implementado en Python, que cambia aleatoriamente el contenido de los paquetes de tráfico de red. Soporta protocolos TCP y UDP. Puedes configurarlo para que difumine solo un lado. Útil cuando necesitas comprobar algo rápidamente aplicación de red(o protocolo) y desarrollar una prueba de concepto. Ejemplo de uso:

proxyfuzz de Python -l -r -pag

python proxyfuzz -l -r -pag

La lista de opciones incluye:

  • w: especifica el número de solicitudes enviadas antes de que comience la fuzzing;
  • c - difuminar sólo al cliente (de lo contrario, ambos lados);
  • s - difusa sólo el servidor (de lo contrario, ambos lados);
  • u - Protocolo UDP (de lo contrario se utiliza TCP).

El intermediario

Una utilidad para realizar ataques MITM en varios protocolos presentada en la conferencia DEF CON. La versión alfa admitía el protocolo HTTP y tenía tres complementos interesantes en su arsenal:

  • plugin-beef.py: inyecta el marco de explotación del navegador (BeEF) en cualquier solicitud HTTP procedente de la red local;
  • plugin-metasploit.py: incorpora un IFRAME en solicitudes no cifradas (HTTP), que carga exploits del navegador desde Metasploit;
  • plugin-keylogger.py: incorpora un controlador de eventos JavaScript onKeyPress para todos los campos de texto que se enviarán a través de HTTPS, lo que hace que el navegador envíe la contraseña ingresada por el usuario carácter por carácter al servidor del atacante antes de enviar el formulario completo.

The Middler no solo analiza automáticamente el tráfico de la red y encuentra cookies en él, sino que también las solicita de forma independiente al cliente, es decir, el proceso está automatizado al máximo. El programa garantiza la recopilación de todas las cuentas desprotegidas en una red informática (o punto de acceso público) a cuyo tráfico tiene acceso. Para que el programa funcione correctamente, se deben instalar los siguientes paquetes en el sistema: Scapy, libpcap, readline, libdnet, python-netfilter. Desafortunadamente, el repositorio no se ha actualizado durante mucho tiempo, por lo que tendrás que agregar nuevas funciones tú mismo.

Una utilidad de consola que le permite examinar y modificar de forma interactiva el tráfico HTTP. Gracias a estas habilidades, la utilidad es utilizada no sólo por pentesters/hackers, sino también por desarrolladores comunes que la utilizan, por ejemplo, para depurar aplicaciones web. Con su ayuda, puede obtener información detallada sobre las solicitudes que realiza la aplicación y las respuestas que recibe. Además, mitmproxy puede ayudar a estudiar las peculiaridades del funcionamiento de algunas API REST, especialmente aquellas que están poco documentadas.

La instalación es extremadamente sencilla:

$ sudo aptitude instalar mitmproxy

Vale la pena señalar que mitmproxy también le permite interceptar el tráfico HTTPS emitiendo un certificado autofirmado al cliente. Buen ejemplo Podrás aprender a configurar la interceptación y modificación del tráfico.

Dsniff

Bueno, esta utilidad es generalmente una de las primeras cosas que te vienen a la mente tan pronto como escuchas
"Ataque MITM". La herramienta es bastante antigua, pero se sigue actualizando activamente, lo cual es una buena noticia. No tiene sentido hablar en detalle sobre sus capacidades, durante catorce años de existencia, ha aparecido en Internet más de una vez. Por ejemplo, en una guía como esta:

o instrucciones de nuestro sitio web:

Por último..

Como es habitual, no hemos analizado todas las utilidades, sino sólo las más populares; también hay muchos proyectos poco conocidos de los que podríamos hablar algún día. Como puede ver, no faltan herramientas para llevar a cabo ataques MITM y, lo que no sucede muy a menudo, una de las herramientas interesantes está implementada para Windows. No hay nada que decir sobre los sistemas nix: toda una variedad. Por eso creo que siempre puedes encontrar la herramienta adecuada para el robo.
credenciales de otras personas. Ups, es decir, para probar.

Man in the middle attack (ataque MitM) es un término en criptografía que se refiere a una situación en la que un atacante es capaz de leer y modificar a voluntad los mensajes intercambiados entre corresponsales, y ninguno de estos últimos puede adivinar su identidad. .

Un método para comprometer un canal de comunicación, en el que un atacante, habiéndose conectado a un canal entre contrapartes, interfiere activamente con el protocolo de transmisión, eliminando, distorsionando información o imponiendo información falsa.

Principio de ataque:

Supongamos que el objeto "A" planea transmitir alguna información al objeto "B". El objeto "C" tiene conocimiento de la estructura y propiedades del método de transmisión de datos utilizado, así como del hecho de la transmisión planificada de la información real que "C" planea interceptar.

Para realizar un ataque, "C" aparece para objetar a "A" como "B" y para objetar a "B" como "A". El objeto "A", creyendo erróneamente que está enviando información a "B", la envía al objeto "C".

El objeto "C", después de haber recibido información y haber realizado algunas acciones con ella (por ejemplo, copiarla o modificarla para sus propios fines), envía los datos al propio destinatario: "B"; El objeto "B", a su vez, cree que la información fue recibida directamente de "A".

Ejemplo de un ataque MitM:

Digamos que Alice tiene problemas económicos y, utilizando un programa de mensajería instantánea, decide pedirle a John una suma de dinero enviando el mensaje:
Alicia: Juan, hola!
Alicia: Por favor envíeme la clave de cifrado, ¡tengo una pequeña solicitud!
John: ¡Hola! ¡Espera un segundo!

Pero, en ese momento, el Sr. X, quien, mientras analizaba el tráfico con un sniffer, notó este mensaje y las palabras “clave de cifrado” despertaron curiosidad. Es por eso que decidió interceptar los siguientes mensajes y reemplazarlos con los datos que necesitaba, y cuando recibió el siguiente mensaje:
John: Aquí está mi clave: 1111_D

Cambió la clave de John por la suya y le envió un mensaje a Alice:
John: Aquí está mi clave: 6666_M

Alice, sin darse cuenta y pensando que es la clave de John, usa la clave privada. 6666_M, envía mensajes cifrados a John:
Alicia: John, tengo problemas y necesito dinero urgentemente, por favor transfiera $300 a mi cuenta: Z12345. Gracias. PD. Mi clave: 2222_A

Habiendo recibido el mensaje, el Sr. X lo descifra usando su clave, lo lee y, regocijándose, cambia el número de cuenta de Alice y la clave de cifrado por los suyos, cifra el mensaje con la clave. 1111_D, y le envía a John un mensaje:
Alicia: John, tengo problemas y necesito dinero urgentemente, por favor transfiera $300 a mi cuenta: Z67890. Gracias. PD. Mi clave: 6666_A

Después de recibir el mensaje, John lo descifra usando la clave 1111_D, y sin dudarlo, transferirá dinero a la cuenta Z67890...

Y así, el Sr. X, usando el ataque del intermediario, ganó $300, pero Alice ahora tendrá que explicar que no recibió el dinero... ¿Y John? John debe demostrarle a Alice que él los envió...

Implementación:

Este tipo de ataque se utiliza en algunos productos de software para escuchas ilegales en la red, por ejemplo:
NetStumbler- un programa con el que puedes recopilar una gran cantidad de datos útiles sobre una red inalámbrica y resolver algunos problemas asociados con su funcionamiento. NetStumbler le permite determinar el alcance de su red y le ayuda a apuntar con precisión su antena para comunicaciones de larga distancia. Para cada punto de acceso encontrado, puede averiguar la dirección MAC, la relación señal-ruido, el nombre del servicio y el grado de seguridad. Si el tráfico no está cifrado, será útil la capacidad del programa para detectar conexiones no autorizadas.

olfatear- es un conjunto de programas para auditoría de red y pruebas de penetración, que proporcionan monitoreo pasivo de red para buscar datos de interés (contraseñas, direcciones Correo electrónico, archivos, etc.), interceptación de tráfico de red que normalmente sería inaccesible para su análisis (por ejemplo, en una red conmutada), así como la capacidad de organizar ataques MITM para interceptar sesiones SSH y HTTPS explotando fallas de PKI.

Caín y Abel - programa gratuito, que le permite recuperar contraseñas perdidas para sistemas operativos familia de ventanas. Se admiten varios modos de recuperación: piratería por fuerza bruta, selección de diccionario, visualización de contraseñas ocultas por asteriscos, etc. También existen opciones para identificar una contraseña interceptando paquetes de información y su posterior análisis, grabando conversaciones de red, análisis de caché y otros.

Ettercap- es un rastreador, interceptor de paquetes y grabador para redes Ethernet locales, que admite el análisis activo y pasivo de múltiples protocolos, y también es posible "arrojar" sus propios datos a una conexión existente y filtrar "sobre la marcha" sin interrumpir la conexión sincronización. El programa le permite interceptar SSH1, HTTPS y otros protocolos seguros y brinda la capacidad de descifrar contraseñas para los siguientes protocolos: TELNET, ftp, POP, RLOGIN, SSH1, icq, SMB, Mysql, HTTP, NNTP, X11, NAPSTER, IRC , RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.

KARMA– un conjunto de utilidades para evaluar la seguridad de los clientes inalámbricos, es un rastreador inalámbrico que, al escuchar pasivamente las tramas de solicitud de sonda 802.11, le permite detectar clientes y sus redes preferidas/confiables. Luego se puede crear un punto de acceso falso para una de las redes solicitadas, al que se puede conectar automáticamente. Se pueden utilizar servicios falsos de alto nivel para robar datos personales o explotar las vulnerabilidades del cliente en el host.

Airjack- un conjunto de programas que, según los expertos en el campo del hackeo de WiFi, es la mejor herramienta para generar varios fotogramas 802.11. AirJack incluye una serie de utilidades diseñadas para detectar ESSID ocultos, enviar tramas de terminación de sesión con una MAC falsa, realizar ataques MitM y modificarla.

Neutralización:

Para evitar ataques de este tipo, los suscriptores “A” y “B” solo necesitan transferirse entre sí firmas digitales de claves de cifrado públicas utilizando un canal confiable. Luego, al comparar firmas de claves en sesiones de cifrado, será posible determinar qué clave se utilizó para cifrar los datos y si las claves han sido reemplazadas.

En este artículo, intentaremos comprender la teoría de los ataques de intermediario y algunos puntos prácticos que ayudarán a prevenir este tipo de ataques. Esto nos ayudará a comprender el riesgo que este tipo de intrusiones suponen para nuestra privacidad, ya que los ataques MitM nos permiten inmiscuirnos en las comunicaciones y escuchar nuestras conversaciones.

Comprender cómo funciona Internet

Para comprender el principio de un ataque de intermediario, primero vale la pena comprender cómo funciona Internet. Principales puntos de interacción: clientes, enrutadores, servidores. El protocolo de comunicación más común entre cliente y servidor es el Protocolo de transferencia de hipertexto (HTTP). Navegar por Internet utilizando un navegador, correo electrónico, mensajería instantánea: todo esto se hace a través de HTTP.

Cuando escribe en la barra de direcciones de su navegador, el cliente (usted) envía una solicitud al servidor para mostrar una página web. El paquete (solicitud HTTP GET) se transmite a través de varios enrutadores al servidor. Luego, el servidor responde con una página web, que se envía al cliente y se muestra en su monitor. Los mensajes HTTP deben enviarse a modo seguro para garantizar la confidencialidad y el anonimato.

Figura 1. Interacción cliente-servidor

Asegurar el protocolo de comunicación

Un protocolo de comunicación seguro debe tener cada una de las siguientes propiedades:

  1. Privacidad- sólo el destinatario previsto puede leer el mensaje.
  2. Autenticidad- se ha demostrado la identidad de las partes que interactúan.
  3. Integridad- confirmación de que el mensaje no fue modificado en tránsito.

Si no se sigue alguna de estas reglas, todo el protocolo se ve comprometido.

Ataque de intermediario a través del protocolo HTTP

Un atacante puede llevar a cabo fácilmente un ataque de intermediario utilizando una técnica llamada suplantación de identidad ARP. Cualquiera en tu Redes wifi puede enviarle un paquete ARP falsificado, lo que provocará que, sin saberlo, envíe todo su tráfico a través del atacante en lugar de a través de su enrutador.

Después de esto, el atacante tiene control total sobre el tráfico y puede monitorear las solicitudes enviadas en ambas direcciones.

Figura 2. Patrón de ataque de intermediario


Para evitar este tipo de ataques, se creó una versión segura del protocolo HTTP. Transport Layer Security (TLS) y su predecesor, Secure Socket Layer (SSL), son protocolos criptográficos que brindan seguridad para la transmisión de datos a través de una red. Por tanto, el protocolo seguro se llamará HTTPS. Puede ver cómo funciona el protocolo seguro escribiendo en la barra de direcciones de su navegador (tenga en cuenta la S en https).

Ataque de intermediario a SSL mal implementado

El SSL moderno utiliza un buen algoritmo de cifrado, pero eso no importa si no se implementa correctamente. Si un pirata informático puede interceptar la solicitud, puede modificarla eliminando la "S" de la URL solicitada, evitando así SSL.

Se puede notar tal interceptación y modificación de la solicitud. Por ejemplo, si solicita https://login.yahoo.com/ y la respuesta es http://login.yahoo.com/, esto debería generar sospechas. Al momento de escribir este artículo, este ataque en realidad funciona en el servicio de correo electrónico de Yahoo.

Figura 3. Solicitud de interceptación y modificación


Para evitar un ataque de este tipo, los servidores pueden implementar HTTP Strict Transport Security (HSTS), un mecanismo que permite una conexión segura forzada a través del protocolo HTTPS. En este caso, si un atacante modifica la solicitud eliminando "S" de la URL, el servidor seguirá redireccionando al usuario con una redirección 302 a una página con un protocolo seguro.

Figura 4. Diagrama de operación HSTS


Esta forma de implementar SSL es vulnerable a otro tipo de ataque: el atacante crea una conexión SSL con el servidor, pero utiliza varios trucos para obligar al usuario a utilizar HTTP.

Figura 5. Patrón de ataque HSTS


Para evitar este tipo de ataques, los navegadores modernos como Chrome, Firefox y Tor monitorean los sitios usando HSTS y fuerzan una conexión del lado del cliente a través de SSL. En este caso, el atacante que realiza un ataque de intermediario tendría que crear una conexión SSL con la víctima.

Figura 6. Patrón de ataque donde el atacante establece una conexión SSL con la víctima


Para proporcionar una conexión SLL a un usuario, un atacante debe saber cómo actuar como servidor. Entendamos los aspectos técnicos de SSL.

Entendiendo SSL

Desde el punto de vista de un hacker, comprometer cualquier protocolo de comunicación se reduce a encontrar el eslabón débil entre los componentes enumerados anteriormente (privacidad, autenticidad e integridad).

SSL utiliza un algoritmo de cifrado asimétrico. El problema con el cifrado simétrico es que se utiliza la misma clave para cifrar y descifrar datos; este enfoque no es válido para los protocolos de Internet porque un atacante puede rastrear esta clave.

El cifrado asimétrico incluye 2 claves para cada lado: Llave pública, utilizada para cifrar, y una clave privada, utilizada para descifrar los datos.

Figura 7. Funcionan las claves públicas y privadas

¿Cómo proporciona SSL las tres propiedades necesarias para comunicaciones seguras?

  1. Debido a que se utiliza criptografía asimétrica para cifrar datos, SSL proporciona una conexión privada. Este cifrado no es tan fácil de romper y pasar desapercibido.
  2. El servidor confirma su legitimidad enviando al cliente un certificado SSL emitido por una autoridad certificadora, un tercero de confianza.

Si un atacante de alguna manera logra obtener el certificado, podría abrir la puerta a un ataque de intermediario. De este modo, creará 2 conexiones: con el servidor y con la víctima. En este caso, el servidor piensa que el atacante es un cliente normal y la víctima no tiene forma de identificar al atacante, ya que proporcionó un certificado que demuestra que él es el servidor.

Tus mensajes llegan y llegan de forma cifrada, pero siguen una cadena a través del ordenador del ciberdelincuente, donde éste tiene el control total.

Figura 8. Patrón de ataque si el atacante tiene un certificado


No es necesario falsificar el certificado si un atacante tiene la capacidad de comprometer el navegador de la víctima. En este caso, puede insertar un certificado autofirmado, en el que se confiará de forma predeterminada. Así es como se llevan a cabo la mayoría de los ataques de intermediario. En casos más complejos, el hacker debe tomar un camino diferente: falsificar el certificado.

Problemas con la autoridad certificadora

El certificado enviado por el servidor fue emitido y firmado por una autoridad certificadora. Cada navegador tiene una lista de autoridades certificadoras confiables y puede agregarlas o eliminarlas. El problema aquí es que si decide eliminar autoridades grandes, no podrá visitar sitios que utilicen certificados firmados por esas autoridades.

Los certificados y las autoridades certificadoras siempre han sido el eslabón más débil en una conexión HTTPS. Incluso si todo se implementó correctamente y cada autoridad certificadora tiene una autoridad sólida, todavía es difícil aceptar el hecho de que hay que confiar en muchos terceros.

Hoy en día existen más de 650 organizaciones capaces de emitir certificados. Si un atacante pirateara alguno de ellos, obtendría los certificados que quisiera.

Incluso cuando sólo había una autoridad de certificación, VeriSign, había un problema: las personas que se suponía debían prevenir los ataques de intermediarios estaban vendiendo servicios de interceptación.

Además, muchos certificados se crearon debido a la piratería de las autoridades certificadoras. Se han utilizado diversas técnicas y trucos para engañar al usuario objetivo y hacer que confíe en certificados fraudulentos.

forense

Debido a que el atacante envía paquetes ARP falsificados, no se puede ver la dirección IP del atacante. En su lugar, debes prestar atención a la dirección MAC, que es específica de cada dispositivo de la red. Si conoce la dirección MAC de su enrutador, puede compararla con la dirección MAC de la puerta de enlace predeterminada para averiguar si realmente es su enrutador o un atacante.

Por ejemplo, en el sistema operativo Windows puede utilizar el comando ipconfig en línea de comando(CMD) para ver la dirección IP de su puerta de enlace predeterminada (última línea):

Figura 9. Usando el comando ipconfig


Luego use el comando arp –a para averiguar la dirección MAC de esta puerta de enlace:

Figura 10. Usando el comando arp –a


Pero hay otra forma de notar el ataque: si estaba monitoreando la actividad de la red en el momento en que comenzó y observando los paquetes ARP. Por ejemplo, puede utilizar Wireshark para este propósito; este programa le notificará si la dirección MAC de la puerta de enlace predeterminada ha cambiado.

Nota: Si el atacante falsifica correctamente las direcciones MAC, rastrearlo se convertirá en un gran problema.

Conclusión

SSL es un protocolo que obliga a un atacante a trabajar mucho para llevar a cabo un ataque. Pero no lo protegerá de ataques patrocinados por el estado ni de organizaciones de piratería especializadas.

El trabajo del usuario es proteger su navegador y su ordenador para evitar que se inserte un certificado falso (una técnica muy común). También vale la pena prestar atención a la lista de certificados confiables y eliminar aquellos en los que no confía.

Publicaciones sobre el tema.