jueves, noviembre 19, 2015

Blaster versus Welchi: Modelado del malware competitivo

Normalmente cuando leemos un documento que analiza malware, solemos ver que se describe el comportamiento de un determinado virus de manera aislada. Es decir, se describe su efecto, las vulnerabilidades que usa, impacto sobre el rendimiento del sistema, etcétera, como si el virus estuviera aislado en un solo equipo. Y esto no es así siempre. Una misma vulnerabilidad puede ser utilizada por diferentes tipos de malware e incluso un sistema que no está correctamente protegido o actualizado puede presentar diferentes vulnerabilidades, y por lo tanto ser infectado por varios virus.

Figura 1: Blaster vs Welchi

Típicamente, el malware se mueve en un ecosistema cuya dinámica es similar a la que tienen los los virus biológicos. Compiten entre sí por los recursos, se crean asociaciones de malware que hacen más efectivo el ataque, o bien, al competir entre sí - a veces en autenticas guerras de bots - , minimizan su capacidad de propagación o hacen más evidente su presencia, facilitando su detección. Esto ha inspirado varios trabajos de investigación en los que se analizan diferentes modelos que permiten predecir el comportamiento de este tipo de colaboraciones o de competiciones. Para éste artículo, hemos analizado el comportamiento de dos virus reales WelchiBlaster que responden a este patrón de comportamiento.

Figura 2: The Ecology of Malware. En este paper se describen
comportamientos competitivos en el malware.

Welchi infecta usando una vulnerabilidad de los nodos asociada al puerto 135 en sistemas opertivos Microsoft Windows sin parchear. Cuando infecta el equipo hace varias cosas, entre las que está inmunizar al sistema con cierta probabilidad (¡más eficiente que algunos antivirus!), bajándose el parche. Además busca a otro virus e intenta acabar con él, en concreto el Bláster. Éste, por otro lado, usa esa vulnerabilidad, pero no inmuniza. Sí que produce un efecto llamativo, y reinicia la máquina varias veces. Este comportamiento se acaba notando, y desencadena que los encargados de la monitorización terminen por detectar la infección y cierren ese puerto, inmunizando el nodo para los dos virus. La probabilidad de inmunización total es más pequeña que la anterior.

En nuestro trabajo estamos describiendo un modelo matemático que permite realizar simulaciones, y lo mejor de todo, descubrir qué parámetros permiten ralentizar o destruir la propagación de un virus. Basándonos en éste comportamiento, hemos diseñado varios modelos - Javier Galeano, Sara Cuenda y yo - basados en modelos de propagación de infecciones SIR modificado y usando técnicas de redes adaptativas. En estos modelos hay una estructura espacial en la que cada nodo representa un equipo o un sistema y los enlaces relaciones entre esos nodos. Cada uno de los nodos puede estar en varios estados, en nuestro caso, Susceptible a la infección del Virus 1, Susceptible para el Virus 2, Infectado por Virus1, Infectado por Virus2 y Recuperado. Una vez el nodo se encuentra en estado recuperado, el nodo está inmunizado.



Figura 3: Modelado de comportamiento competitivo del malware

Para el modelo, consideramos que hay una misma probabilidad de infección por Blaster o Welchi en primera instancia. Una vez infectado por Welchi, hay una probabilidad de inmunización total, pero si se ha infectado por Blaster, hay otra probabilidad de inmunización total distinta. Se asocia al nodo una cierta probabilidad de recuperación, que es igual para ambos. Y hay una probabilidad adicional de recuperación respecto sólo a Blaster, Welchi lo destruye. Pero es independiente de la inmunización.

En la simulación, en cada paso se analiza si un nodo es susceptible al Virus1, si los vecinos conectados directamente con este nodo están infectados por Virus1, y se calcula si se infecta o no en función de las probabilidades definidas; y si es susceptible a Virus2, y está conectado a vecinos con esa infección de la misma manera. Se analiza también la recuperación, y en concreto si está infectado por ambos, existe una probabilidad de que el Virus2 desaparezca, gracias a las propiedades del Virus1 que busca y destruye al competidor.

Figura 4: Evolución de comportamiento de los virus en el modelo

Los resultados son bastante interesantes, sobre todo porque permiten definir un modelo general, que vale para todo tipo de pared de malware. Sólo hay que caracterizar las probabilidades de infección y de recuperación. Esto permite realizar predicciones, establecer planes de diseño de redes más resistentes a propagación de malware, reconcimiento de los nodos críticos, etcétera.

Autor: Rafael Vida
Security Researcher en Telefónica

Entrada destacada

Infraestructuras Críticas y Sistemas Industriales: Auditorías de Seguridad y Fortificación de @0xWord

Desde hoy está disponible a la venta un nuevo libro de 0xWord centrado en la seguridad de los Sistemas Industriales y las Infraestructuras...

Entradas populares