El ransomware LockBit toma ejemplo de REvil y Maze para mantenerse actualizado
Recientemente se ha descubierto que el ransomware Lockibit está incorporando nuevas funcionalidades. Siguiendo el ejemplo de REvil y Maze, Lockbit está amenazando a sus víctimas con la publicación de los datos en el caso de que no se llegue a efectuar el pago, además de incorporar una nueva técnica de escalada de privilegios.
Atendiendo a la evolución que está teniendo el ransomware se espera que otras familias incorporen esta nueva técnica para eludir el control de cuentas de usuarios de Windows. Hasta ahora se han visto numerosas familias que eran copias de otras ya existentes, según explican en Sophos, «se ha vuelto increíblemente fácil copiar y desplegar ransomware haciendo unas pequeñas modificaciones».
La curva de aprendizaje del ransomware
Muchas familias de ransomware parecen seguir el mismo esquema a la hora del desarrollo e incorporación de nuevas funcionalidades, esto parece provenir de la curva de aprendizaje en la creación de ransomware.
Cada ransomware parece tener una primera fase o «infancia». Aquí se pone en marcha un mínimo producto viable para poder sacarlo y empezar a ganar reputación. En esta fase las cadenas suelen ser texto sin formato, el cifrado se implementa usando un solo subproceso y en algunos casos también se realizan comprobaciones de LanguageID para evitar el cifrado de archivos en equipos de la CEI (Comunidad de Estados Independientes).
Aproximadamente a los dos meses de haber desplegado la primera versión los desarrolladores empiezan a implementar mejoras en el código, por ejemplo la inclusión de varios subprocesos, ofuscación de cadenas y alguna lista para matar procesos en el sistema. Además no es de extrañar que los desarrolladores publiciten su producto en determinados foros dedicados al desarrollo de malware.
A los cuatro meses de vida el ransomware ha podido evolucionar hasta convertirse en RaaS, cambiando el modelo de negocio para los ciberdelincuentes e incorporando un programa de «afiliados». Ahora es común encontrar que los archivos han sido cifrados criptográficamente mediante certificados válidos y robados. En esta fase los desarrolladores suelen incorporar algún tipo de sistema para «bypassear» el UAC (User Account Control). Es en esta fase donde parece encontrarse LockBit.
Consiguiendo clientes
En enero los desarrolladores de LockBit crearon un nuevo hilo en un foro dedicado a la venta y soporte de este tipo de malware para anunciar el programa de afiliados para Cryptolocker LockBit, donde daban más detalles sobre las capacidades de su malware. Además destacan que no trabajan en la CEI, por lo que no se verá afectados los equipos Rusos o pertenecientes a la Comunidad de Estados Independientes. Esto no es ninguna novedad y es debido a que las fuerzas de seguridad de la CEI no se molestan en investigar a los grupos que operen fuera de su jurisdicción.
La extorsión
La versión más reciente de LockBit nos muestra una nota de rescate que amenaza con filtrar los datos que el malware ha robado y cifrado en nuestro equipo.
Si la amenaza se llevase a cabo esto podría ocasionar graves problemas para las víctimas del ransomware, puesto que se estarían violando las reglas generales de protección de datos (RGPD) de la UE, que hacen que las empresas sean las responsables de la protección de los datos sensibles de sus clientes.
Cada vez es más común encontrar este tipo de características en el malware dedicado al secuestro de datos. Es una técnica especialmente efectiva para forzar el pago dado que no solo nos bastaría con restaurar una copia de seguridad para solucionar el problema con el cifrado de nuestros archivos, estamos expuestos a la voluntad del atacante. Esta forma de extorsión se ha convertido en la «firma» del ransomware REvil y Maza, incluso el grupo Maze ha publicado en ocasiones alguno de los archivos robados para forzar el pago de aquellos que sobrepasan la fecha límite.
El código de LockBit
Según investigadores de Sophos el código fue escrito principalmente en C++, con algunos módulos extra hechos en ensamblador. Por ejemplo, algunas técnicas anti-debugging emplean la llamada a la función fs:30h para verificar manualmente el PEB (Bloque de entorno de proceso) para el indicador BeingDebugged , en lugar de usar IsDebuggerPresent () .
Lo primero que hace el ransomware tras su ejecución es verificar si la muestra se ejecutó con algún parámetro agregado desde la línea de comandos. Esto se hace para verificar si se está ejecutando en una VM. Las muestras de malware que estamos viendo actualmente requieren de parámetros específicos para su ejecución y así evitar ser analizados mediante algún sandbox automatizado, que a menudo ejecuta muestras sin parámetros. En este ejemplo, la muestra analizada por Sophos no se ejecutará si se ingresa algún parámetro desde la línea de comandos. Si no hay argumentos a la hora de su ejecución Lockbit oculta la salida de la consola, donde el malware imprime mensajes de depuración y procede a hacer su trabajo.
Esto podría tener la intención de detectar algún tipo de espacio aislado, pero es posible que el autor del malware haya cometido un error en la implementación de la verificación o que este comportamiento sea solo un marcador de posición para incluir una lógica diferente en futuras versiones.
Ofuscación de Strings
El binario hace uso del conjunto de instrucciones SSE de Intel y de las características específicas de su arquitectura para aumentar su rendimiento. Esto incluye el uso de múltiples registros XMM utilizados para almacenar y descifrar los nombres de servicio, nombres de procesos y otras cadenas utilizadas para interactuar con el sistema operativo que son exclusivas del ransomware.
Estas claves se descifran en tiempo de ejecución con una clave XOR de 1 byte que es única para cada cadena. El primer byte hexadecimal de cada variable.
Comprobando los permisos
LockBit necesita verificar que tiene permisos de administrador para poder causar el mayor daño posible. Si no los tiene ejecuta una técnica que está creciendo en popularidad entre los desarrolladores de malware: un bypass de Control de cuentas de usuario de Windows (UAC).
Aprovechando OpenProcessToken , consulta el proceso actual a través de una máscara de acceso TOKEN_QUERY. Después de eso, llama a CreateWellKnownSid para crear un identificador de seguridad de usuario (SID) que coincida con el grupo de administradores (WinBuiltinAdministratorsSid ), por lo que ahora el malware tiene una referencia que puede usar para las comparaciones. Finalmente, verifica si los privilegios actuales del proceso son suficientes para los derechos del Administrador, con una llamada a CheckTokenMembership.
Si el proceso actual no tiene privilegios de administrador, el ransomware intenta eludir el UAC de Windows con un bypass. Para hacerlo, LockBit llama a supMasqueradeProcess. El uso de supMasqueradeProcess permite a LockBit ocultar la información de su proceso mediante la inyección en un proceso que se ejecuta en un directorio confiable, como puede ser explorer.exe.
Con el uso de la herramienta auxiliar COM de IDA Pro, el equipo de Sophos pudo ver dos CLSID (identificadores únicos globales que identifican objetos de clase COM) a los que hace referencia el código de LockBit. Los CLSID, representados como números hexadecimales de 128 bits dentro de un par de llaves, se almacenan en la ruta de registro HKEY_LOCAL_MACHINE Software Classes CLSID.
Buscar estos datos revela que los dos CSLIDS pertenecen a IColorDataProxy e ICMLuaUtil, ambas interfaces COM no documentadas que son propensas a la omisión de UAC.
Haciéndose pasar por explorer.exe, LockBit llama a CoInitializeEx para inicializar la biblioteca COM, con los indicadores COINIT_MULTITHREADED y COINIT_DISABLE_OLE1DDE para establecer el modelo de concurrencia. Los valores hexadecimales aquí (CLSID) se mueven a la pila, y la siguiente llamada a la función ( lockbit.413980 ) los usará.
El malware agrega los 2 CLSID y los ejecutará:
Mediante esta técnica se han conseguido obtener permisos de administrador y el flujo del programa es devuelto al ransomware.
Matar procesos
LockBit enumera los procesos que se ejecutan y servicios que están iniciados a través de las llamadas a CreateToolhelp32Snapshot , Process32First , Process32Next y finalmente OpenProcess , y compara los nombres con un servicio interno y una lista de procesos. Si un proceso coincide con uno en la lista, LockBit intentará cerrarlo a través de TerminateProcess.
Además de la lista de servicios para matar, LockBit también incluye una lista de archivos que no se deben cifrar, ya que deshabilitar el sistema operativo dificultaría el recibir y actuar sobre la nota de rescate. Estos archivos se almacenan en listas ofuscadas dentro del código. Una función dentro de LockBit utiliza las llamadas a FindFirstFileExW y FindNextFileW para leer los nombres de archivos y carpetas en el disco de destino, y luego se llama a una función lstrcmpiW simple para comparar la lista codificada con esos nombres.
Identificación de la víctima
Como se mencionó anteriormente, los desarrolladores de LockBit querían evitar que su ransomware golpeara a las víctimas en los países de la Comunidad de Estados Independientes (CEI). El mecanismo utilizado por el ransomware para lograr esto llama a GetUserDefaultLangID y busca constantes específicas del identificador de idioma en la configuración del formato de región para el usuario actual. Si la configuración de idioma del usuario actual coincide con alguno de los valores a continuación, el ransomware se cierra y no inicia la rutina de cifrado.
El futuro para LockBit
Una publicación reciente en Twitter demuestra cómo es el futuro de LockBit. En un reciente ataque, el MBR se sobrescribió, lo que quiere decir que la máquina infectada no se iniciará a menos que se proporcione una contraseña.
El hash de esta muestra no se conoce actualmente.
Más información:
Powered by WPeMatico