Locky, un troyano cifrador de alcance mundial

Contenidos

En febrero de 2016 Internet se vio sacudido por la epidemia del nuevo troyano cifrador Locky (detectado por Kaspersky Lab como Trojan-Ransom.Win32.Locky). La intensa propagación de este malware no cesa hasta hoy: los productos de Kaspersky Lab registraron que este troyano intentó infectar equipos de usuarios en 114 países en todo el mundo.

El análisis de los ejemplares capturados mostró que se trata de un representante de una nueva clase de extorsionadores, escrito desde cero.

Pero, ¿qué es Locky y cómo protegerse de él?

Propagación

Para propagar el troyano, los maleantes hacen envíos masivos de spam con descargadores de malware adjuntos.

Al principio, los mensajes de spam maliciosos contenían un archivo doc adjunto con un macro que descargaba y ejecutaba el troyano Locky desde un servidor remoto.

Locky, un troyano cifrador de alcance mundial

Mensaje de los primeros envíos con un malicioso documento adjunto

Locky, un troyano cifrador de alcance mundial

Fragmento del macro malicioso

Los productos de Kaspersky Lab detectan los archivos con macros maliciosos como Trojan-Downloader.MSWord.Agent y HEUR: Trojan-Downloader.Script.Generic.

Merece la pena destacar que en las últimas versiones de MS Office, por razones de seguridad, está prohibida la ejecución automática de macros. Sin embargo, la experiencia ha demostrado que los usuarios a menudo activan los macros de forma manual, incluso en los documentos de origen desconocido, lo que acarrea consecuencias negativas.

En la actualidad, continúa el envío de spam malicioso, pero los mensajes ya no vienen con archivos doc, sino con archivos zip, que contienen uno o más scripts ofuscados en el idioma JavaScript. El idioma de la mayoría de los mensajes es el inglés, pero también hay versiones bilingües.

Locky, un troyano cifrador de alcance mundial

Mensaje en inglés con un archivo adjunto

Locky, un troyano cifrador de alcance mundial

Mensaje en alemán e inglés con un archivo adjunto

A la víctima se le propone ejecutar el script de forma manual.

Locky, un troyano cifrador de alcance mundial

Contenido del archivo adjunto al mensaje

Locky, un troyano cifrador de alcance mundial

Fragmento del script del archivo

Una vez lanzado, el script descarga y ejecuta el troyano Locky desde un servidor remoto.

Los productos de Kaspersky Lab detectan estos descargadores de scripts como Trojan-Downloader.JS.Agent y HEUR: Trojan-Downloader.Script.Generic.

Territorios de los ataques

Según KSN, se reportaron ataques de Locky en 114 países.

TOP 10 países

País Cantidad de usuarios atacados
Francia 469
Alemania 340
India 267
EEUU 224
República Sudafricana 182
Italia 171
México 159
Brasil 156
China 126
Vietnám 107

Tenga en cuenta que la presente estadística sólo incluye las detecciones del troyano en sí, y que no toma en cuenta las detecciones de etapas más tempranas del ataque (spam malicioso y descargadores).

map_1_sp

Geografía de Trojan-Ransom.Win32.Locky (número de usuarios atacados)

Como podemos ver, el troyano lanza ataques en casi todas las regiones. Podemos hacer suposiciones sobre cuáles fueron los países a los que los delincuentes apuntaron en primer lugar basándonos en la lista de idiomas presente en la página de pago del rescate (que veremos más adelante).

Esquema de funcionamiento del troyano:

El troyano Locky es un archivo ejecutable de aproximadamente 100 kb. Está escrito en C++ utilizando STL y compilado en MS Visual Studio. Después de iniciarse, se copia a la carpeta% TEMP% \svchost.exe y elimina de su copia el flujo NTFS Zone.Identifier (esto se hace para que cuando se ejecute el archivo, Windows no muestre en pantalla ninguna advertencia de que el archivo se descargó de Internet y representa un potencial peligro). A continuación, el troyano se ejecuta desde el directorio % TEMP%.

Al ejecutarse, el troyano comprueba la existencia y el contenido de las claves del registro enumeradas a continuación.

Ruta Tipo Valor
HKEY_CURRENT_USER\Software\Locky\id REG_SZ Identificador de infección
HKEY_CURRENT_USER\Software\Locky\pubkey REG_BINARY Clave pública RSA en formato MSBLOB
HKEY_CURRENT_USER\Software\Locky\paytext REG_BINARY Texto que se muestra a la víctima
HKEY_CURRENT_USER\Software\Locky\completed REG_DWORD Estado (si se completó o no el cifrado)

Si en las claves de registro ya hay datos (por ejemplo, si ya se inició el malware en otra ocasión, pero su funcionamiento fue interrumpido), Locky las leerá y seguirá ejecutando la infección.

Pero si se trata de la primera ejecución, el troyano realiza las siguientes acciones:

  1. Se conecta con el servidor de administración y envía un informe sobre la infección;
  2. Recibe del servidor la llave abierta RSA-2048 y el ID de la infección, y los almacena en el registro;
  3. Envía al servidor información sobre el idioma del sistema operativo infectado, recibe el texto con las exigencias de los atacantes, que más tarde se mostrará a la víctima, y los almacena en el registro;
  4. En los discos locales, busca y cifra los archivos con determinadas extensiones;
  5. Elimina las instantáneas (“shadow copies”) de los archivos;
  6. Se inscribe en la lista de ejecución automática (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run);
  7. En las unidades de red (entre ellas, en los directorios de red que no tienen asignada una letra de unidad), busca y cifra los archivos con determinadas extensiones;
  8. Muestra a la víctima las exigencias de los delincuentes;
  9. Termina su proceso y se borra a sí mismo.

Locky, un troyano cifrador de alcance mundial

Fragmento de código que extrae información sobre el idioma del sistema

Cifrado de los archivos

El malware utiliza una lista de extensiones para buscar archivos y cifrarlos.

Locky, un troyano cifrador de alcance mundial

Lista de extensiones de los archivos para cifrar

Para cada archivo encontrado, Locky genera una nueva clave de 128 bits y cifra el contenido del archivo con el algoritmo AES-128 en modo CTR. El archivo cifrado recibe un nombre tipo <ID 16 caracteres hex> <16 caracteres hex aleatorios> .locky. Al final del archivo se coloca la siguiente estructura:

Locky, un troyano cifrador de alcance mundial

La estructura que Locky pone al final del archivo cifrado

En la sintaxis del lenguaje C esta estructura se puede describir de esta forma:

Descripción de la estructura agregada en la sintaxis del lenguaje C

Exigencias de los delincuentes

Una vez que los archivos están cifrados, el malware muestra a la víctima un texto con las exigencias de los delincuentes.

Locky, un troyano cifrador de alcance mundial

Exigencias de los delincuentes en inglés

Locky, un troyano cifrador de alcance mundial

Exigencias de los delincuentes en alemán

El mensaje contiene la dirección del “servidor secreto” de los criminales, donde se publica la información sobre el rescate, con la exigencia de pagar por un programa para descifrar los archivos. Los cuatro enlaces del mensaje llevan al mismo sitio en la red Tor.

Durante la primera ola de propagación de Locky la página de pago del rescate lucía así:

Locky, un troyano cifrador de alcance mundial

Página de Locky con los términos y condiciones de pago del programa de descifrado (primera versión)

En esta página los atacantes proponían pagar con Bitcoins por el programa para descifrar los archivos cifrados en el equipo de la víctima. Y daban recomendaciones sobre dónde y cómo obtener la criptomoneda.

Posteriormente, cambiaron el diseño y el contenido de la página. Hoy en día admite más de dos docenas de idiomas (en la lista desplegable) y tiene el siguiente aspecto:

Locky, un troyano cifrador de alcance mundial

Página de pago de rescate de Locky (versión moderna)

Si nos fijamos en el código fuente de esta página, veremos una lista completa de los idiomas admitidos. Obviamente, los países donde se hablan estos idiomas son el blanco al que los delincuentes apuntan con el troyano extorsionador. Es curioso que en la lista no estén presente ni Rusia, ni los países de la Comunidad de Estados Independientes. Al parecer, por alguna razón, los atacantes no buscan atacar a las víctimas en estos países, como lo confirman las estadísticas KSN.

Locky, un troyano cifrador de alcance mundial

Lista de los idiomas admitidos en la página de pago de rescate de Locky

Comunicación con el servidor de administración

El código del troyano contiene de una a tres direcciones IP de servidores de administración. Además, el programa malicioso cuenta con un algoritmo para generar nuevas direcciones de servidores de administración (DGA, domain generation algorithm), según el día, el mes y el año. Con este algoritmo se generan 6 direcciones de servidores de administración (C&C) por día. En la siguiente figura se muestra el pseudocódigo que ilustra el algoritmo DGA de Locky.

Locky, un troyano cifrador de alcance mundial

Seudocódigo del algoritmo de generación de direcciones de servidores de administración de Locky

La interacción con el servidor de administración se realiza mediante HTTP. El troyano envía una solicitud POST a una dirección tipo http: // <cnc_url> /main.php. Los datos se cifran con un algoritmo simétrico simple.

Veamos los posibles tipos de parámetros que se transmiten.

  1. Notificación sobre la infección y solicitud de envío de clave.
    id = <id de la infección>
    &act=getkey&affid=<id del asociado, incluido en el cuerpo del troyano>
    &lang = <idioma del sistema>
    &corp=<sistema operativo corporativo>
    &serv=<¿es corporativo el sistema operativo?>
    &os=<versión del sistema operativo>
    &sp=<versión del service pack del sistema operativo>
    &x64=<bits del sistema operativo>

    A juzgar por el parámetro affid, Locky se propaga mediante un programa de afiliados.

  2. Envío de la lista de rutas cifradas.
    id = <id de la infección>
    &act=report&data=<lista de rutas>

    Por cada disco procesado, el troyano envía al servidor una lista de todas las rutas de acceso a todos los archivos cifrados.

  3. Envío de estadísticas de cada disco procesado.
    id = <id de la infección>
    &act=stats&path=<ruta>
    &encrypted=<número de archivos cifrados>
    &failed=<número de errores>
    &length=<tamaño total de los archivos cifrados>

Vale decir que el malware recopila estadísticas muy detalladas de cada infección. Las otras familias de malware extorsionador que analizamos anteriormente no eran tan escrupulosas.

Contramedidas

Los productos de Kaspersky Lab brindan protección contra el troyano extorsionista Locky en todas las etapas del ataque:

  • El módulo antispam detecta los mensajes enviados por los distribuidores del troyano;
  • Los descargadores de scripts los detectan las firmas estáticas y heurísticas del antivirus de correo electrónico y de archivos, asignándoles el veredicto de Trojan-Downloader.MSWord.Agent, Trojan-Downloader.JS.Agent, HEUR: Trojan-Downloader.Script.Generic;
  • El archivo ejecutable del troyano lo detectan las firmas del antivirus de archivos, asignándole el veredicto de Trojan-Ransom.Win32.Locky;
  • Las muestras desconocidas de Locky las detecta de forma proactiva el módulo System Watcher (Supervisión del sistema) con el veredicto PDM:Troyan.Win32.Generic.

Cómo prevenir la infección

Locky es un típico troyano extorsionista, que por su estructura interna y principios de operación no se diferencia mucho de las demás familias de codificadores. Pero lo que atrajo la atención de los investigadores fue la propagación tan activa y generalizada de este programa malicioso. Según los datos de KSN, los productos Kaspersky Lab repelieron ataques de Locky en más de 100 países de todo el mundo. Hasta ahora ningún otro troyano extorsionista había atacado tantos países al mismo tiempo.

Para evitar convertirse en una víctima de este troyano cifrador, hay que tomar las siguientes medidas preventivas:

  • No abrir los adjuntos de correo electrónico en mensajes de remitentes desconocidos;
  • Hacer copias de seguridad de sus archivos a intervalos regulares y almacenarlos fuera del equipo en memorias extraíbles, o en repositorios en la nube;
  • Actualizar oportunamente las bases antivirus, el sistema operativo y demás programas en el equipo;
  • Mediante el control de acceso a las carpetas compartidas de red, crear una carpeta de red aparte para cada usuario.

Para obtener más información sobre la protección contra troyanos cifradores, visite este enlace.

Publicaciones relacionadas

Hay 1 comentario
  1. Valentin Cornejo

    Estimados yo estoy teniendo problemas con el RSA4096 Ijnunvkgnnui.exe
    podrían decirme cual es la solución a este virus que cifra los archivos.

    Saludos.-

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *