Maze, Egregor y Sekhmet: acciones de respuesta y recuperación

Fecha de publicación 03/08/2023
Autor
INCIBE (INCIBE)
Maze, Egregor y Sekhmet: acciones de respuesta y recuperación

Maze, Egregor y Sekhmet se encuentran entre los ransomware más prolíficos. Pese a tratarse del mismo ransomware en ocasiones son referidas por su nombre individual. Concretamente, las variantes Maze y Egregor, ocupan el segundo y tercer puesto respectivamente, en términos del número total de víctimas afectadas, solo por detrás de Conti, lo cual ilustra su amplio alcance y la efectividad de sus ataques.

Maze fue detectado por primera vez por un analista de Malwarebytes en mayo de 2019 y rápidamente ganó notoriedad por ser el primero en adoptar un modelo de negocio de doble extorsión. Esta táctica implica, no solo el cifrado de los datos del usuario y la exigencia de un rescate para su desbloqueo, sino que también amenazaba con publicar la información privada si no se cumplía con el pago del rescate. Además, Maze también destacaba por su compleja estructura, ya que incorporaba múltiples mecanismos de antidetección para eludir los esfuerzos de las soluciones de seguridad.

Tras el anuncio del cierre de Maze en octubre de 2020, pasó a denominarse Egregor, que posteriormente desapareció tras el arresto de sus miembros en Ucrania, mientras que la operación Sekhmet se lanzó en marzo de 2020. Todas ellas, comparten muchas características y similitudes, como la nota de rescate, el proceso de cifrado o los nombres de domino. En febrero de 2021 se hicieron públicas las claves de descifrado para todas las variantes.

Características

A continuación, se presentan las características de este malware, tomando a Maze como referencia para el análisis, aunque las tres funcionan de manera muy similar.

Motivación

Maze/Egregor/Sekhmet seguía un modelo de negocio RaaS (Ransomware as a Service), a través del cual los ciberdelincuentes podían suscribirse para usarlo en sus propios ataques, lo que favoreció su expansión e impacto. Además, sus creadores establecieron una estructura organizativa en dos niveles, con un primer grupo encargado de infiltrarse en la red objetivo, y un segundo grupo que desplegaba el ransomware en la red interna. Los beneficios obtenidos del rescate se distribuían entre todos los participantes.

Diseñado para infiltrarse en sistemas Windows, cifraba los datos del usuario y exigía un rescate para su desbloqueo, usualmente en criptomonedas, como bitcoin. Un rasgo peculiar de este ransomware es que, durante el proceso de infección, se verificaba la configuración de idioma del sistema, abortando el ataque si el sistema se encontraba en ruso u otro idioma de algún país de la Comunidad de Estados Independientes (CEI), probablemente para evitar conflictos con las autoridades locales de dichos países, donde se sospecha que se ubicaban muchos de estos grupos de atacantes.

Tras un ataque exitoso, los operadores del malware extorsionaban a su víctima con revelar la información si no se pagaba el rescate dentro de un plazo máximo de tres días, llegando incluso vender los datos obtenidos a otros ciberdelincuentes, si aparecían compradores interesados.

Imagen de países infectados por Maze 
- Países infectados por Maze - Fuente -

Infección y propagación 
Las tácticas empleadas por Maze/Egregor/Sekhmet para la infección y propagación son similares a las de muchos otros ransomware. Previamente al ataque, necesitaban obtener privilegios del sistema a través de métodos convencionales, como el uso de fuerza bruta en las conexiones de Escritorio Remoto (RDP), explotación de vulnerabilidades de software y técnicas de phishing. Estos privilegios se utilizaban para desplegar el ransomware en la mayor cantidad posible de sistemas. Una vez que estaba dentro de la red, se desplegaba manualmente. Este despliegue solía realizarse con el apoyo de herramientas especializadas como Cobalt Strike o servicios de malware como QakBot o ProLock, que eran útiles para la propagación a otros sistemas.

Evasión de detección y recuperación

  • Uso de un cargador para la ofuscación: el malware operaba en dos etapas y se ejecutaba a través de una DLL con rundll32. La primera fase protegía el acceso al código malicioso a través de una contraseña que se suministraba por la línea de comandos. Esta contraseña se utilizaba para activar la segunda fase y descifrar el ransomware, el cual estaba contenido en una DLL diferente. En ella, también se encontraban los componentes esenciales encargados de lanzar el proceso de cifrado, el mensaje de rescate y las claves públicas RSA de 2048 bits, las cuales estaban embebidas directamente en el código del ransomware.

Contraseña proporcionada como argumento para desempaquetar el ransomware Maze

- Contraseña proporcionada como argumento para desempaquetar el ransomware Maze - Fuente -

  • Parada de procesos sobre archivos objetivo: el binario incluía una lista negra de procesos y servicios que debían pararse, ya que detenían el ransomware durante su ejecución, con lo que se aseguraban que los archivos objetivo no estuviesen abiertos y bloqueados por otros procesos. Dependiendo de la cepa del malware, usan una función de hashing personalizada con el nombre de todos los procesos que se ejecutaban en el sistema y los comparaba con la lista de hashes incorporada, evitando así cadenas sospechosas en el binario y una detección fácil.

    Imagen de Verificación del proceso en ejecución de Maze con función hash personalizada 
    - Verificación del proceso en ejecución de Maze con función hash personalizada - Fuente -

  • Detección del análisis estático: se usaba la función isDebuggerPresent para detectar si el malware estaba siendo analizado, lo que provocaba que el ransomware ejecutase un bucle infinito y no realizase operaciones maliciosas.
  • Elusión del análisis dinámico: se empleaba una técnica que consistía en un parche en memoria de DbgUIRemoteBreakin, una función que es utilizada por los analizadores cuando se conectan a un proceso. Después de permitir el acceso de escritura a la dirección de esa función con VirtualProtect, el malware modificaba el primer byte apuntado por esa dirección con el valor "0x3C", el cual corresponde con la operación "ret". Esto significa que cada vez que un analizador intentase conectarse al proceso del malware, ejecutaría la instrucción "ret" y saldría automáticamente.

Cifrado 
Se empleaban dos algoritmos durante la fase de cifrado y utilizaba una combinación de varios procesos de cifrado para proteger todas las claves. Para cada archivo que cifra, se genera una clave única ChaCha8 (algoritmo de cifrado simétrico en flujo, que usa claves de 256 bits) y un nonce (un valor único que se utiliza para cada sesión de cifrado, asegurando que el mismo archivo no se cifra de la misma manera si se cifra más de una vez).

A continuación, estas claves ChaCha8 y los nonces (vectores de inicialización), se cifran con una clave pública RSA de 2048 bits, que se generaba junto con su contraparte privada al inicio de la ejecución. Posteriormente, se utiliza una clave RSA codificada en la configuración del ransomware para cifrar este par de claves RSA, antes de guardarlas en la ruta local del disco: %ProgramData%\dtb.dat. Dependiendo del incidente analizado, el resultado de este proceso también podía encontrarse en las notas de rescate.

Por lo tanto, solo los operadores del ransomware poseían la clave privada que podía descifrar la clave de sesión utilizada para descifrar las claves ChaCha8 que cifraban cada archivo. Esta cadena de cifrado hacía que fuese extremadamente difícil, si no imposible, para cualquier otra persona descifrar los archivos, sin la clave privada correspondiente.

Respuesta y desinfección

Desde que las claves de descifrado de Maze, Egregor y Sekhmet se hicieron públicas, varios fabricantes, como Emsisoft o Kaspersky, crearon herramientas automáticas para facilitar la recuperación de los archivos cifrados por cualquiera de estas variantes, las cuales están disponibles en la página del proyecto NoMoreRansom.

Es importante tener en cuenta que el proceso de descifrado no está garantizado, ya que pueden no ser compatibles con la variante del malware usada.

A continuación, se describe el proceso de descifrado mediante una de estas herramientas, concretamente, la de Emsisoft, que sirve para las tres variantes:

  • En primer lugar, se debe cargar en la herramienta la nota de rescate del ransomware. A través de ella, el software identificará la clave privada necesaria y mostrará un mensaje de error en caso de que la versión no sea soportada.

Imagen Opciones de la herramienta de Emsisoft 
- Opciones de la herramienta de Emsisoft. Fuente -

Imagen de Mensaje de error de la herramienta si no es capaz de encontrar la clave privada de RSA

- Mensaje de error de la herramienta si no es capaz de encontrar la clave privada de RSA -

  • Si no surge ningún problema, se muestra una ventana que muestra la clave encontrada:

    Imagen de Comprobación de la nota de rescate

    - Comprobación de la nota de rescate. Fuente -

  • Tras este paso, la herramienta permite buscar los archivos cifrados en múltiples rutas. Por defecto, muestra los principales almacenamientos, aunque permite personalizar la lista y agregar carpetas específicas antes de iniciar el proceso.
  • Durante la ejecución, se visualiza un registro que detalla el progreso de la recuperación de los archivos. Al finalizar el proceso, los archivos ya deberían estar disponibles. Adicionalmente, se puede guardar un informe detallado del proceso de descifrado mediante el botón "guardar registro", el cual puede ser utilizado para compartirlo con los investigadores o almacenarlo como evidencia del proceso.

    Imagen de Finalización exitosa del proceso de descifrado 
    - Finalización exitosa del proceso de descifrado. Fuente -

Conclusiones

El caso de Maze/Egregor/Sekhmet ilustra la constante evolución y adaptación de las amenazas de ransomware que, a pesar de su desaparición, su herencia puede perdurar y servir de base para los nuevos ransomware, subrayando la importancia de un mantenimiento y actualizaciones de seguridad constantes, así como de estrategias de prevención proactivas. La ciberseguridad no puede ser una consideración secundaria, ya que las amenazas continúan evolucionando y adaptándose para explotar las vulnerabilidades existentes en las defensas de una organización. Aún con la disponibilidad de herramientas de descifrado, el énfasis debe permanecer en la prevención.