RansomExx: el ransomware detrás de los ataques a comercios brasileños

RansomExx: el ransomware detrás de los ataques a marcas brasileñas

Los ataques de ransomware contra tiendas y empresas brasileñas de los últimos días han resonado en todo el país por su poder destructivo. El uso de RansomExx ha llamado la atención. Con la evolución del malware para afectar no sólo a sistemas Windows, sino también a sistemas Linux, se convierte en una amenaza mucho más peligrosa para organizaciones y entidades gubernamentales. Por ello, el equipo de gestión de entregas y servicios de seguridad de ISH ha redactado un informe más detallado sobre RansomExx y las formas de mitigarlo.

RansomExx - Visión general

RansomExx, también conocido como Ransom X, Target777, Defray777, Defray y Defray 2018, es un ransomware activo desde 2018 que ataca a empresas de todo el mundo. Siendo atribuido a los grupos Gold Dupont y Sprite Spider, este ransomware destaca por su evolución, atacando no solo máquinas Windows, sino siendo trasladado para afectar también a sistemas Linux.

Versión para Windows

Como el malware se ejecuta completamente en memoria, se han encontrado pocos ejemplos. Suele entregarse como carga útil en memoria sin tocar nunca el disco, lo que dificulta su detección. En casos recientes, el malware fue cargado en memoria y ejecutado por Cobalt Strike, que a su vez fue entregado y cargado por el cargador Vatet. La variante para Windows también tiene una característica ya vista en otros ransomware, que desactiva varios productos de seguridad para su ejecución en la máquina infectada.

En un análisis realizado por Cybereason sobre una muestra del malware, se reveló que el código está parcialmente ofuscado pero incluye información indicativa, como la cadena"ransom.exx". Tras su ejecución, RansomEXX comienza a desencriptar algunas cadenas necesarias para su funcionamiento, que incluyen principalmente registros. A continuación, RansomEXX genera un hilo independiente en segundo plano para gestionar el proceso de registro. El proceso continúa con el cierre de procesos y servicios del sistema que podrían interferir con la ejecución, pero excluye aquellos que son relevantes para su ejecución.

Los comandos que se enumeran a continuación son ejecutados por RansomEXX después del cifrado. La función de estos comandos es impedir que la víctima restaure su sistema borrando las copias de seguridad e impidiendo que se ejecute Windows Error Recovery, por ejemplo. Por último, se deja una nota de rescate en la máquina.

 

Comandos Acciones
"C:\Windows\System32\fsutil.exe" usn deletejournal /D C: fsutil.exe borra el diario de Números de Secuencia de Actualización
"C:\Windows_System32\wbadmin.exe" eliminar catálogo -quiet wbadmin.exe borra el catálogo de copias de seguridad
"C:\Windows\System32\wevtutil.exe" cl Setup

"C:\Windows\System32\wevtutil.exe" cl Sistema

"C:\Windows\System32\wevtutil.exe" cl Aplicación

"C:\Windows\System32\wevtutil.exe" cl Seguridad

wevtutil borra los eventos de registro
“C:\Windows\System32\bcdedit.exe” /set {default} bootstatuspolicy ignoreallfailures

“C:\Windows\System32\bcdedit.exe” /set {default} recoveryenabled no

Bcdedit desactiva el modo de rescate
"C:\Windows\System32\cipher.exe" /w:C: cifrado sobrescribe archivos borrados en la unidad c
"C:\Windows&System32\schtasks.exe" /Change /TN "\Microsoft\Windows&SystemRestoreSR" /disable schtasks desactiva la restauración del sistema por tarea programada
"C:\Windows\System32\wevtutil.exe" sl Seguridad /e:false wevtutil desactiva los registros de eventos de seguridad

Versión Linux

Con la capacidad de infectar sistemas Linux a partir de julio de 2020, el grupo que opera el ransomware puede atacar infraestructuras capaces de ejecutar binarios ELF, como servidores VMWare ESXI. Las víctimas afectadas por esta versión son organizaciones que utilizan la virtualización para alojar muchos de sus sistemas corporativos en estos servidores ESXi. Al desplegar el ransomware en estos hosts ESXi, el grupo es capaz de aumentar rápidamente el alcance de los sistemas afectados dentro de los entornos de las víctimas.

La versión Linux contiene la misma lógica de escaneo y cifrado de archivos que la versión Windows, y está diseñada para recibir un argumento de línea de comandos con una ruta al directorio donde iniciará su proceso de cifrado recursivo. Los archivos se cifran utilizando AES en modo de cifrado ECB con una clave de 256 bits generada de forma única para cada archivo, e implementa su esquema criptográfico utilizando funciones de la biblioteca de código abierto mbedtls. A continuación, la clave se cifra utilizando una clave pública RSA de 4096 bits incrustada y se adjunta al archivo cifrado. Además, el malware inicia un hilo que regenera y vuelve a cifrar la clave AES cada 0,18 segundos. A cada víctima se le asigna una única compilación, que contiene una clave pública RSA única. Si la víctima paga el rescate, recibirá una herramienta de descifrado que contiene una clave privada R SA que coincide con la clave pública de cifrado.

Para comprometer los dispositivos ESXi, los operadores intentan recopilar credenciales que puedan utilizarse para la autenticación en la interfaz web de vCenter. Se intenta recuperar las credenciales de vCenter almacenadas en los navegadores web, así como recopilar credenciales de la memoria del host. Tras la autenticación en vCenter, se habilita SSH para permitir el acceso persistente a los dispositivos ESXi. En algunos casos, el grupo también cambia la contraseña de la cuenta raíz o las claves SSH del host.

Aunque es bastante eficaz, la versión para Linux del ransomware carece de muchas funciones adicionales, como la ausencia de comunicación con el C&C, el cierre de los procesos en ejecución o la desactivación del software de seguridad, entre otras.

IOC - Indicadores de Compromiso

A continuación figuran algunos indicadores de compromiso:

Regla Yara

Para ayudar a los equipos de Threat Hunting, McAfee ha desarrollado una regla para detectar la amenaza tanto para las versiones de Windows como de Linux, como puede verse a continuación:

Yara         rule RANSOM_ransomexx_windows




{




meta:




        description = "Rule to detect Windows and Linux version of RansomeXX"




        author = "McAfee ATR team "




        rule_version = "v1"




        mitre_attack = "T1027,T1497.001,T1083,T1057,T1012,T1082,T1033,T1129,T1543.003"




        malware_type = "Ransom"




        malware_family = "Ransom:Win/RansomeXX"




        actor_type = "Cybercrime"




        actor_group = "Unknown"




  strings:




    $0 = {223E95459D82E1E7229F633169D26B57474FA337C9981C0BFB91314D55B9E9

1C5A5EE49392CFC52312D5562C4A6EFFDC10D0685A194D5E2B31581454DEF675FB79

58FEC7DB873E5689FC9D03217C68D8033820F9E65E04D856F3A9C44A4CBDC1D00846

F5983D771C1B137E4E0F9D8EF409F92ED254FCFF021E69D229C9CFAD85FA486C1B54B

8FF0642BFF521F15C1C0B665F3F34011656B429008F3563ECB5F2590723A054303D8A

7EA9889D903E077C6F218F44416AC2D1F53C583303917E6BE9EBE048E31E9E256718F

29229319C19F15BA4058CCFFDBBCB382D1F6F56585D8A4ADEC34C052CC0DA8D7345

1A}




    $1 = {FC54612808977EE8F548B2258D310BDC9D2D256B3EE9DAAE347BE6F4DC835A

467FFE8EB208F7E05D987A9B044A8E98C6B087F15A0BFC5D0689EF49D2FAE572B881B

123A85FFA21595F36F71C27109C692C1B56BBDCEB5B9D2865B3708DBC12A053384A9

C0C88E405A06C27DCF49ADA62EB2BB0E20B6E3116640286ED3A87A5713079B21F518

99B752E45573D4B39F4DBD3323CAB82BF63326BFB982F}




    $2 = {7C09E81700C11004018D9A9AEAC0F6596F559C6D4DAF59A5F26D9F200857C

A6C3E9CAC524BD9ACC92ADC7E84BFDA79164B7ECD8486985D38604FEBDC6740D20

B3AC88F6AD82A4FB08D71AB47A086E86EEDF39D1C5BBA97C4080126141D67F37BE8

538F5A8BE740E484AE6852F8121067CC4BF7A5765577F39E7E24067817FAE0D7}




    $3 = {2A755EE16E1430B26E1430B26E1430B2943729B26C1430B2676CA3B2791430

B26E1431B2811430B201629BB2711430B201629AB2161430B201629FB2451430B20

162AEB2791430B20162ABB26F1430B20162ADB26F1430B2}




    $4 = {EC9B9FE9A3EADDA692CD43D2F59598ED858C02C2652FBF922EC454185E6A

16936E39334038ACEF838BFB186FFF7480ADC4289382ECD6D394F0AF85336B597A

FC1A900B2EB21EC949D292DF4C047E0B2153}




    $5 = {16918F03F53C52DAC54ED8259740051E9C5FECF64344F7A82260EDCC304C65

28F659C77866A510D9C1D6AE5ECDC80D6FDDF18CAB34C25909C99A4174FCC28B8D}




    $6 = {004503615937300CE53865A20D27086D422F631D5F08017241651B402B190

50DDD54D3334D34224351BB2006285551897457671F526F38B091A20CD280000000}




    $7 = "!NEWS_FOR" fullword ascii




    $8 = "Study this message REGARDFULLY" fullword ascii




  condition:




    (uint16(0) == 0x5a4d or uint32(0) == 0x464C457F) and filesize < 500KB and  4 of them




}




Outra regra Yara está disponível no Malpedia e  é capaz de detectar a versão Windows da ameaça - win.ransomexx:




rule win_ransomexx_auto {




    meta:

        author = "Felix Bilstein - yara-signator at cocacoding dot com"

        date = "2021-06-10"

        version = "1"

        description = "Detects win.ransomexx."

        info = "autogenerated rule brought to you by yara-signator"

        tool = "yara-signator v0.6.0"

        signator_config = "callsandjumps;datarefs;binvalue"

        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.ransomexx"

        malpedia_rule_date = "20210604"

        malpedia_hash = "be09d5d71e77373c0f538068be31a2ad4c69cfbd"

        malpedia_version = "20210616"

        malpedia_license = "CC BY-SA 4.0"

        malpedia_sharing = "TLP:WHITE"




    /* DISCLAIMER

     * The strings used in this rule have been automatically selected from the

     * disassembly of memory dumps and unpacked files, using YARA-Signator.

     * The code and documentation is published here:

     * https://github.com/fxb-cocacoding/yara-signator

     * As Malpedia is used as data source, please note that for a given

     * number of families, only single samples are documented.

     * This likely impacts the degree of generalization these rules will offer.

     * Take the described generation method also into consideration when you

     * apply the rules in your use cases and assign them confidence levels.

     */







    strings:

        $sequence_0 = { 8bcf 895dfc 8955f4 e8???????? 85c0 7975 895dfc }

            // n = 7, score = 100

            //   8bcf                 | mov                 ecx, edi

            //   895dfc               | mov                 dword ptr [ebp - 4], ebx

            //   8955f4               | mov                 dword ptr [ebp - 0xc], edx

            //   e8????????           |                    

            //   85c0                 | test                eax, eax

            //   7975                 | jns                 0x77

            //   895dfc               | mov                 dword ptr [ebp - 4], ebx




        $sequence_1 = { 2bfe 8945fc 83ff40 721f 8b4508 53 e8???????? }

            // n = 7, score = 100

            //   2bfe                 | sub                 edi, esi

            //   8945fc               | mov                 dword ptr [ebp - 4], eax

            //   83ff40               | cmp                 edi, 0x40

            //   721f                 | jb                  0x21

            //   8b4508               | mov                 eax, dword ptr [ebp + 8]

            //   53                   | push                ebx

            //   e8????????           |                    




        $sequence_2 = { 7410 817df8f0070000 7507 56 ff15???????? 5b 56 }

            // n = 7, score = 100

            //   7410                 | je                  0x12

            //   817df8f0070000       | cmp                 dword ptr [ebp - 8], 0x7f0

            //   7507                 | jne                 9

            //   56                   | push                esi

            //   ff15????????         |                    

            //   5b                   | pop                 ebx

            //   56                   | push                esi




        $sequence_3 = { 6a00 33ff 8d442474 e8???????? 83c404 85c0 0f8535020000 }

            // n = 7, score = 100

            //   6a00                 | push                0

            //   33ff                 | xor                 edi, edi

            //   8d442474             | lea                 eax, dword ptr [esp + 0x74]

            //   e8????????           |                    

            //   83c404               | add                 esp, 4

            //   85c0                 | test                eax, eax

            //   0f8535020000         | jne                 0x23b




        $sequence_4 = { 884736 c1ea10 0fb65640 885737 0fb6464f 884738 c1e908 }

            // n = 7, score = 100

            //   884736               | mov                 byte ptr [edi + 0x36], al

            //   c1ea10               | shr                 edx, 0x10

            //   0fb65640             | movzx               edx, byte ptr [esi + 0x40]

            //   885737               | mov                 byte ptr [edi + 0x37], dl

            //   0fb6464f             | movzx               eax, byte ptr [esi + 0x4f]

            //   884738               | mov                 byte ptr [edi + 0x38], al

            //   c1e908               | shr                 ecx, 8




        $sequence_5 = { f30f7f0a f30f6f4210 f30f6f8ab0000000 660f38dbc0 660f38dbc9 f30f7f82b0000000 }

            // n = 6, score = 100

            //   f30f7f0a             | movdqu              xmmword ptr [edx], xmm1

            //   f30f6f4210           | movdqu              xmm0, xmmword ptr [edx + 0x10]

            //   f30f6f8ab0000000     | movdqu              xmm1, xmmword ptr [edx + 0xb0]

            //   660f38dbc0           | aesimc              xmm0, xmm0

            //   660f38dbc9           | aesimc              xmm1, xmm1

            //   f30f7f82b0000000     | movdqu              xmmword ptr [edx + 0xb0], xmm0




        $sequence_6 = { 6a00 ff15???????? 8b1d???????? 57 6a00 6a01 }

            // n = 6, score = 100

            //   6a00                 | push                0

            //   ff15????????         |                    

            //   8b1d????????         |                    

            //   57                   | push                edi

            //   6a00                 | push                0

            //   6a01                 | push                1




        $sequence_7 = { 8b4df8 40 49 8945fc }

            // n = 4, score = 100

            //   8b4df8               | mov                 ecx, dword ptr [ebp - 8]

            //   40                   | inc                 eax

            //   49                   | dec                 ecx

            //   8945fc               | mov                 dword ptr [ebp - 4], eax




        $sequence_8 = { 897c2418 75a4 8db42460020000 8d5c2470 e8???????? 8bf0 }

            // n = 6, score = 100

            //   897c2418             | mov                 dword ptr [esp + 0x18], edi

            //   75a4                 | jne                 0xffffffa6

            //   8db42460020000       | lea                 esi, dword ptr [esp + 0x260]

            //   8d5c2470             | lea                 ebx, dword ptr [esp + 0x70]

            //   e8????????           |                    

            //   8bf0                 | mov                 esi, eax




        $sequence_9 = { 40 8bc8 c1e105 8bb9084c4200 0bb90c4c4200 75c8 5f }

            // n = 7, score = 100

            //   40                   | inc                 eax

            //   8bc8                 | mov                 ecx, eax

            //   c1e105               | shl                 ecx, 5

            //   8bb9084c4200         | mov                 edi, dword ptr [ecx + 0x424c08]

            //   0bb90c4c4200         | or                  edi, dword ptr [ecx + 0x424c0c]

            //   75c8                 | jne                 0xffffffca

            //   5f                   | pop                 edi




    condition:

        7 of them and filesize < 372736

}

Prevención de ataques de ransomware

Mantenga copias de seguridad de los datos encriptadas y fuera de línea, y pruébelas con regularidad. Los procedimientos de copia de seguridad deben realizarse con regularidad. Es importante que las copias de seguridad se mantengan sin conexión, ya que muchas variantes de ransomware intentan localizar y eliminar o cifrar las copias de seguridad accesibles.

Además, crear, mantener y ejecutar un plan básico de respuesta a incidentes cibernéticos, un plan de recuperación y un plan de comunicaciones asociado:

  • El plan de respuesta a incidentes cibernéticos debe incluir procedimientos de respuesta y notificación para incidentes de ransomware. Recomendamos la Guía conjunta sobre ransomware de CISA y el Centro Interestatal de Información e Intercambio (MS-ISAC ) para obtener más detalles sobre la creación de un plan de respuesta a incidentes cibernéticos.
  • El plan de recuperación debe abordar cómo operar si se pierde el acceso o el control de las funciones críticas. CISA ofrece evaluaciones de ciberresiliencia gratuitas y no técnicas para ayudar a las organizaciones a evaluar su resiliencia operativa y sus prácticas de ciberseguridad.

Mitigue también las vulnerabilidades y los errores de configuración de Internet para reducir el riesgo de que los actores exploten esta superficie de ataque:

  • Emplee las mejores prácticas para utilizar el Protocolo de Escritorio Remoto (RDP) y otros servicios de escritorio remoto. Las amenazas suelen obtener acceso inicial a una red a través de servicios remotos expuestos y mal protegidos, para luego propagar el ransomware;
  • Sigue siendo importante auditar la red en busca de sistemas que utilicen RDP, cerrar los puertos RDP no utilizados. Aplique bloqueos de cuenta tras un número determinado de intentos, aplique la autenticación multifactor (MFA) y registre los intentos de inicio de sesión RDP;
  • Realizar escaneos de vulnerabilidad regulares para identificar y abordar las vulnerabilidades, especialmente las de los dispositivos orientados a Internet. CISA ofrece una gama de servicios gratuitos de ciberhigiene, incluido el análisis de vulnerabilidades, para ayudar a las organizaciones de infraestructuras críticas a evaluar, identificar y reducir su exposición a ciberamenazas como el ransomware. Al aprovechar estos servicios, las organizaciones de cualquier tamaño recibirán recomendaciones sobre las formas de reducir su riesgo y mitigar los vectores de ataque;
  • Actualice oportunamente el software, incluidos los sistemas operativos, las aplicaciones y el firmware. Dé prioridad a la corrección oportuna de las vulnerabilidades y puntos vulnerables críticos de los servidores orientados a Internet, así como del software de procesamiento de datos de Internet, como navegadores web, complementos de navegadores y lectores de documentos. Si no es posible una reparación rápida, aplique las medidas de mitigación proporcionadas por el proveedor;
  • Asegúrese de que los dispositivos están configurados correctamente y de que las funciones de seguridad están activadas; por ejemplo, desactive los puertos y protocolos que no se utilicen con fines empresariales;
  • Desactivar o bloquear el protocolo Server Message Block (SMB) entrante y saliente y eliminar o desactivar las versiones obsoletas de SMB.

Reduzca el riesgo de que los correos electrónicos de phishing lleguen a los usuarios finales:

  • Activación de los filtros antispam;
  • Implemente un programa de concienciación y formación sobre ciberseguridad para los usuarios que incluya orientaciones sobre cómo identificar e informar de actividades sospechosas (por ejemplo, phishing) o incidentes.

Utilice las mejores prácticas de ciberseguridad disponibles:

  • Asegúrese de que el software antivirus, el software antimalware y las firmas estén actualizados;
  • Implantar listas de aplicaciones permitidas;
  • Garantizar que las cuentas de usuario y los privilegios estén limitados mediante políticas de uso de cuentas, control de cuentas de usuario y gestión de cuentas privilegiadas;
  • Emplee la AMF para tantos servicios como sea posible, especialmente para el correo web, las redes privadas virtuales (VPN) y las cuentas que acceden a sistemas críticos.

Referencias

  1. https://kc.mcafee.com/corporate/index?page=content&id=KB93665
  2. https://malpedia.caad.fkie.fraunhofer.de/details/win.ransomexx
  3. https://otx.alienvault.com/pulse/611ecd98c0e17d68bf061a06/
  4. https://www.trendmicro.com/en_ie/research/21/a/expanding-range-and-improving-speed-a-ransomexx-approach.html
  5. https://www.cybereason.com/blog/cybereason-vs.-ransomexx-ransomware
  6. https://securelist.com/ransomexx-trojan-attacks-linux-systems/99279/
  7. https://www.kaspersky.com.br/blog/ransomexx-egregor-ransomware-ataques/16712/
  8. https://unit42.paloaltonetworks.com/vatet-pyxie-defray777/4/
  9. https://unit42.paloaltonetworks.com/vatet-pyxie-defray777/3/
  10. https://www.crowdstrike.com/blog/carbon-spider-sprite-spider-target-esxi-servers-with-ransomware/
  11. https://unit42.paloaltonetworks.com/ransomware-threat-assessments/8/
  12. https://github.com/pan-unit42/iocs/blob/master/Defray777_IOC.text
  13. https://www.cisa.gov/sites/default/files/publications/CISA_Fact_Sheet-Protecting_Sensitive_and_Personal_Information_from_Ransomware-Caused_Data_Breaches-508C.pdf

Por Nathalia Ordonio Magalhaes Palmeira y Paulo Trindade