FontOnLake: familia de malware previamente desconocida dirigida a Linux


Los investigadores de ESET descubren una familia de malware con herramientas que muestran signos de que se utilizan en ataques dirigidos

Los investigadores de ESET han descubierto una familia de malware previamente desconocida que utiliza módulos personalizados y bien diseñados, dirigidos a sistemas que ejecutan Linux. Los módulos utilizados por esta familia de malware, que denominamos FontOnLake, están en constante desarrollo y brindan acceso remoto a los operadores, recopilan credenciales y sirven como un servidor proxy. En esta entrada de blog, resumimos los hallazgos publicados en su totalidad en nuestro papel blanco.

Para recopilar datos (por ejemplo, credenciales ssh) o realizar otra actividad maliciosa, esta familia de malware utiliza binarios legítimos modificados que se ajustan para cargar más componentes. De hecho, para ocultar su existencia, la presencia de FontOnLake siempre va acompañada de un rootkit. Estos binarios como gato, matar o sshd se utilizan habitualmente en sistemas Linux y, además, pueden servir como mecanismo de persistencia.

La naturaleza disimulada de las herramientas de FontOnLake en combinación con un diseño avanzado y una baja prevalencia sugiere que se utilizan en ataques dirigidos.

El primer archivo conocido de esta familia de malware apareció en VirusTotal en mayo pasado y se cargaron otras muestras a lo largo del año. La ubicación del servidor C&C y los países desde los que se cargaron las muestras en VirusTotal podrían indicar que sus objetivos incluyen el sudeste asiático.

Creemos que los operadores de FontOnLake son particularmente cautelosos ya que casi todas las muestras vistas usan servidores C&C únicos con diferentes puertos no estándar. Los autores utilizan principalmente C / C ++ y varias bibliotecas de terceros, como Aumentar, Poco, o Protobuf. Ninguno de los servidores de C&C utilizados en las muestras cargadas en VirusTotal estaban activos en el momento de escribir este artículo, lo que indica que podrían haberse desactivado debido a la carga.

Componentes conocidos de FontOnLake

Los componentes actualmente conocidos de FontOnLake se pueden dividir en tres grupos siguientes que interactúan entre sí:

  • Aplicaciones troyanizadas – binarios legítimos modificados que se ajustan para cargar más componentes, recopilar datos o realizar otras actividades maliciosas.
  • Puertas traseras – componentes en modo usuario que sirven como punto principal de comunicación para sus operadores.
  • Rootkits – componentes del modo kernel que en su mayoría ocultan y disfrazan su presencia, ayudan con las actualizaciones o proporcionan puertas traseras de respaldo.

Aplicaciones troyanizadas

Descubrimos múltiples aplicaciones troyanizadas; se utilizan principalmente para cargar módulos personalizados de puerta trasera o rootkit. Aparte de eso, también pueden recopilar datos confidenciales. Lo más probable es que los parches de las aplicaciones se apliquen a nivel de código fuente, lo que indica que las aplicaciones deben haber sido compiladas y reemplazadas por las originales.

Todos los archivos troyanizados son utilidades estándar de Linux y cada uno sirve como método de persistencia porque normalmente se ejecutan al iniciar el sistema. Se desconoce la forma inicial en que estas aplicaciones troyanizadas llegan a sus víctimas.

La comunicación de una aplicación troyana con su rootkit se ejecuta a través de un archivo virtual, que es creado y gestionado por el rootkit. Como se ilustra en la Figura 1, los datos pueden leerse / escribirse desde / hacia el archivo virtual y exportarse con su componente de puerta trasera a solicitud del operador.

Figura 1. Interacción de los componentes de FontOnLake

Puertas traseras

Las tres puertas traseras diferentes que descubrimos están escritas en C ++ y todas usan, aunque de formas ligeramente diferentes, las mismas Asio biblioteca de Boost para redes asincrónicas y E / S de bajo nivel. Poco, Protobuf, y también se utilizan características de STL como punteros inteligentes. Lo que es raro en el malware es el hecho de que estas puertas traseras también presentan una serie de patrones de diseño de software.

La funcionalidad que todos tienen en común es que cada uno extrae las credenciales recopiladas y su historial de comandos bash en su C&C.

Teniendo en cuenta algunas de las funciones superpuestas, lo más probable es que estas diferentes puertas traseras no se utilicen juntas en un sistema comprometido.

Además, todas las puertas traseras utilizan comandos de latido personalizados que se envían y reciben periódicamente para mantener activa la conexión.

La funcionalidad general de estas puertas traseras consta de los siguientes métodos:

  • Exfiltrar los datos recopilados
  • Creación de un puente entre un servidor ssh personalizado que se ejecuta localmente y su C&C
  • Manipular archivos (por ejemplo, cargar / descargar, crear / eliminar, listar directorios, modificar atributos, etc.)
  • Actuando como proxy
  • Ejecución de comandos de shell arbitrarios y scripts de Python

Rootkit

Descubrimos dos versiones marginalmente diferentes del rootkit, utilizadas solo una a la vez, en cada una de las tres puertas traseras. Existen diferencias significativas entre esos dos rootkits, sin embargo, ciertos aspectos de ellos se superponen. Aunque las versiones de rootkit se basan en suterusu proyecto de código abierto, contienen varias de sus técnicas exclusivas y personalizadas.

La funcionalidad combinada de las dos versiones del rootkit que descubrimos incluye:

  • Proceso de ocultación
  • Ocultación de archivos
  • Escondiéndose
  • Ocultar conexiones de red
  • Exponer las credenciales recopiladas a su puerta trasera
  • Realización de reenvío de puertos
  • Recepción de paquetes mágicos (los paquetes mágicos son paquetes especialmente diseñados que pueden indicar al rootkit que descargue y ejecute otra puerta trasera)

Tras nuestro descubrimiento mientras finalizamos nuestro documento técnico sobre este tema, proveedores como Centro de respuesta de seguridad de Tencent, Avast y Laboratorios de encaje publicó su investigación sobre lo que parece ser el mismo malware.

Todos los componentes conocidos de FontOnLake son detectados por los productos ESET como Linux / FontOnLake. Las empresas o personas que deseen proteger sus terminales o servidores de Linux de esta amenaza deben utilizar un producto de seguridad de varias capas y una versión actualizada de su distribución de Linux; Algunas de las muestras que hemos analizado fueron creadas específicamente para CentOS y Debian.

En el pasado describimos una operación que compartía ciertos patrones de comportamiento con FontOnLake; sin embargo, su escala e impacto fueron mucho mayores. Lo llamamos Operación Windigo y puedes encontrar más información al respecto en este libro blanco y esta entrada de blog de seguimiento.

Se pueden encontrar detalles técnicos adicionales sobre FontOnLake en nuestro completo papel blanco.

IoC

Muestras

SHA-1 Descripción Nombre de la detección
1F52DB8E3FC3040C017928F5FFD99D9FA4757BF8 Troyanizado gato Linux / FontOnLake
771340752985DD8E84CF3843C9843EF7A76A39E7 Troyanizado matar
27E868C0505144F0708170DF701D7C1AE8E1FAEA Troyanizado sftp
45E94ABEDAD8C0044A43FF6D72A5C44C6ABD9378 Troyanizado sshd
1829B0E34807765F2B254EA5514D7BB587AECA3F Personalizado sshd
8D6ACA824D1A717AE908669E356E2D4BB6F857B0 Personalizado sshd
38B09D690FAFE81E964CBD45EC7CF20DCB296B4D Puerta trasera 1 variante 1
56556A53741111C04853A5E84744807EEADFF63A Puerta trasera 1 variante 2
FE26CB98AA1416A8B1F6CED4AC1B5400517257B2 Puerta trasera 1 variante 3
D4E0E38EC69CBB71475D8A22EDB428C3E955A5EA Puerta trasera 1 variante 4
204046B3279B487863738DDB17CBB6718AF2A83A Puerta trasera 2 variante 1
9C803D1E39F335F213F367A84D3DF6150E5FE172 Puerta trasera 2 variante 2
BFCC4E6628B63C92BC46219937EA7582EA6FBB41 Puerta trasera 2 variante 3
515CFB5CB760D3A1DA31E9F906EA7F84F17C5136 Puerta trasera 3 variante 4
A9ED0837E3AF698906B229CA28B988010BCD5DC1 Puerta trasera 3 variante 5
56CB85675FE7A7896F0AA5365FF391AC376D9953 Rootkit 1 versión 1
72C9C5CE50A38D0A2B9CEF6ADEAB1008BFF12496 Rootkit 1 versión 2
B439A503D68AD7164E0F32B03243A593312040F8 Rootkit 1 versión 3
E7BF0A35C2CD79A658615E312D35BBCFF9782672 Rootkit 1 versión 4
56580E7BA6BF26D878C538985A6DC62CA094CD04 Rootkit 1 versión 5
49D4E5FCD3A3018A88F329AE47EF4C87C6A2D27A Rootkit 1 versión 5
74D44C2949DA7D5164ADEC78801733680DA8C110 Rootkit 2 versión 1
74D755E8566340A752B1DB603EF468253ADAB6BD Rootkit 2 versión 2
E20F87497023E3454B5B1A22FE6C5A5501EAE2CB Rootkit 2 versión 3
6F43C598CD9E63F550FF4E6EF51500E47D0211F3 inject.so

C y C

De muestras:

47.107.60[.]212
47.112.197[.]119
156.238.111[.]174
172.96.231[.]69
hm2.yrnykx[.]con
ywbgrcrupasdiqxknwgceatlnbvmezti[.]con
yhgrffndvzbtoilmundkmvbaxrjtqsew[.]con
wcmbqxzeuopnvyfmhkstaretfciywdrl[.]nombre
ruciplbrxwjscyhtapvlfskoqqgnxevw[.]nombre
pdjwebrfgdyzljmwtxcoyomapxtzchvn[.]con
nfcomizsdseqiomzqrxwvtprxbljkpgd[.]nombre
hkxpqdtgsucylodaejmzmtnkpfvojabe[.]con
etzndtcvqvyxajpcgwkzsoweaubilflh[.]con
esnoptdkkiirzewlpgmccbwuynvxjumf[.]nombre
ekubhtlgnjndrmjbsqitdvvewcgzpacy[.]nombre

Desde el escaneo de Internet:

27.102.130[.]63

Nombres de archivo

/lib/modules/%VARIABLE%/kernel/drivers/input/misc/ati_remote3.ko
/etc/sysconfig/modules/ati_remote3.modules
/tmp/.tmp_%RANDOM%

Nombres de archivos virtuales

/proc/.dot3
/proc/.inl

Técnicas MITRE ATT & CK

Esta mesa fue construida usando versión 9 del marco ATT & CK.

Táctica IDENTIFICACIÓN Nombre Descripción
Acceso inicial T1078 Cuentas válidas FontOnLake puede recopilar al menos credenciales ssh.
Ejecución T1059.004 Intérprete de comandos y secuencias de comandos: Unix Shell FontOnLake permite la ejecución de comandos de Unix Shell.
T1059.006 Intérprete de comandos y secuencias de comandos: Python FontOnLake permite la ejecución de scripts de Python arbitrarios.
T1106 API nativa FontOnLake utiliza tenedor() para crear procesos adicionales como sshd.
T1204 Ejecución del usuario FontOnLake trojaniza herramientas estándar como gato para ejecutarse.
Persistencia T1547.006 Ejecución de inicio automático de inicio o inicio de sesión: módulos y extensiones del kernel Uno de los rootkits de FontOnLake se puede ejecutar con un script de inicio.
T1037 Scripts de inicialización de inicio o inicio de sesión FontOnLake crea un script de inicio del sistema ati_remote3.modules.
T1554 Compromiso del software cliente binario FontOnLake modifica varios binarios estándar para lograr la persistencia.
Evasión de defensa T1140 Desofuscar / decodificar archivos o información Algunas puertas traseras de FontOnLake pueden descifrar la comunicación serializada y cifrada con AES y decodificar en base64 la dirección C&C cifrada.
T1222.002 Modificación de permisos de archivos y directorios: modificación de permisos de archivos y directorios de Linux y Mac La puerta trasera de FontOnLake puede cambiar los permisos del archivo que quiere ejecutar.
T1564 Ocultar artefactos FontOnLake oculta sus conexiones y procesos con rootkits.
T1564.001 Ocultar artefactos: archivos y directorios ocultos FontOnLake oculta sus archivos con rootkits.
T1027 Archivos o información ofuscados FontOnLake empaqueta sus ejecutables con UPX.
T1014 Rootkit FontOnLake utiliza rootkits para ocultar la presencia de sus procesos, archivos, conexiones de red y controladores.
Acceso a credenciales T1556 Modificar el proceso de autenticación FontOnLake modifica sshd para recopilar credenciales.
Descubrimiento T1083 Descubrimiento de archivos y directorios Una de las puertas traseras de FontOnLake puede listar archivos y directorios.
T1082 Descubrimiento de información del sistema FontOnLake puede recopilar información del sistema de la máquina de la víctima.
Movimiento lateral T1021.004 Servicios remotos: SSH FontOnLake recopila credenciales ssh y lo más probable es que tenga la intención de usarlas para el movimiento lateral.
Comando y control T1090 Apoderado FontOnLake puede servir como proxy.
T1071.001 Protocolo de capa de aplicación: protocolos web FontOnLake adquiere servidores C&C adicionales a través de HTTP.
T1071.002 Protocolo de capa de aplicación: protocolos de transferencia de archivos FontOnLake puede descargar archivos Python adicionales para ejecutarlos a través de FTP.
T1132.001 Codificación de datos: codificación estándar FontOnLake usa base64 para codificar respuestas HTTPS.
T1568 Resolución dinámica FontOnLake puede usar HTTP para descargar recursos que contienen una dirección IP y un número de puerto para conectarse y adquirir su C&C. Puede utilizar la resolución de DNS dinámica para construir y resolver en un dominio elegido al azar.
T1573.001 Canal cifrado: criptografía simétrica FontOnLake usa AES para cifrar la comunicación con su C&C.
T1008 Canales de respaldo FontOnLake puede usar resolución DNS dinámica para construir y resolver en un dominio elegido al azar. Uno de sus rootkits también escucha paquetes especialmente diseñados, que le indican que descargue y ejecute archivos adicionales. También se conecta a un C&C y acepta conexiones en todas las interfaces.
T1095 Protocolo de capa que no es de aplicación FontOnLake usa TCP para comunicarse con su C&C.
T1571 Puerto no estándar Casi todas las muestras de FontOnLake utilizan un puerto no estándar único.
Exfiltración T1041 Exfiltración sobre canal C2 FontOnLake utiliza su C&C para filtrar los datos recopilados.





Enlace a la noticia original