FontOnLake: familia de malware previamente desconocida dirigida a Linux

Investigadores de ESET descubren FontOnLake, una familia de malware que utiliza herramientas personalizadas y bien diseñadas para atacar sistemas operativos que corren Linux.

Investigadores de ESET descubren FontOnLake, una familia de malware que utiliza herramientas personalizadas y bien diseñadas para atacar sistemas operativos que corren Linux.

Los investigadores de ESET han descubierto una familia de malware previamente desconocida que utiliza módulos personalizados y bien diseñados para atacar a sistemas que corren Linux. Los módulos utilizados por esta familia de malware, a la cual hemos denominado FontOnLake, están en constante desarrollo y brindan a los operadores acceso remoto, permite recopilar credenciales y sirven como un servidor proxy. En esta publicación, resumimos los hallazgos que explicamos con más detallamos en nuestro whitepaper.

Para recopilar datos (por ejemplo, credenciales ssh) o realizar otra actividad maliciosa, esta familia de malware utiliza binarios legítimos modificados que son ajustados 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 cat, kill o sshd se utilizan comúnmente en sistemas Linux y, además, pueden servir como mecanismo de persistencia.

La naturaleza camaleónica de las herramientas de FontOnLake en combinación con un diseño avanzado y una baja prevalencia sugiere que son utilizadas 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 analizadas utilizan servidores C&C únicos con diferentes puertos no estándar. Los autores utilizan principalmente C/C ++ y varias bibliotecas de terceros, como Boost, Poco, o Protobuf. Ninguno de los servidores de C&C utilizados en las muestras cargadas a VirusTotal estaban activos al 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 que interactúan entre sí:

  • Aplicaciones troyanizadas: binarios legítimos modificados que son utilizados para cargar más componentes, recopilar datos o realizar otras actividades maliciosas.
  • Backdoors: componentes en modo usuario que funcionan como el punto de comunicación principal para sus operadores.
  • Rootkits: componentes en modo kernel que en su mayoría ocultan y disfrazan su presencia, ayudan con las actualizaciones o proporcionan backdoors de respaldo.

Aplicaciones troyanizadas

Descubrimos múltiples aplicaciones troyanizadas; se utilizan principalmente para cargar módulos personalizados de backdoor 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 en que inicialmente estas aplicaciones troyanizadas llegan a sus víctimas.

La comunicación de una aplicación troyanizada con su rootkit se ejecuta a través de un archivo virtual, el cual es creado y administrado por el rootkit. Como se muestra en la Imagen 1, los datos pueden leerse/escribirse desde/hacia el archivo virtual y exportarse con su componente de backdoor según solicite el operador.

Imagen 1. Interacción de los componentes de FontOnLake

Backdoors

Los tres backdoors diferentes que descubrimos están escritos en C++ y todos usan, aunque de forma ligeramente diferente, la misma biblioteca Asio de Boost para redes asíncronas y entradas/salidas de bajo nivel. También utilizan Poco, Protobuf y funciones de STL como punteros inteligentes. Lo que es raro en el malware es el hecho de que estos backdoors también presentan una serie de patrones de diseño de software.

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

Teniendo en cuenta la superposición de funciones, lo más probable es que estos diferentes backdoors no se utilicen juntos en un sistema comprometido.

Además, todos los backdoors utilizan comandos de heartbeat personalizados que son enviados y recibidos periódicamente para mantener activa la conexión.

La funcionalidad principal de estos backdoors consta de los siguientes métodos:

  • Exfiltrar los datos recopilados
  • Crear 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.)
  • Actuar como proxy
  • Ejecutar comandos de shell arbitrarios y scripts de Python

Rootkit

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

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

  • Proceso de ocultación
  • Ocultación de archivos
  • Ocultación de sí mismo
  • Ocultación de conexiones de red
  • Exposición de las credenciales recopiladas a su backdoor
  • 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 otro backdoor)

Tras nuestro descubrimiento y mientras finalizamos nuestro whitepaper sobre este tema, proveedores como Tencent Security Response Center, Avast y Lacework Labs publicaron 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. La llamamos Operación Windigo y se puede encontrar más información al respecto en este whitepaper y en este artículo.

Detalles técnicos adicionales sobre FontOnLake pueden encontrase en nuestro whitepaper.

Indicadores de Compromiso (IoC)

Muestras

SHA-1DescriptionDetection name
1F52DB8E3FC3040C017928F5FFD99D9FA4757BF8Trojanized catLinux/FontOnLake
771340752985DD8E84CF3843C9843EF7A76A39E7Trojanized kill
27E868C0505144F0708170DF701D7C1AE8E1FAEATrojanized sftp
45E94ABEDAD8C0044A43FF6D72A5C44C6ABD9378Trojanized sshd
1829B0E34807765F2B254EA5514D7BB587AECA3FCustom sshd
8D6ACA824D1A717AE908669E356E2D4BB6F857B0Custom sshd
38B09D690FAFE81E964CBD45EC7CF20DCB296B4DBackdoor 1 variant 1
56556A53741111C04853A5E84744807EEADFF63ABackdoor 1 variant 2
FE26CB98AA1416A8B1F6CED4AC1B5400517257B2Backdoor 1 variant 3
D4E0E38EC69CBB71475D8A22EDB428C3E955A5EABackdoor 1 variant 4
204046B3279B487863738DDB17CBB6718AF2A83ABackdoor 2 variant 1
9C803D1E39F335F213F367A84D3DF6150E5FE172Backdoor 2 variant 2
BFCC4E6628B63C92BC46219937EA7582EA6FBB41Backdoor 2 variant 3
515CFB5CB760D3A1DA31E9F906EA7F84F17C5136Backdoor 3 variant 4
A9ED0837E3AF698906B229CA28B988010BCD5DC1Backdoor 3 variant 5
56CB85675FE7A7896F0AA5365FF391AC376D9953Rootkit 1 version 1
72C9C5CE50A38D0A2B9CEF6ADEAB1008BFF12496Rootkit 1 version 2
B439A503D68AD7164E0F32B03243A593312040F8Rootkit 1 version 3
E7BF0A35C2CD79A658615E312D35BBCFF9782672Rootkit 1 version 4
56580E7BA6BF26D878C538985A6DC62CA094CD04Rootkit 1version 5
49D4E5FCD3A3018A88F329AE47EF4C87C6A2D27ARootkit 1 version 5
74D44C2949DA7D5164ADEC78801733680DA8C110Rootkit 2 version 1
74D755E8566340A752B1DB603EF468253ADAB6BDRootkit 2 version 2
E20F87497023E3454B5B1A22FE6C5A5501EAE2CBRootkit 2 version 3
6F43C598CD9E63F550FF4E6EF51500E47D0211F3inject.so

C&C

Muestras desde:

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

Desde el escaneo de Internet:

27.102.130[.]63

Nombres de archivos

/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 de MITRE ATT&CK

Esta tabla fue creada utilizando la versión 9 del framework de ATT&CK.

TacticIDNameDescription
Initial AccessT1078Valid AccountsFontOnLake can collect at least ssh credentials.
ExecutionT1059.004Command and Scripting Interpreter: Unix ShellFontOnLake enables execution of Unix Shell commands.
T1059.006Command and Scripting Interpreter: PythonFontOnLake enables execution of arbitrary Python scripts.
T1106Native APIFontOnLake uses fork() to create additional processes such as sshd.
T1204User ExecutionFontOnLake trojanizes standard tools such as cat to execute itself.
PersistenceT1547.006Boot or Logon Autostart Execution: Kernel Modules and ExtensionsOne of FontOnLake’s rootkits can be executed with a start-up script.
T1037Boot or Logon Initialization ScriptsFontOnLake creates a system start-up script ati_remote3.modules.
T1554Compromise Client Software BinaryFontOnLake modifies several standard binaries to achieve persistence.
Defense EvasionT1140Deobfuscate/Decode Files or InformationSome backdoors of FontOnLake can decrypt AES-encrypted and serialized communication and base64 decode encrypted C&C address.
T1222.002File and Directory Permissions Modification: Linux and Mac File and Directory Permissions ModificationFontOnLake’s backdoor can change the permissions of the file it wants to execute.
T1564Hide ArtifactsFontOnLake hides its connections and processes with rootkits.
T1564.001Hide Artifacts: Hidden Files and DirectoriesFontOnLake hides its files with rootkits.
T1027Obfuscated Files or InformationFontOnLake packs its executables with UPX.
T1014RootkitFontOnLake uses rootkits to hide the presence of its processes, files, network connections and drivers.
Credential AccessT1556Modify Authentication ProcessFontOnLake modifies sshd to collect credentials.
DiscoveryT1083File and Directory DiscoveryOne of FontOnLake’s backdoors can list files and directories.
T1082System Information DiscoveryFontOnLake can collect system information from the victim’s machine.
Lateral MovementT1021.004Remote Services: SSHFontOnLake collects ssh credentials and most probably intends to use them for lateral movement.
Command and ControlT1090ProxyFontOnLake can serve as a proxy.
T1071.001Application Layer Protocol: Web ProtocolsFontOnLake acquires additional C&C servers over HTTP.
T1071.002Application Layer Protocol: File Transfer ProtocolsFontOnLake can download additional Python files to be executed over FTP.
T1132.001Data Encoding: Standard EncodingFontOnLake uses base64 to encode HTTPS responses.
T1568Dynamic ResolutionFontOnLake can use HTTP to download resources that contain an IP address and port number pair to connect to and acquire its C&C. It can use dynamic DNS resolution to construct and resolve to a randomly chosen domain.
T1573.001Encrypted Channel: Symmetric CryptographyFontOnLake uses AES to encrypt communication with its C&C.
T1008Fallback ChannelsFontOnLake can use dynamic DNS resolution to construct and resolve to a randomly chosen domain. One of its rootkits also listens for specially crafted packets, which instruct it to download and execute additional files. It also both connects to a C&C and accepts connections on all interfaces.
T1095Non-Application Layer ProtocolFontOnLake uses TCP for communication with its C&C.
T1571Non-Standard PortAlmost every sample of FontOnLake uses a unique non-standard port.
ExfiltrationT1041Exfiltration Over C2 ChannelFontOnLake uses its C&C to exfiltrate collected data.

Newsletter

Discusión