En el año 1990 se produjo en la ciudad de Boston un curioso robo, que a día de hoy sigue sin haber sido resuelto. El día 18 de marzo, mientras toda la ciudad estaba en la calle celebrando el desfile del día de San Patricio, dos personas disfrazadas de policías se presentaron el Museo Gartner de Boston, llamaron al timbre y pidieron poder entrar porque había algún problema de seguridad en el interior. Se les franqueó el acceso sin más comprobaciones. El resultado es que los ladrones estuvieron en el interior durante casi hora y media, redujeron a los guardias de seguridad y se llevaron 18 obras de arte por valor de 600 millones de dólares.
Con DNS puede ocurrir algo parecido. Todo el mundo piensa que el tráfico DNS es siempre legítimo, por lo que al igual que hicieron los ladrones de Boston, a los que bastó con disfrazarse de policías e identificarse como tales, el DNS puede ser utilizado para el robo de datos utilizando las adecuadas técnicas de engaño. De hecho durante muchos años se ha considerado que el tráfico DNS no necesitaba ningún tipo de inspección ni de medidas de seguridad para protegerlo.
DNS como vector de entrada de malware
Pero la realidad es otra muy distinta. Hay técnicas o tácticas que permiten a los agentes maliciosos hacerse pasar por tráfico legítimo para acceder al núcleo de los sistemas de información de una organización, y que pasan desapercibidos por los sistemas tradicionales de seguridad. El procedimiento por el cual se produce un ataque de malware a través de DNS no difiere mucho al que se utiliza con otro tipo de vectores, y se puede resumir en siete fases:
- Reconocimiento: el atacante recopila toda la información posible sobre el objetivo. Se busca el “Quien”, un usuario con privilegios de acceso al sistema, con información sensible, con vulnerabilidades, etc., y también en averiguar información sobre la infraestructura, arquitectura de TI, y todo lo que sea crítico.
- Generación del malware o “armado”: el atacante, con la información recopilada sobre vulnerabilidades y demás desarrolla el software que infectará el equipo.
- Entrega. Se envía el malware a la víctima por medio de coreo electrónico, web o cualquier otro medio. En esta fase los procesos de resolución de DNS o las técnicas de infiltración a través de DNS juega un papel muy importante
- Explotación de la vulnerabilidad para ejecutar el código malicioso en el sistema atacado. En esta fase se ven involucradas o se explotan vulnerabilidades tales como las anomalías de protocolo DNS o el secuestro de DNS
- Instalación. El malware se instala en el equipo o sistema atacado, y realiza descargas de código malicioso utilizando diferentes mecanismos como son las consultas DNS.
- Comando y Control. El malware empieza a tomar el control del sistema y realiza sus objetivos, como secuestrar archivos, o cualquier otra acción. La via que utiliza para ello es el tráfico DNS, hacer consultas DNS, resolución o Tunnelling DNS, etc.
- Acciones sobre objetivos: el atacante se hace con el control del sistema atacado y procede a realizar el robo de información, o el cifrado de archivos y petición de rescate (“ramsonware”), etc.
Exfiltración de datos y DNS Tunneling
Fue en 2012 cuando por primera vez, en la conferencia RSA, se anuncia que la funcionalidad de DNS Tunneling puede ser potencialmente peligrosa. Desde entonces ha sido protagonista de multiples usos maliciosos, que se han ido sofisticando. Su peligrosidad radica en que firewalls, sistemas de detección de intrusiones y gateways web seguras no realizan análisis completos de las transacciones DNS y no son capaces de detectar la exfiltración de datos.
Los ataques de exfiltración de datos que utilizan el túnel DNS se realizan del siguiente modo: El atacante registra un dominio en Internet y configura un servidor DNS que responda a ese dominio y que actúe como endpoint de ese túnel. Es decir, el punto al que llegará la información exfiltrada y enviada por los dispositivos infectados que tratan de sustraerla. Y lo hacen enviando la información robada dentro de la propia transmisión de DNS, de forma encriptada, usando una clave pública, codificada (usando algoritmos como Hex, Base32 o Base64), dividida en chunks de hasta 63 caracteres (que es el límite de la etiqueta de DNS). De este modo, la información es exfiltrada, atravesando todos los controles de seguridad de la compañía, bien directamente, atravesando los firewalls, o bien indirectamente a través de proxies. Una vez que el servidor del atacante recibe todos los fragmentos de datos, los desencripta utilizando una clave privada y reconstruye los archivos robados.
DGA – Domain Generation Algorithm
Es una vuelta de tuerca más a este sistema de ataque, que permite a los atacantes mantenerlo en el tiempo, incluso en el caso en que el dominio malicioso sea detectado y bloqueado. Los ciberdelincuentes consiguen burlar estas medidas estableciendo en el servidor un mecanismo que genera dominios automática y aleatoriamente, utilizando un algoritmo. La máquina infectada, que también cuenta con código DGA, contacta automáticamente con los nuevos dominios generados, cada cierto tiempo. Muchas de esas consultas serán fallidas por diversos motivos, pero tarde o temprano consigue contactar y estará operativo hasta que otro nuevo entre en operación, lo que dificulta la identificación de los mismos.
Un mecanismo similar, aunque en cierta medida es el procedimiento inverso a DGA es el denominado Fast Flux. Consiste en que para un mismo dominio, cada cierto tiempo se va cambiando la dirección IP. El objetivo es burlar las medidas de seguridad tradicionales y contactar con redes botnet o con dispositivos personales. Tarde o temprano contactan con algún dispositivo botnet o de usuario del que pueden exfiltrar datos.
Cómo mitigar estos ataques
La estrategia optima para mitigar este riesgo del uso de procedimientos que permitan detectar los túneles DNS y la exfiltración de datos: bloqueando todas las herramientas conocidas de tunneling DNS, utilizando firewalls DNS que automáticamente bloquean los túneles conocidos y dominios creados recientemente, y el uso de alguna herramienta de análisis del comportamiento de tráfico en red en tiempo real. Es decir, actuando sobre la identidad (signature), la reputación de los dominios y el comportamiento.