El siguiente post es una traducción de la publicación Malware evolving to defeat anti-DDoS services like CloudFlare? escrita por Alexis Dorais-Joncas y publicada en Welivesecurity.

¿Podría un código malicioso desarrollado para perpetrar ataques distribuidos de denegación de servicio evolucionar para evadir servicios de protección anti-DDoS como CloudFlare? Por lo general no observamos novedades con respecto a este tipo de códigos maliciosos sino técnicas básicas de flooding como TCP Sync, ping floods y floods HTTP. Para evitar tales incidencias, existen varios productos y servicios disponibles para proteger sitios de ataques DDoS y CloudFlare es un ejemplo. Cuando analizamos este nuevo código malicioso detectado por los productos de ESET como Win32/DoS.OutFlare.A, no pensamos en que descubriríamos algo interesante o digno de destacar. Sin embargo, notamos una característica que no habíamos visto antes: una rutina desarrollada específicamente para evadir el servicio anti-DoS CloudFlare.

Modus operandi de Win32/DoS.OutFlare

De ser ejecutado, el malware intentará crear un mutex con la cadena “Globalsad_day”. En caso de lograrlo procede a copiarse en %APPDATA% y agrega una entrada de registro para iniciarse con la carga del sistema operativo. Posteriormente, el nuevo proceso carga iexplore.exe en modo suspendido e inyecta su payload ofuscado con una llamada de redireccionamiento API en dicho proceso. El flujo de llamada también está ofuscado en el sentido que cada función principal es solicitada desde la llamada CreateThread.

Create Thread

Antes de contactarse con su Centro de Comando y Control (C&C), OutFlare realiza tres pruebas de velocidad de conexión de subida utilizando un servicio público (www.speakeasy.net). Luego, almacena estos datos en memoria. Una vez que este procedimiento ha sido completado, el bot intentará conectarse a un servidor IRC en el dominio 7.[redacted].lt (7.nnn.nnn.nnn en el momento del análisis) en el puerto TCP 9835 para unirse al canal #main. En esta etapa el bot queda inactivo a la espera de instrucciones específicas. La mayoría de estos comandos están relacionados con varias técnicas de ataques DoS, siendo la orden “cf” particularmente interesante.

Métodos del bot

Técnicas DoS

“cf” es una rutina especial diseñada para evadir el mecanismo de protección de CloudFire desde el lado del cliente. Para entender este sistema de evasión es necesario comprender algunos aspectos básicos del funcionamiento de CloudFlare.

¿Cómo funciona CloudFlare?

CloudFlare es un servicio muy popular que añade velocidad, confiabilidad y protección a los sitios web que lo implementan. A continuación se muestra un extracto de la descripción de CloudFlare disponible en el sitio web de la compañía:

CloudFlare protege y acelera cualquier sitio en línea. Una vez que su página pasa a formar parte de la comunidad CloudFlare, su tráfico web es direccionado a través de nuestra red global. Automáticamente optimizamos la carga de su sitio para que los visitantes obtengan tiempos de cargas más rápidos. También bloqueamos amenazas y limitamos bots abusivos y crawlers que gastan ancho de banda y recursos del servidor”.

Una de las técnicas utilizadas para proteger a los clientes de CloudFlare es validar que las peticiones provengan de un navegador web legítimo. Ellos implementan una simple pero inteligente forma de hacer esto forzando al cliente a evaluar un Javascript para resolver un problema matemático alojado en la infraestructura del servicio. A continuación se muestra un ejemplo. En la primera visita a un sitio protegido por CloudFare, el navegador del cliente muestra la página de prueba:

Página de prueba

Dicha página contiene un formulario POST especial y oculto para enviar la respuesta del problema matemático.

Formulario del problema matemático

Justo debajo hay un snippet en Javascript que calcula una operación matemática sencilla y luego realiza un POST al formulario anterior.

Script de cálculo

Un navegador normal interpretaría este código Javascript y produciría una petición HTTP POST similar a este con la respuesta al cálculo:

POST de respuesta

Si la respuesta es correcta, la infraestructura de CloudFlare contestará con un POST y una cookie. Cualquier petición HTTP futura que incluya esta cookie salteará el problema matemático y permitirá que se visite el sitio directamente.

Cookie

Evadiendo el test Javascript

A simple vista parece un problema matemático trivial para cualquier navegador, sin embargo, no lo es para un sencillo script DoS. En este sentido, Win32/DoS.OutFlare.A es innovador al implementar algunas funcionalidades para obtener la cookie y poder realizar el ataque DoS en contra del servidor web real.

Extrayendo la operación matemática

Extracción del cálculo

Calculando la operación matemática

Calculando operación matemática

Conclusión

Los administradores del dominio atacado por este malware han sido contactados el 8 de febrero de 2013 sobre lo que parece ser un subdominio malicioso registrado sin el consentimiento de ellos. También contactamos a CloudFlare. La compañía indicó que se adoptaron medidas defensivas para neutralizar este tipo de incidentes y que están constantemente desarrollando nuevas técnicas para combatir ataques DDoS en sus clientes.

Debido a la popularidad de CloudFlare y servicios similares, es comprensible que las amenazas desarrolladas para realizar ataques DoS evolucionen para evadir estos sistemas de protección, sin embargo, CloudFlare y otros servicios también lo hacen para mejorar su efectividad. Aunque podemos estar ante una guerra entre servicios anti-DDoS y malware DoS, la cooperación continua entre la industria de la seguridad y los investigadores podría dificultar el funcionamiento y evolución de estos códigos maliciosos.

La opinión del CEO de CloudFlare Matthew Prince puede ser consultada en su publicación When the Bad Guys Name Malware After You, You Know You're Doing Something Right.

Traducido y adaptado por André Goujon
Especialista de Awareness & Research