Anatova Ransomware: una nueva y seria amenaza de malware para 2019
Anatova Ransomware: una nueva y seria amenaza de malware para 2019
Durante nuestra continua búsqueda de nuevas amenazas, descubrimos una nueva familia de software de rescate a la que se ha bautizado como ‘Anatova’. Anatova fue descubierta en una red privada peer-to-peer (p2p). Después de un análisis inicial, se decidió hacer público este descubrimiento.
La telemetría mostró que, aunque Anatova es relativamente nueva, ya se ha descubierto una amplia detección del hilo en todo el mundo. Creemos que Anatova puede convertirse en una amenaza seria ya que el código está preparado para una extensión modular.
Además, también comprobará si las redes compartidas están conectadas y encriptará los archivos de estas redes compartidas. Los desarrolladores/actores de Anatova son, según nuestra evaluación, autores de malware cualificados. Sacamos esta conclusión ya que cada muestra tiene su propia clave única, así como otras funciones que describiremos, que no vemos a menudo en las familias de ransomware.
Este post explicará los detalles técnicos de Anatova, así como algunos datos interesantes sobre esta nueva familia de productos de rescate.
Para el análisis se ha utilizado este hash en particular:
170fb7438316f7335f34fa1a431afc1676a786f1ad9dee63d78c3f5efd3a0ac0
El objetivo principal de Anatova es cifrar todos los archivos que pueda antes de solicitar el pago a la víctima.
Visión general de Anatova
Anatova suele utilizar el icono de un juego o aplicación para intentar engañar al usuario para que lo descargue. Dispone de un manifiesto para solicitar los derechos de administración.
Información sobre el binario
Anatova Ransomware es una aplicación de 64 bits con fecha de compilación del 1 de enero de 2019. El tamaño del archivo de este hash en particular es de 307kb, pero puede cambiar debido a la cantidad de recursos utilizados en la muestra. Si eliminamos todos estos recursos, el tamaño es de 32kb; un programa muy pequeño con un poderoso mecanismo en su interior.
Anatova dispone de unas técnicas de protección muy eficaces contra el análisis estático, lo que hace que las cosas sean un poco complicadas:
La mayoría de las cadenas están encriptadas (Unicode y Ascii), usando diferentes claves para descifrarlas, incrustadas en el ejecutable.
El 90% de las llamadas son dinámicas; sólo utilizan las siguientes APIs no sospechosas de Windows y la biblioteca estándar del lenguaje de programación C-: GetModuleHandleW, LoadLibraryW, GetProcAddress, ExitProcess y MessageBoxA.
Cuando abrimos el binario en IDA Pro (incluida la última versión de IDA) las funciones son mal detectadas, y terminan de ser procesadas después de 3 opcodes. No estamos seguros de si se trata de un error en IDA Pro o quizás los autores del malware crearon algo para causar esto a propósito (lo cual dudamos).
Vector de entrada
Por el momento no se conoce todos los vectores de entrada que Anatova está utilizando, o va a utilizar, en un futuro próximo. Nuestra localización inicial fue en p2p privado.
El objetivo de Anatova, al igual que el de otras familias de ransomware, es cifrar todos o muchos archivos en un sistema infectado e insistir en el pago para desbloquearlos. El actor(es) exige un pago de rescate en criptocurrency de 10 DASH – actualmente valorado en alrededor de $700 USD, una cantidad bastante alta en comparación con otras familias de ransomware.
Aspectos destacados de la versión 1.0
Como se trata de una familia de novelas, no encontramos ningún número de versión dentro del código, pero llamemos a esta versión 1.0
La primera acción que realiza el malware es obtener el manejo del módulo de la biblioteca «kernel32.dll» y obtener 29 funciones de ella usando la función «GetProcAddress».
Si el malware can´t obtiene el módulo handle del kernel32, o se encuentran algunas de las funciones de can´t, se cerrará sin ejecutar ninguna encriptación.
Más tarde, el malware intentará crear un mutex con un nombre con código duro, (en este caso: 6a8c9937zFIwHPZ309UZMZYVnwScPB2pR2MEx5SY7B1xgbruoO) pero el nombre del mutex cambia en cada muestra. Si se crea el mutex, y obtiene el control, llamará a la función «GetLastError» y mirará si el último error es ERROR_ALREADY_EXISTS o ERROR_ACCESS_DENIED. Ambos errores significan que existe una instancia anterior de este objeto mutex. Si ese es el caso, el malware entrará en un flujo de memoria de limpieza, que explicaremos más adelante en este post, y terminará.
Comprobar el mutex
Después de esta comprobación, Anatova obtendrá algunas funciones de las librerías «advapi32.dll», «Crypt32.dll» y «Shell32.dll» utilizando el mismo procedimiento que en el caso del núcleo. Todo el texto es encriptado y descifrado uno por uno, obtener la función, liberar la memoria, y continuar con el siguiente.
Si no consigue obtener alguno de estos módulos o alguna de las funciones que necesita, pasará al flujo de la herramienta de limpieza y saldrá.
Una función interesante que descubrimos fue que Anatova recuperará el nombre de usuario del usuario registrado y/o activo y lo comparará con una lista de nombres encriptados. Si se detecta uno de los nombres, pasará al procedimiento de flujo de limpieza y saldrá.
La lista de usuarios buscados es:
- LaVirulera
- Aparato de medida
- Probador
- Psicoanalista
- Analista
- Laboratorio
- Laboratorio
- Malware
- Programas maliciosos
Algunos analistas o máquinas virtuales/sandboxes están utilizando estos nombres de usuario predeterminados en su configuración, lo que significa que el software de rescate no funcionará en estas máquinas/sandboxes.
Después de este control de usuario, Anatova comprobará el idioma del sistema. Cuando decimos lenguaje, nos referimos al lenguaje del sistema. Cuando un usuario instala el sistema operativo Windows, elige un idioma para instalarlo (aunque más tarde el usuario puede instalar un idioma diferente). Anatova busca el primer idioma instalado en el sistema para asegurarse de que el usuario no pueda instalar uno de estos idiomas en la lista negra para evitar el cifrado de los archivos.
La lista de los países a los que Anatova inicialmente no afecta son:
- Todos los países de la CEI
- Siria
- Egipto
- Marruecos
- Iraq
- India
Es bastante normal ver a los países de la CEI excluidos de la ejecución y a menudo un indicador de que los autores podrían ser originarios de uno de estos países. En este caso, fue sorprendente ver que se mencionaban los otros países. No tenemos una hipótesis clara sobre por qué se excluye a estos países en particular.
Comprobar el idioma del sistema
Después de la comprobación de idioma, Anatova busca una bandera que, en todos los ejemplos que hemos visto, tenga el valor 0, pero si esta bandera cambiara al valor 1 (las muestras de malware actuales nunca cambian ese valor), cargará dos DLLs con los nombres (después de descifrar) de «extra1.dll» y «extra2.dll». Esto podría indicar que Anatova está preparada para ser modular o para ser ampliada con más funciones en un futuro próximo.
Cargar módulos adicionales
A continuación, el malware enumera todos los procesos del sistema y los compara con una gran lista que incluye, por ejemplo, «steam.exe», «sqlserver.exe», etc. Si se descubren algunos de estos procesos, el malware los abrirá y los terminará. Esta acción es típica de los programas de rescate que intentan desbloquear archivos que posteriormente se cifrarán, como archivos de bases de datos, archivos de juegos, archivos relacionados con Office, etc.
La siguiente acción es crear un Par de claves RSA utilizando la API criptográfica que cifrará todas las cadenas. Esta función es la misma que en otras familias de ransomware, como GandCrab o Crysis, por ejemplo. Asegura que las claves que se utilizarán sean por usuario y por ejecución. Si el malware no puede crear las claves, irá al flujo limpio y saldrá.
Después de esto, Anatova hará una clave aleatoria de 32 bits y otro valor de 8 bytes usando la función de la cripto API «CryptGenRandom» para encriptar usando el algoritmo Salsa20 y la clave privada anterior en tiempo de ejecución.
Durante el proceso de encriptación de los archivos, descifrará la clave pública RSA maestra de la muestra de 2 capas de criptografía, la primera es una XOR con el valor 0x55 y la segunda es descifrarla usando una clave hardcode e IV en la muestra usando el algoritmo Salsa20.
Descifrar desde la primera capa la clave pública RSA maestra de la muestra
Después de esto, importará la clave pública y, con ella, encriptará la clave Salsa20 y la Salsa20 IV utilizada para encriptar la clave RSA privada en tiempo de ejecución.
El siguiente paso es preparar un búfer de memoria y con toda la información encriptada (clave Salsa20, Salsa20 IV y clave RSA privada).
Hace una gran cadena en BASE64 usando la función «CryptBinaryToStringA». El software de rescate limpiará más tarde la memoria de la computadora de la clave, Salsa IV y valores de clave RSA privada, para evitar que cualquiera que descargue esta información de la memoria y cree un descifrador.
Esta cadena BASE64 se escribirá más adelante en la nota de rescate.
Sólo los autores del malware pueden descifrar la clave y el IV de Salsa20 y la clave RSA privada que el usuario necesitaría para descifrar los archivos.
Si esto no funciona, Anatova se borrará a sí misma, entrará en el flujo limpio y saldrá.
Cuando las claves están encriptadas en el buffer de memoria, Anatova enumerará todas las unidades lógicas y buscará todas las instancias existentes del tipo DRIVE_FIXED (un disco duro normal por ejemplo) o DRIVE_REMOTE (para redes compartidas remotas que estén montadas).
Anatova intentará encriptar los archivos en cada una de esas ubicaciones. Esto significa que una víctima corporativa puede causar un incidente importante cuando se encriptan los archivos de las redes compartidas.
Comprobar todas las unidades lógicas
Por cada unidad montada, ya sea de disco duro o compartida a distancia, Anatova obtendrá todos los archivos y carpetas. Posteriormente comprobará si se trata de una carpeta y, si lo es, comprobará que el nombre de la carpeta no tiene el nombre de «…» y «…», para evitar el mismo directorio y el directorio anterior.
En la lista de nombres de carpetas recopiladas, Anatova comprueba con una lista de nombres en la lista negra como «Windows», «Archivos de programa», «Archivos de programa(x86)», etc. Esto es habitual en muchas familias de ransomware, porque los autores quieren evitar destruir el sistema operativo, en lugar de centrarse en los archivos de alto valor.
Anatova hace lo mismo con las extensiones de archivos.exe,.dll y.sys que son críticas para el sistema operativo.
Verificar el nombre y la extensión del archivo
Si se supera esta comprobación, Anatova abrirá el archivo y obtendrá su tamaño, comparándolo con 1 MB. Anatova sólo encripta archivos de 1 MB o menos para evitar pérdidas de tiempo con archivos grandes; quiere encriptarlos rápidamente. Al establecer punteros al final de los archivos cifrados, Anatova se asegura de que no se cifren archivos que ya están cifrados.
A continuación, Anatova creará un valor aleatorio de 32 bits como clave para el algoritmo Salsa20 y otro valor de 8 bytes que se utilizará como IV para Salsa20.
Con estos valores, leerá todos los archivos en memoria o con un tamaño máximo de 1 MB y cifrará esta información con la clave y el IV usando el algoritmo Salsa20 (esto es muy popular últimamente porque es un algoritmo muy rápido y tiene implementaciones de código abierto).
Función de encriptación de archivos
Importará la clave pública RSA creada en tiempo de ejecución y, con ella, cifrará la clave y el IV utilizado para cifrar el archivo. A continuación, escribirá el contenido cifrado en el mismo archivo desde el principio del archivo y luego colocará el puntero al final del archivo y escribirá las siguientes cosas:
- El bloque cifrado de la clave Salsa20 se cifra con la clave RSA pública.
- El bloque encriptado del Salsa20 IV se cifra con la clave pública RSA.
- El tamaño del archivo es inferior a 1 MB.
- Un valor especial para cada muestra que aparecerá en la nota de rescate.
- Un valor especial de código duro en la muestra que es la marca de infección comprobada antes para evitar encriptar el mismo archivo dos veces.
Cuando esto se complete, Anatova escribirá una nota de rescate en la misma carpeta. Por lo tanto, si Anatova can´t cifra al menos algo en una carpeta, no creará una nota de rescate en esta carpeta, sólo en las carpetas afectadas.
Este comportamiento es diferente de otras familias de ransomware que escriben una nota de rescate en todas las carpetas.
El texto de la nota de rescate está completamente encriptado en el binario, excepto las direcciones de correo electrónico para contactar al autor o autores y la dirección a pagar.
La nota de rescate contiene el bloque base64 con toda la información cifrada que se necesita para descifrar los archivos de un bloque que comienza con la cadena «–KEY–«, así como el número de identificación.
Las víctimas que responden pueden descifrar gratuitamente un archivo.jpg de un tamaño máximo de 200kb, como prueba de que los archivos descifrados pueden ser recuperados.
Cuando todo esto esté hecho, Anatova destruirá las copias de Volume Shadow 10 veces en una sucesión muy rápida. Como la mayoría de las familias de ransomware, está usando el programa vssadmin, que requiere derechos de administrador, para ejecutar y borrar las copias shadow de volumen.
Finalmente, cuando se completen todos los pasos, el software de rescate seguirá el flujo de código de limpieza, como se describió anteriormente, principalmente para evitar descargar código de memoria que podría ayudar a crear una herramienta de descifrado.