El término ofuscación es habitualmente relacionado a fines ilegítimos, pero puede ser igualmente utilizado como una herramienta para mejorar la seguridad de sistemas, aplicando las técnicas asociadas, por ejemplo, a la protección frente ataques en entornos de redes.

De manera generalizada, podemos decir que existen cuatro etapas en todo ataque de red:

  1. Obtención de acceso a la red, usualmente de la manera más práctica posible
  2. Exploración de la red e identificación de hosts vulnerables, recolectando toda la información posible mediante técnicas de escaneos masivos
  3. Explotación de las vulnerabilidades encontradas para tomar control de un host
  4. Post explotación, expandiendo el ataque a otros hosts y redes internas

De todas estas fases, la defensa frente a exploraciones de red es tal vez aquella que menos atención ha recibido, debido en parte a que muchas veces se asume que cualquier atacante que haya logrado penetrar las defensas de frontera, ha logrado ya realizar un análisis exploratorio. Sin embargo, esto no tiene por qué ser así.

En este contexto, la ofuscación de la red nos permite disfrazar las características genuinas del tráfico y los dispositivos en su dominio, dificultando la tarea del atacante al momento de realizar el footprinting y fingerprinting de la red, los equipos que a ella pertenecen, y los servicios que ellos prestan.

¿En qué consiste esta fase de exploración?

Una vez que el atacante gana acceso a la red, una de las primeras cosas que intentará averiguar será la cantidad de sistemas que se encuentran en ella: qué máquinas existen y qué servicios brindan. La manera más simple de lograrlo es escanear la red, enviando paquetes ARP/echo ICMP a cada IP válida en un cierto rango, y analizando su repuesta –o ausencia de la misma.

Luego, el paso siguiente será realizar un fingerprinting de los dispositivos, estudiando las versiones de sistemas operativos con herramientas como Nmap, enviando paquetes de datos malformados que obliguen a cada sistema a responder de una manera no especificada y característica. También se intentará obtener información de los puertos abiertos, las versiones de los servicios que en ellos corren, y la posibilidad de establecer conexiones mediante, por ejemplo, escaneos TCP SYN.

El análisis de la topología de red para conocer la distancia en saltos entre cada nodo con herramientas como traceroute será importante al momento de diseñar una estrategia de pivoting y post explotación.

¿Qué desafíos presenta esta etapa de exploración a la seguridad informática?

En primer lugar, es difícil desarrollar un enfoque de detección basado en firmas, ya que a nivel de capa de red los paquetes que sustentan a las herramientas antes mencionadas no se distinguen de otros generados en la normal operatoria de la red. Es altamente probable que un enfoque de detección de firma sobre protocolos como ARP, TCP SYN, o ICMP, termine produciendo una enorme cantidad de falsos positivos.

Debemos recordar que al momento de realizar un escaneo de red el atacante ya ha logrado penetrar la red, por lo que todos los firewalls y demás defensas de frontera son en este punto inservibles. Además, la fase de reconocimiento de red podría extenderse durante largos períodos de tiempo, o realizarse rápidamente antes que algún comportamiento anormal sea notado.

Finalmente, aunque el payload de los paquetes en la red esté correctamente cifrado, los metadatos que viajan en el mismo –por ejemplo, hora de envío y recepción del paquete- se trasladan en texto plano y pueden otorgar al atacante valiosa información sobre las comunicaciones que tienen lugar en la red.

Ofuscando la red

Es en este punto donde la ofuscación de la red –también llamada esteganografía de red- entra en juego. Consiste en la aplicación de diversas metodologías para lograr encubrir las verdaderas comunicaciones que tienen lugar en la red, permitiéndonos engañar al atacante durante la etapa de exploración.

Algunas técnicas se sustentan en la modificación de las funciones de los protocolos de red, como aquellas sobre el manejo de errores o la definición del tipo de datos a enviarse, basándose mayormente en la imperfección de los canales de comunicación como medio para el encubrimiento de los efectos introducidos por las alteraciones realizadas.

Otro enfoque se cimenta en la inclusión de nodos falsos con el objeto de impedir al atacante distinguir entre éstos y los equipos de red reales. De la mano de herramientas como Nova, podemos generar incontable cantidad de hilos de ejecución capaces de responder como verdaderos equipos informáticos, simulando peticiones y respuestas a servicios en base a un script que define su operatoria desde el punto de vista de la capa de red.

Entonces, imaginemos un ataque de exploración a una red no ofuscada, utilizando Nmap y Zenmap. Un atacante que haya conseguido acceso podría estudiar los diferentes equipos conectados, y sobre cada uno de ellos, las características analizadas al comienzo de este artículo.

zenmap
Sin embargo, si la red es ofuscada creando nodos falsos que responden al tráfico de red como verdaderos sistemas operativos, el atacante no podrá discernir la auténtica topología de red, ni sabrá cuáles de estos equipos realmente existen.

zenmap_red
Nova además posee otras funcionalidades, como la posibilidad de entrenar al sistema bajo un esquema de machine learning para detectar posibles ataques según patrones de tráfico, indicándole a la aplicación qué comportamientos categorizan como benignos, y cuáles como hostiles.

nova_trafico

Conclusión

La ofuscación de redes es una gran aliada al momento de dificultar la tarea de los atacantes. Si bien algunas técnicas basadas en la modificación de protocolos de red requieren mayor habilidad, también podemos encontrar herramientas fáciles de utilizar, o bien diseñar scripts sencillos e igualmente eficientes.