El Domain Fronting es un tipo de técnica de enmascaramiento que abusa de un mal diseño o configuración de una organización para enrutar y redirigir las conexiones a servidores cuya identidad se quiere ocultar. Para llevar a cabo esta técnica, es necesario contar con algún tipo de acceso a los sistemas informáticos de la víctima que permita redirigir el tráfico de red al siguiente nodo de la comunicación.
Entre otras aplicaciones, esta técnica ha sido ampliamente utilizada para evadir filtros de censura y control de información en internet en países con un control férreo de los flujos de información en la red y, cómo no, en ciberataques con el objetivo de ocultar la identidad del servidor/servidores de mando y control del atacante (Command and Control). Además, desde el punto de vista del atacante, al utilizar la infraestructura de un tercero sería posible evadir filtros de reputación de IP y dominios, ampliamente utilizado en diversas soluciones tecnológicas de seguridad.
¿Quiere esto decir que cada vez que se utiliza un servidor intermedio, se está utilizando Domain Fronting?
No, el Domain Fronting es una técnica muy específica en la que se abusa de una infraestructura intermedia legítima, en la que por funcionalidad o por fallo de diseño/configuración, es posible encapsular una petición hacia un recurso externo.
Para ilustrar esta técnica se va a partir de un escenario común, en el cuál se va a abusar de los servidores frontales, empleando tráfico HTTP/HTTPS para enmascarar la comunicación. Se parte de un diagrama en el que se definen tres entornos diferentes:
- Servidores frontales: Servidores Web por los que pasarán todas las peticiones Web para ser distribuidas a los diferentes entornos de backend.
- Descarga de imágenes: Uno de los dos entornos de backend que provee servicio de descarga de imágenes a los usuarios.
- Clientes Cloud: El segundo entorno de backend que provee servicios de infraestructura cloud a clientes, en el que se encuentran servidores que los propios clientes gestionan y utilizan.
Así mismo, también se cuenta con un servidor de resolución de nombres (DNS) que será el encargado de indicar el servidor de los frontales al que se enviará la petición HTTP/HTTPS para acceder a cada uno de los servicios, por lo que en este entorno habrá dos grupos de servidores frontales, cada uno destinado a ser utilizado para acceder a un servicio diferente.
Ventajas como atacante
Con todo lo visto hasta ahora, si el atacante sustituye el recurso externo por el siguiente nodo de conexión hacia el servidor de Command and Control, se habrá conseguido enmascarar la identidad de este nodo utilizando la infraestructura anterior.
Esto tiene varias ventajas, la primera de ellas como ya se ha mencionado, es ocultar la identidad del Command and Control, pero la segunda ventaja es que, dependiendo de la infraestructura utilizada para hacer Domain Fronting, se podría evadir controles de seguridad basado en listas blancas o análisis de reputación de IPs y dominios (lo que podrá conseguir también pasar desapercibido ante un analista), consiguiendo establecer una comunicación con el Command and Control utilizando una infraestructura intermedia que no haga saltar las alarmas.
Si bien actores como el grupo APT29 (también conocido como Cozy Bear) han estado utilizando Domain Fronting como parte de sus técnicas de ataque incluso antes de que fuese una técnica ampliamente conocida para ocultar sus servidores de Command and Control, también se ha estado utilizando por aplicaciones como Telegram y Signal para evitar la censura y poder dar servicio en países como Egipto, Omán y Emiratos Árabes Unidos (UAE), utilizando para ello infraestructura de Google y Amazon.
Detectando la incongruencia Si esta técnica se realiza utilizando HTTP es relativamente fácil de detectar, ya que bastaría con cruzar los datos de las peticiones DNS con las peticiones HTTP y buscar una incongruencia en la cabecera «Host» de la petición que revelase que la petición HTTP se está realizando contra un dominio distinto al que se ha consultado por DNS.
Si la petición se realiza sin embargo mediante HTTPS, representa un escenario completamente diferente desde el punto de vista de la detección de amenazas, pues no sería posible acceder al campo “Host” de la petición salvo que se esté rompiendo el cifrado en algún punto (y siempre que el volumen de tráfico lo permita…) y compararlo con el campo SNI de la conexión TLS.
Podrían darse casos en los que fuese posible realizar la misma técnica utilizando otros protocolos diferentes a HTTP/HTTPS en función de los servicios ofrecidos por la infraestructura intermedia.
Análisis de la actualidad internacional: Domain froque la petición HTTP se está realizando contra un dominio distinto al que se ha consultado por DNS.
Si la petición se realiza sin embargo mediante HTTPS, representa un escenario completamente diferente desde el punto de vista de la detección de amenazas, pues no sería posible acceder al campo «Host» de la petición salvo que se esté rompiendo el cifrado en algún punto (y siempre que el volumen de tráfico lo permita…) y compararlo con el campo SNI de la conexión TLS. Podrían darse casos en los que fuese posible realizar la misma técnica utilizando otros protocolos diferentes a HTTP/HTTPS en función de los servicios ofrecidos por la infraestructura intermedia.
Fuentes:
- http://thiber.org/wp-content/uploads/2019/08/Numero_12_Agosto_Optimizado.pdf
- www.icir.org/vern/papers/meek-PETS-2015.pdf
- https://signal.org/blog/looking-back-on-the-front/
- https://attack.mitre.org/techniques/T1172/
- https://www.sans.org/cyber-security-summit/archives/file/summit-archive-1542139101.pdf
- https://www.theregister.co.uk/2018/04/19/google_domain_fronting/
- http://www.areopago21.org/2017/08/domain-fronting.html
- https://www.fireeye.com/blog/threat-research/2017/03/apt29_domain_frontin.html
- https://medium.com/@malcomvetter/simplifying-domain-fronting-8d23dcb694a0
Fuente: seguinfo.com.ar