Uno de los ejemplos de cosas chocantes pero muy comunes que nos encontramos en diferentes redes cuando realizamos tests de intrusión es la variopinta cantidad de servicios presentes en las redes DMZ. En su definición más sencilla, una DMZ es una red que se encuentra expuesta a las conexiones entrantes de Internet, y por ello queda recluida en un segmento de red cuyo tráfico saliente se encuentra lo más restringido posible.
Sin embargo, basándose en esta definición, los administradores de sistemas y de redes colocan en la DMZ todo tipo de sistemas sin pensar en el flujo de las comunicaciones y en los posibles ataques, lo cual tiene como consecuencia que desde ella sea posible realizar ataques muy peligrosos. Un ejemplo claro y muy extendido es la colocación de los terminadores de túneles VPN en la DMZ. Cuando un terminador de túneles se situa en la DMZ, la conexión tanto de usuarios como de otras delegaciones sigue un esquema como el siguiente:
Como se puede observar, la información viaja cifrada a través de Internet hasta el terminador del túnel, donde se descifra y se vuelve a enviar a la red corporativa atravesando la DMZ, esta vez sin cifrar, hasta los servicios internos de la organización. Sin embargo, como muchos podéis intuir ya, esta configuración presenta algunos problemas si alguno de los sistemas de la DMZ se ve comprometido. El primero es la posibilidad de realizar un Man-in-the-Middle mediante la técnica de ARP-Spoofing y situar el equipo comprometido en medio de la comunicación entre el cortafuegos y el concentrador VPN, como se puede ver en la siguiente imagen:
Realizando este tipo de ataque, seremos incapaces de descifrar las comunicaciones que vayan desde Internet hacia el concentrador VPN, pero podremos capturar dicha información descifrada en el trayecto desde el concentrador VPN y la red interna, ya que este trayecto lo realiza sin cifrar. De esta manera, seremos capaces de realizar capturas de contraseñas y demás técnicas propias de los ataques típicos en redes LAN. Existen numerosas herramientas gratuitas que realizan este tipo de ataques, como por ejemplo Ettercap en Linux y Cain en Windows, que realizan su propio análisis del tráfico capturado, proporcionando directamente las contraseñas o hashes enviados sin tener que buscarlos manualmente dentro de la captura de red.
Además de realizar estos ataques para capturar la información de conexiones activas, podemos realizar de nuevo un ataque de ARP-Spoofing (que ya no se muestra en la imagen, por claridad) y utilizar direcciones IP del rango de la VPN para intentar encontrar IPs con acceso a servicios de la red interna que no son directamente accesibles desde las direcciones de la DMZ.
Bien es sabido que el filtrado por dirección IP es algo muy poco eficaz en redes LAN, por lo que en este caso el cortafuegos no va a ser capaz de diferenciar si la conexión proviene de direcciones IP de VPN, o si es un equipo de la DMZ que ha suplantado dichas direcciones.
Como solución a este tipo de problemas podemos emplear una segunda DMZ (¿quien dijo que DMZ no hay más que una?) o terminar los túneles en el propio cortafuegos, aunque ello lo expone a la explotación de vulnerabilidades del servicio que podría comprometer toda la red, por lo que se recomienda la primera opción. En general, se recomienda pensar siempre por donde viaje el flujo de tráfico, por donde viajarán las contraseñas y de qué manera lo harán. También es recomendable intentar establecer reglas de filtrado por interfaz del cortafuegos en lugar de por IP, o en caso de realizarse por IP que las diferencias de privilegios de acceso no sean abismales. Si esto no fuera posible, intentar utilizar dos subredes diferentes.