Gelsemium: un malware complejo y modular utilizado por grupo de cibersespionaje

Los investigadores de ESET analizan las nuevas campañas del grupo Gelsemium y el complejo malware modular que ha utilizado en ataques contra gobiernos, universidades, fabricantes de productos electrónicos y organizaciones religiosas en Asia Oriental y Oriente Medio.

A mediados de 2020, los investigadores de ESET comenzaron a analizar varias campañas, que luego fueron atribuidas al grupo Gelsemium, y rastrearon la primera versión del malware utilizado por el grupo, que data de 2014. Las víctimas de estas campañas se encuentran en el este. Asia, así como el Medio Oriente, e incluyen gobiernos, organizaciones religiosas, fabricantes de productos electrónicos y universidades.

Puntos clave de este informe:

  • Los investigadores de ESET creen que Gelsemium está detrás del ataque a la cadena de suministro contra BigNox que informamos y llamamos Operación NightScout
  • Los investigadores de ESET encontraron una nueva versión de Gelsemium, un malware complejo y modular al que más tarde nos referimos como Gelsemine, Gelsenicine y Gelsevirine.
  • Se descubrieron nuevos objetivos de ataque, incluidos gobiernos, universidades, fabricantes de productos electrónicos y organizaciones religiosas en Asia oriental y Oriente Medio.
  • Gelsemium es un grupo de ciberespionaje activo desde 2014

La distribución geográfica de los objetivos de ataque de Gelsemium se puede ver en la Figura 1.

Figura 1. Ubicaciones de destino

Componentes de gelsemio

Toda la cadena de Gelsemium puede parecer simple a primera vista, pero las configuraciones extensas, implementadas en cada etapa, modifican las configuraciones para la carga útil final en tiempo real, lo que hace que sea más difícil de entender. Los comportamientos discutidos a continuación están vinculados a la configuración. Por lo tanto, los nombres de archivo y las rutas pueden ser diferentes en otros ejemplos. La mayoría de las campañas que hemos visto siguen lo que hemos descrito aquí.

Figura 2. Descripción general del flujo de trabajo de tres componentes de Gelsemium

Gelsemine: el gotero

La primera etapa de Gelsemium es un cuentagotas escrito en C ++ que usa la biblioteca Microsoft Foundation Class (MFC). Esta etapa contiene varios binarios de etapa adicionales. El tamaño del cuentagotas varía de 400kB a 700kB, lo cual es inusual y podría ser incluso mayor si los ocho ejecutables integrados no estuvieran comprimidos. Los desarrolladores utilizan la biblioteca zlib vinculada estáticamente para reducir significativamente el tamaño general. Detrás de este gran ejecutable hay un mecanismo complejo pero flexible, que es capaz de descartar diferentes pasos según las características del ordenador víctima, ya sea que se ejecute en 32 o 64 bits o según privilegios (usuario estándar vs. administrador). Casi todas las etapas están comprimidas, ubicadas en la sección de recursos PE y asignadas al espacio de direcciones de memoria del mismo componente. La Figura 3 ilustra todos los pasos del componente Gelsemine.

Figura 3. Descripción general del espacio de direcciones de Gelsemine

Gelsenicina: el cargador

Gelsenicine es un cargador que recupera Gelsevirine y lo ejecuta. Hay dos versiones diferentes del cargador: ambas son DLL; sin embargo, difieren en el contexto en el que se administra Gelsemine.

Para las víctimas con privilegios de administrador, Gelsemine droppea Gelsenicine en C: Windows System32 spool prtprocs x64 winprint.dll (DLL de modo de usuario para el procesador de impresión) que luego el servicio carga automáticamente spoolsv Windows. Para escribir un archivo en el directorio % WINDIR% / system32, se requieren privilegios de administrador; de ahí el requisito mencionado anteriormente.

En el caso de usuarios con privilegios estándar que están comprometidos por Gelsemine, Gelsenicine se coloca en un directorio diferente que no requiere privilegios de administrador. DLL chrome_elf.dll caí dentro CommonAppData / Google / Chrome / Application / Library /.

Gelsevirine: el “complemento principal”

Gelsevirine es la última etapa de la cadena y sus desarrolladores lo llaman MainPlugin (complemento principal), de acuerdo con el nombre de la DLL y también la ruta de PDB que se encuentra en las muestras antiguas (Z: z_code Q1 Client Win32 Release MainPlugin.pdb) Cabe señalar que si los defensores logran llegar solos a esta última etapa, no funcionará a la perfección, ya que requiere que sus argumentos hayan sido armados por Gelsenicina.

La configuración utilizada por Gelsenicine contiene un campo llamado controller_version que creemos que es el control de versión utilizado por los operadores para este MainPlugin. La Figura 4 proporciona una línea de tiempo de las diferentes versiones que hemos visto en acción. Las fechas son aproximadas.

Figura 4. Cronología de las diferentes versiones de Gelsevirina

Enlaces / herramientas adicionales

Durante nuestra investigación, encontramos algunos programas maliciosos interesantes que se describen en las siguientes secciones.

  • Operación NightScout (BigNox)– En enero de 2021, otro investigador de ESET analizó y escribió un artículo sobre Operation NightScout; un ataque a la cadena de suministro que comprometió el motor de actualización de NoxPlayer, un emulador de Android para PC y Mac, y parte de la línea de productos BigNox con más de 150 millones de usuarios en todo el mundo. La investigación reveló un vínculo entre este ataque a la cadena de suministro y el grupo Gelsemium. Las víctimas originalmente comprometidas por ese ataque fueron luego comprometidas por Gelsemine. Entre las diferentes variantes examinadas, la “variante 2” en este artículo muestra similitudes con el malware Gelsemium.
  • OwlProxy: Este módulo también viene en dos variantes – versiones de 32 bits y 64 bits – y como resultado contiene una función para probar la versión de Windows, así como los componentes Gelsemium.
  • Cromo: Chrommme es una puerta trasera que encontramos durante nuestras aventuras a través del ecosistema Gelsemium. Las similitudes de código con los componentes de Gelsemium son casi inexistentes, pero durante el análisis se encontraron pequeños indicadores que nos llevan a creer que está relacionado de alguna manera con el grupo. Se encontró el mismo servidor C&C en Gelsevirine y Chrommme, los cuales usan dos servidores C&C. Chrommme se encontró en la máquina de una organización también comprometida por el grupo Gelsemium.

Conclusión

El bioma Gelsemium es muy interesante: muestra pocas víctimas (según nuestra telemetría) con una gran cantidad de componentes adaptativos. El sistema de complementos muestra que sus desarrolladores tienen un conocimiento profundo de C ++. Las pequeñas similitudes con las herramientas de malware conocidas arrojan luz sobre las posibles relaciones con otros grupos y actividades pasadas. Esperamos que esta investigación estimule a otros investigadores a publicar sobre el grupo y revelar más raíces relacionadas con esta biosfera de malware.

Se puede encontrar una lista completa y completa de Indicadores de compromiso (IoC) y ejemplos en el documento técnico y en nuestro repositorio de GitHub.

Para cualquier duda o muestra relacionada con el tema, escríbanos a menaceintel@eset.com.

Deja un comentario