Archivo de la etiqueta: MiM

Ataques Man-in-the-middle

Se denominan ataques Man-in-the-middle (cuya traducción al español podría ser «Ataques de intermediario»), que suelen acortarse usando las siglas como MiM o mitm, a una categoría de ataques que lo que buscan es que el atacante tenga la capacidad de leer, modificar los mensajes entre los dos interlocutores e incluso insertar sus propios mensajes en la comunicación. El gran peligro de este tipo de situaciones es que los dos interlocutores originales no saben que hay un elemento intermedio en su comunicación y que puede alterar la información a voluntad.

Ejemplo de MiM

Fuente imagen: Wikimedia Commons

El hecho de simplemente cifrar las comunicaciones entre los dos interlocutores no tiene porqué solventar esta situación. En la Wikipedia tenéis un ejemplo muy claro de cómo una un elemento intermedio (Mallory) puede interceptar la comunicación entre Allice y Bob aunque ambos creen estar en un entorno seguro y cifrado.

Aunque este comportamiento puede parecer teórico, en realidad no es difícil de detectar en el mundo real. Uno de las principales consejos de seguridad informática es que nunca conectemos nuestros equipos (portátiles, teléfonos móviles, etc.) a redes desconocidas ya estén abiertas o no. No es técnicamente difícil para un usuario malintencionado montar una red «Free-Wifi» en un espacio público permitiendo que los usuarios se conecten a ella. Una vez los usuarios se han conectado a dicha web basta con hacer que todo el tráfico saliente a Internet pase por nuestro equipo y convertirnos en Mallory. En este momento el atacante tiene acceso completo a la información que circula por la red, salvo que ésta vaya cifrada.

Defensas ante ataques Man-in-the-Middle

Pirata montando MiM

Un pirata montado un ataque MiM 🙂 Fuente imagen:Simmone Tocco

En la actualidad existen protocolos de comunicaciones que permiten un intercambios de claves de cifrado seguras aún usando un medio inseguro y sin tener un conocimiento previo entre los interlocutores: probablemente el protocolo de claves más utilizado sea Diffie-Hellman. Si las comunicaciones utilizan cifrado de clave pública sería suficiente con confirmar la autenticidad y propiedad de las claves intercambiadas con los sistemas de Certificate pinning.

Algunos estudios muestran la posibilidad de detectar la existencia de un sistema intermedio calculando la latencia en las comunicaciones cifradas. Se basan en que el trabajo de cifrado y descifrado de Mallory hace que las comunicaciones tenga una latencia mayor pero que dicha latencia sea casi constante (generada por el trabajo de descifrado, análisis y recifrado del punto intermedio). EL problema de este enfoque es que presupone un alto grado de estabilidad en la red que haga que la latencia no sufra fluctuaciones por el comportamiento normal de la red, por loq ue no sería aplicable en una red tipo Internet pero sí en entornos cerrados (redes corporativas, etc.).

DHCP snooping

Se utiliza la expresión DHCP Snooping para definir una serie de técnicas que permiten asegurar que únicamente los servidores DHCP autorizados estén funcionando en una red.

Logo DHCP

Logo DHCP
Fuente imagen: IES Haría

El intento de hacer funcionar servidores DHCP no autorizados (DHCP Rogue) se conoce como DHCP Spoofing.

El servicio de DHCP (Dynamic Host Configuration Protocol)  es de uso casi imprescindible para cualquier red de uso común: permite que los equipos se unan a una red de forma automática y sin necesidad de configuración manual. Así ya no hace falta que un administrador de la red configure todos y cada uno de los equipos para poder trabajar. Su uso está tan extendido que muchas veces lo damos por supuesto: cuando llegamos a casa nuestro teléfono móvil se conectar a la red WiFi sin que tengamos que hacer nada (salvo poner la contraseña la primera vez) y nadie se pregunta porqué.

Porqué proteger el servicio DHCP

Como hemos visto el servicio DHCP permite la configuración de cualquier ordenador que se conecte a una red y parte de esa configuración suele ser la puerta por defecto y los servidores DNS que debe utilizar. Los ataques tipo Man-In-the-Middle buscan forzar que el tráfico legítimo pase por sus sistemas y una de las formas de hacerlos es precisamente engañando a los equipos para que usen sus servicios como puerta de enlace o sus DNS. Así si queremos asegurar que los equipos se conecten a nuestra red lo hagan con una configuración segura deberemos proteger el servicio DHCP para que únicamente funcione el sistema oficial y no sea posible crear un sistema falso.

Debilidades del funcionamiento DHCP

Antes de proteger nada, hay que revisar el funcionamiento básico del protocolo DHCP y cuáles son sus puntos débiles.

A grandes rasgos el funcionamiento de DHCP que permite que cualquier equipo se conecte de forma automática a una red sería:

  1. Un equipo se conecta a una red (bien porque se arranca un equipo apagado, bien porque conectamos nuestro móvil a una red Wifi, etc.)
  2. El equipo (cliente) envía un mensaje de difusión (broadcast), que llegará a todos los equipos de esa red, solicitando información sobre la propia red.
  3. El servidor DHCP (o el elemento delegado), y únicamente él, le responderá con un mensaje directo con la información de autoconfiguración que necesita para trabajar.
  4. El cliente configurará sus parámetros con la información recibida del servidor.
Ataque DHCP Spoofing

Ataque DHCP Spoofing
Fuente imagen: RSTUT

La petición del cliente se envía en modo difusión por lo que todos los equipos de la red detectan esa petición. Esto es necesario porqué el nuevo equipo no sabe cómo está montada la red, así que la única opción es enviar la petición de forma que todos los equipos la puedan recibir. el protocolo supone que únicamente responderá a la petición el servidor DHCP y el resto de equipos simplemente la ignorarán, pero ¿qué pasa si un equipo malicioso responde a esa petición? Pues que el nuevo cliente se autoconfigurará con los parámetros que le haya enviado dicho equipo malicioso (el cliente no conoce la red así que no puede saber a priori quién es el servidor DHCP). Esta técnica es conocida como DHCP Spoofing.

Motivos para el DHCP Spoofing

¿Para qué querríamos falsear los datos de configuración de los nuevos equipos que se conecten a la red? Estos son los principales usos de un DHCP spoofing:

  • Hacer creer a un nuevo equipo que nosotros somos su proxy de navegación: Así conseguiremos que el ordenador nos envíe su navegación web a nosotros que podremos analizarla.
  • Hacer creer al nuevo equipo que somos su puerta de enlace: Así todo el tráfico del equipo que salga de la red local pasará por nuestro equipo. Esta opción incluye más tráfico que no sólo el web.
  • Asignarle servidores DNS maliciosos: Podemos redirigir al usuario a nuestros servidores cuando el equipo solicite la resolución de nombre de dominio. Así el usuario creer estar entrando en su banco, cuenta de correo electrónico, etc. cuando en realidad lo está haciendo a una web falsa.
  • Asignación de prefijos telefónicos: Es posible propagar a los teléfonos IP un prefijo de llamada de tal forma que redirijan las llamadas salientes a una numeración especial que tenga un mayor coste.

Si bien las tres primeras opciones son las más habituales pero el protocolo define bastantes opciones de autoconfiguración que pueden ser falseadas con fines maliciosos.

Protección por DHCP Snooping

Como hemos visto el protocolo DHCP se pone en funcionamiento cuando un equipo se conecta a una red de la que desconoce cualquier tipo de información, por lo que no es posible delegar la seguridad del sistema en el cliente ya que simplemente no tiene información alguna de la red. Igualmente hemos visto que el tráfico de petición de información es, y debe ser, visible por toda la red por lo que cualquier equipo conectado a la red puede actuar de forma maliciosa, lo cual impide que deleguemos la seguridad del sistema en el propio servidor. Así pues la seguridad de DHCP queda en manos de los propios equipos de red (swithces y routers, principalmente).

Las diferentes técnicas de protección que componen el DHCP Snooping son las siguientes:

Funcionamiento de los puertos confiables.

Funcionamiento de los puertos confiables.
Fuente imagen: Cisco

  1. Definir, de forma fija y estática, cuáles son los servidores DHCP oficiales de la red. De esta forma cuando un equipo de red detecta tráfico del protocolo DHCP que no se ha originado en uno de los servidores oficiales puede descartarlo.
  2. Definir desde qué interfaces puede generarse tráfico DHCP. Podemos indicarle a los equipos de red, desde cuáles de sus interfaces son confiables y se puede recibir tráfico DHCP. De esta manera si el equipo detecta tráfico de dicho protocolo que se origina desde una posición no confiable puede descartarlo. Así si un equipo de usuario responde a una petición de DHCP el equipo de red más cercanos a él lo detecta y elimina dicho tráfico (y puede bloquear la toma de red, avisar al administrador, etc.).
  3. Delegación de DHCP. Es posible unificar la gestión del DHCP en un servicio externo que no esté dentro de la red local propia (p.e. empresas con diferentes oficinas interconectadas pero con el servicio centralizado en la sede central) de tal forma que los equipos de red descartarían cualquier paquete DHCP local.