Ataque man-in-the-middle (mitm attack)
Un ataque man-in-the-middle describe un patrón de ataque en Internet en el que un atacante infiltra, entre el sistema de la víctima y un recurso de Internet utilizado por la víctima, un sistema que él controla de forma física o lógica. El objetivo del atacante es interceptar, leer o manipular la comunicación entre la víctima y el recurso de Internet sin que nadie se dé cuenta de ello.
¿Qué es un ataque man-in-the-middle?
Por ataque man-in-the-middle (también ataque MitM) o ataque de intermediario se entiende aquel método por el que un hacker interviene en el tráfico de datos de dos participantes en una comunicación haciéndose pasar por uno o por otro, de forma que les hace creer que se están comunicando entre ellos cuando en realidad lo hacen con el intermediario. En el pasado, este tipo de ataques tenía lugar por medio de la manipulación del canal físico de comunicación. Hoy, con el uso compartido de redes de comunicación públicas, el tercero no autorizado se inmiscuye entre dos o más participantes de la comunicación. Los ataques MitM se llevan a cabo, sobre todo, en redes informáticas con el fin de anular la codificación SSL/TLS y poder acceder, así, a información confidencial, tales como datos de usuario, contraseñas y cuentas bancarias.
El gráfico que aparece a continuación, ilustra el esquema básico de un ataque man-in-the-middle.
El sistema A intenta crear una conexión codificada con el sistema B pero, en lugar de ello, un tercer partido malintencionado desvía el flujo de datos para establecer la conexión codificada del sistema A con el sistema C y que a partir de ahí se transmita al sistema B. Esto tiene como consecuencia que aquel que tenga el control sobre el sistema C (el atacante generalmente) puede examinar, grabar o manipular el tráfico de datos, a menudo incluso sin que los participantes en la comunicación sean conscientes de ello. Una vez hecha la transmisión a la World Wide Web, el sistema C se presentará como servidor web ante el sistema A y como navegador web ante el sistema B.
Modalidades de ataque man-in-the-middle
Para infiltrase en el tráfico de datos entre dos o más sistemas, los hackers recurren a diversas técnicas que se centran en las debilidades de la comunicación por Internet. El servicio DHCP (Dynamic Host Configuration Protocol), responsable de la concesión de direcciones IP locales, o el protocolo de resolución de direcciones conocido como ARP o Address Resolution Protocol y que sirve para determinar las direcciones de hardware (Media Access Control, MAC), son vulnerables, por ejemplo, para ataques de intermediario en redes de área local internas. En términos generales, estos ataques pueden llevarse a cabo mediante la manipulación de servidores DNS, que son los encargados de la resolución de direcciones de Internet en IP públicas. Además, los hackers hacen uso de las brechas de seguridad en software de navegación anticuado o ponen a disposición de los usuarios más ingenuos accesos corruptos a redes de área local inalámbricas.
En general, estos tipos de ataque de intermediario pueden automatizarse por medio de software. Si la supervisión en tiempo real se realiza mediante la intervención humana, entonces se puede hablar de human assisted attacks.
Ataques basados en servidores DHCP
En el caso de los ataques basados en un servidor DHCP, es un hacker el que coloca su propio ordenador (o uno que esté bajo su control) en una red de área local (LAN) a modo de servidor DHCP. Este es un componente esencial de una red local y se encarga de la asignación de la configuración de red a otros ordenadores de la red local. Esta tiene lugar, por lo general, de manera automática: en cuanto un ordenador establece la conexión con una red de área local, el cliente DHCP del sistema operativo reclama datos como la dirección IP local, la máscara de red, la dirección de la puerta de acceso predeterminada, o la dirección del servidor DNS competente. Asimismo, este envía un mensaje de transmisión a todos los dispositivos conectados a la red de área local, aguarda a la respuesta de un servidor DHCP y acepta la primera que entre.
Con ello, los hackers tienen la posibilidad de controlar la adjudicación de direcciones IP locales mediante el servidor DHCP simulado, de registrar las puertas de acceso que se deseen y el servidor DNS en los ordenadores a los que se ha engañado y, por lo tanto, de desviar el tráfico de datos saliente a cualquier ordenador para interceptar y manipular contenidos.
Debido a que esta modalidad de ataque se basa en la manipulación del sistema DHCP, la terminología adoptada en este caso es la de DHCP spoofing (en español, manipulación). Sin embargo, la condición para realizar el ataque man-in-the-middle es que el atacante utilice la misma red de área local que su víctima. En el caso de las LAN de los hoteles o en las redes inalámbricas públicas existe el peligro de convertirse en el blanco de un ataque basado en un servidor DHCP. Si un atacante quiere infiltrarse en una red corporativa que funciona por cable, este tendrá que conseguir primero un acceso físico a la red LAN para poder introducir un servidor DHCP falso.
Las medidas que los usuarios de Internet pueden tomar para prevenir los ataques de DHCP spoofing se reducen, en general, a ser precavidos en lo relativo al uso de redes desconocidas. Grosso modo, se recomienda la utilización de aplicaciones web de bancos online y plataformas de compra que pongan en peligro la seguridad tan solo en redes locales conocidas y fidedignas, como la red doméstica privada o las redes corporativas.
ARP cache poisoning
Por ARP (Address Resolution Protocol) se entiende aquel protocolo de red que sirve para resolver direcciones IP de redes LAN en direcciones de hardware (direcciones MAC). Para que un ordenador pueda enviar paquetes de datos en una red, tiene que conocer las direcciones de hardware del sistema del destinatario. Para ello, se envía una petición de ARP en calidad de transmisión de direcciones MAC a todos los sistemas de la red de área local. Dicha petición contiene tanto las direcciones MAC e IP del ordenador que solicita la información, como la dirección IP del sistema solicitado. Si un ordenador de la red recibe una petición ARP de tales características, el paso siguiente es que este compruebe si el paquete contiene la dirección IP propia en calidad de dirección IP del destinatario. Si es así, se le enviará una respuesta ARP con la dirección MAC al sistema solicitante.
Esta asignación de direcciones MAC a IP locales se guarda en forma de tabla en el caché ARP del ordenador que solicita la información. Es aquí donde actúa el llamado ARP cache poisoning (envenenamiento de caché ARP). El objetivo de este tipo de ataque es manipular las tablas ARP de los diversos ordenadores de la red por medio de respuestas de ARP falsas para que, por ejemplo, un ordenador que está bajo el control del atacante actúe como punto de acceso inalámbrico o puerta de entrada para Internet.
Si un ataque de ARP spoofing tiene éxito, los atacantes tienen la posibilidad de leer la totalidad de los datos salientes de los ordenadores a los que se ha engañado, pero también de registrarlos o de manipularlos antes de transmitirlos a la verdadera puerta de acceso. Al igual que el DHCP spoofing, el envenenamiento de caché ARP solo puede ser posible cuando el atacante se encuentra en la misma red de área local que el sistema que ha sido víctima del ataque. Un ataque MitM puede llevarse a cabo por medio de sencillos programas como la herramienta gratuita Cain & Abel, originariamente desarrollada para recuperar contraseñas, o por medio del software Ettercap.
Al igual que en los ataques basados en servidores DHCP, que se realizan en una red de área local corrupta, en este caso los usuarios tienen muy pocas posibilidades para hacer frente al ataque de ARP spoofing. Una de las medidas preventivas consiste en evitar redes desconocidas o en utilizarlas con prudencia.
Ataques basados en servidores DNS
Mientras que el ARP cache poisoning fija su atención en las debilidades de la resolución de direcciones en Ethernet, la prioridad del envenenamiento del caché basado en servidores DNS es el sistema de nombres de dominio de Internet, que es el responsable de la resolución de URL en direcciones IP públicas. En este tipo de ataques, los hackers manipulan las entradas en el caché de un servidor DNS con el objetivo de persuadirlas para que respondan a las solicitudes con direcciones de destino falsas. Si el ataque man-in-the-middle se ha llevado a cabo con éxito, los hackers pueden derivar a otros usuarios de Internet, sin que estos sean conscientes, a una página web de la red. Para ello, en la mayoría de los casos se emplean las vulnerabilidades conocidas de los servidores DNS más antiguos.
En principio, los datos del sistema de nombres de dominio no se depositan en un único servidor DNS, sino que se distribuyen por diferentes ordenadores de la red. Cuando un usuario quiere acceder a una página web, este usa, por lo general, un nombre de dominio. Para poder dirigirse al servidor correspondiente, es necesario contar con una dirección IP. Esta es determinada por el router del usuario, que enviará una solicitud de sistema de nombre de dominio al servidor DNS estándar indicado en la configuración. Por regla general, se trata del servidor DNS del proveedor de servicios de Internet (ISP). En caso de encontrar entradas, los llamados registros de recurso o resource records, para los URL solicitados, el servidor DNS emite la respuesta a la solicitud con la correspondiente dirección IP. De no ser así, el servidor DNS determinará cuál es la IP buscada con la ayuda de otros servidores con tareas relativas al sistema de nombres de dominio. Para ello, enviará una consulta a otro servidor DNS y guardará la respuesta temporalmente en el caché.
Uno de los puntos de partida para los ataques de los hackers se produce en los servidores que utilizan una versión muy antigua del software de DNS, los cuales, en general, aceptan y guardan aquellos datos solicitados de manera explícita, pero también los que se suministran de manera adicional. Si los hackers consiguen acceder a un único servidor DNS, resulta sencillo entregar registros falsos con cada dirección IP correcta y, por lo tanto, “envenenar” el caché del servidor DNS que realiza la solicitud.
La efectividad de los man-in-the-middle-attacks se muestra en algunos acontecimientos que tuvieron lugar en el pasado, en los que se desviaron rangos de nombres completos. A los usuarios les resulta prácticamente imposible protegerse frente a un ataque de este tipo, ya que estos tienen lugar directamente en la infraestructura de Internet. De ello se deduce que la principal tarea de los administradores es ocuparse de que los servidores DNS que estos facilitan utilicen un software actual y que este esté protegido como es debido. De esta manera es como se desarrollaron diversos estándares de Internet bajo el nombre de DNSSEC (Domain Name System Security Extensions), que amplía el sistema de nombres de dominio para que los diferentes mecanismos de seguridad garanticen la autenticidad e integridad de los datos. La difusión de estos estándares sigue siendo un proceso lento.
Simulación de un punto de acceso inalámbrico
Un modelo de ataque dirigido sobre todo a los usuarios de dispositivos móviles se basa en la simulación de un punto de acceso inalámbrico en una red inalámbrica pública, como las de las cafeterías o las de los aeropuertos. En ello, un atacante configura su ordenador de tal manera que este se convierta en una vía adicional para acceder a Internet (probablemente una con una calidad de señal mejor que el propio punto de acceso). De esta manera, si el atacante consigue engañar a los usuarios más ingenuos, este puede acceder y manipular la totalidad de los datos de su sistema antes de que estos se transmitan al verdadero access point o punto de acceso. Si este requiere autenticación, el hacker recibe para ello los nombres de usuario y contraseñas que se utilizan en el registro. El peligro de convertirse en el blanco de estos ataques man-in-the-middle se da particularmente cuando los dispositivos de salida se configuran de tal manera que se pueden comunicar automáticamente con los puntos de acceso con mayor potencia de señal.
Para protegerse de este tipo de ataques se recomienda que los usuarios de Internet se conecten principalmente con las redes inalámbricas que les sean conocidas y que se aseguren que están utilizando el punto de acceso oficial del proveedor de la conexión.
Ataque man-in-the-browser
El ataque man-in-the-browser es una variante del ataque MitM. En él, el atacante instala malware en el navegador de los usuarios de Internet con el objetivo de interceptar sus datos. Los ordenadores que no están correctamente actualizados son los que, sobre todo, ofrecen brechas de seguridad que permiten a los atacantes infiltrarse en el sistema. Si se introducen programas en el navegador de un usuario de forma clandestina, estos registran en un segundo plano todos los datos que se intercambian entre el sistema de la persona que ha sido víctima del ataque y las diferentes páginas web. De esta manera, esta modalidad de ataque hace que los hackers puedan intervenir en una gran cantidad de sistemas con relativamente poco esfuerzo. En ello, el espionaje de datos suele tener lugar, por lo general, antes de que se lleve a cabo una posible codificación del transporte de datos mediante protocolos como TLS o SSL.
La manera más efectiva de prevenir los ataques man in the browser es asegurarse que todos los componentes de software del sistema en uso están actualizados y que se reducen las vulnerabilidades por medio de actualizaciones de seguridad.
Human assisted attack
Se puede hablar de human assisted attack cuando una de las modalidades de ataque anteriores no se realiza de manera automática, sino de la mano de uno o varios atacantes en tiempo real. En la práctica, uno de estos man-in-the-middle attacks tendría lugar del siguiente modo: en cuanto un usuario de Internet inicia sesión en la página web de su banco, el hacker, que se ha colocado entre el navegador del usuario y el servidor del banco, recibe una señal. Esto le da la posibilidad de robar las cookies de sesión y la información de la autenticación en tiempo real y de conseguir, así, los nombres de usuario, las contraseñas y los códigos TAN.
Cómo prevenir los ataques man-in-the-middle
Por norma general es casi imposible que los afectados puedan reconocer la presencia de un ataque de intermediario, por lo que la prevención se convierte en la mejor forma de protección. A continuación, presentamos una recopilación de los consejos más importantes para que los usuarios de Internet y operadores de páginas web puedan minimizar el riesgo de convertirse en blanco de un ataque MitM.
Consejos para usuarios de Internet
- Asegúrate de acceder siempre a los sitios web con una conexión segura SSL/TLS. Mientras que las direcciones de Internet que empiezan con https son seguras, las que lo hacen con http suponen un riesgo para la seguridad.
- Antes de introducir las credenciales, comprueba si el certificado SSL de un sitio web está actualizado y ha sido emitido por una autoridad de certificación de confianza.
- El navegador ha de utilizarse siempre en su última versión y el sistema debe estar al día con las actualizaciones.
- Evita usar redes VPN de acceso libre o servidores proxy.
- Mantén las contraseñas actualizadas, utiliza para cada aplicación una contraseña diferente y evita utilizar contraseñas antiguas.
- Evita conectarte a redes wifi abiertas, por ejemplo, en hoteles, estaciones de tren o tiendas.
- Si no tienes más remedio que acceder a una red pública, evita descargar información, transmitir datos de inicio de sesión (por ejemplo, para la bandeja de entrada del correo electrónico o redes sociales) y realizar algún pago.
- Si el operador de un sitio web ofrece métodos adicionales para iniciar sesión de forma segura, utilízalos. Entre ellos pueden citarse la autenticación multifactor (MFA) a través de un token, por SMS o vía app en el smartphone.
- No cliques en los enlaces de correos de remitentes desconocidos, pues pueden dirigirte a un sitio web con malware.
Consejos para operadores de sitios web
- Protege siempre los datos de tus clientes con un certificado SSL actualizado de una autoridad fiable en páginas web con acceso para clientes.
- Ofrece a tus usuarios métodos adicionales para que puedan iniciar sesión de forma segura. Por ejemplo, con una autenticación multifactor a través del correo.
- Haz saber a los clientes que, en principio, nunca vas a pedir los datos de acceso a través del email y evita los enlaces en los correos que les envíes.