Los investigadores de ESET han analizado el malware que ha estado dirigiéndose a clusters informáticos de alto rendimiento (HPC), entre otros objetivos de alto perfil. Realizamos ingeniería inversa a este pequeño, pero complejo malware, que es portable para muchos sistemas operativos, incluidos Linux, BSD, Solaris y posiblemente AIX y Windows. Hemos llamado a este malware Kobalos por el pequeño tamaño de su código y sus muchos trucos. En la mitología griega, un Kobalos es una criatura pequeña y traviesa. A continuación compartimos un white paper titulado “A wild Kobalos appears: Tricksy Linux malware goes after HPCs” que describe el funcionamiento interno de esta amenaza.

Quizás sin relación con los eventos que involucraron a Kobalos, hubo varios incidentes de seguridad relacionados con clusters de HPC en el último año. Algunos de ellos llegaron a la prensa y los detalles se hicieron públicos en un comunicado del CSIRT de la Infraestructura de Red Europea (EGI, por sus siglas en inglés) sobre casos en los que se desplegaron mineros de criptomonedas. El comunicado muestra que en estos ataques se utilizaron servidores comprometidos en Polonia, Canadá y China. Artículos en los medios también mencionan a Archer, una supercomputadora con sede en el Reino Unido que fue violada y de la cual se robaron las credenciales SSH, pero no contienen detalles sobre qué malware se usó, si es que se utilizó alguno.

Hemos trabajado con el Equipo de Seguridad Informática del CERN y otras organizaciones involucradas en la mitigación de ataques a redes de investigación científica. Según ellos, el uso del malware Kobalos es anterior a los otros incidentes. Si bien sabemos que Kobalos comprometió grandes clusters de HPC, nadie vinculó los incidentes de Kobalos con el uso de malware de criptomonedas. El malware y las técnicas descritas en estos otros ataques son diferentes. También sabemos que Kobalos no se dirige exclusivamente a los HPC: descubrimos que un gran ISP asiático, un proveedor de soluciones de seguridad para endpoints de Estados Unidos (no nosotros), así como algunos servidores personales, también fueron comprometidos por esta amenaza.

Código pequeño, objetivos grandes

Un análisis exhaustivo de Kobalos reveló que a veces es posible determinar de forma remota si un sistema está comprometido al conectarse al servidor SSH utilizando un puerto de origen TCP específico. Usando ese conocimiento, los investigadores de ESET escanearon Internet para encontrar víctimas potenciales. Pudimos identificar múltiples blancos de ataque de Kobalos, incluidos sistemas HPC.

Figura 1. Industria y región de las organizaciones comprometidas

Notificamos a todas las víctimas identificadas y trabajamos junto a ellas para remediar el compromiso.

El backdoor

Kobalos es un backdoor genérico en el sentido de que contiene muchos comandos que no revelan la intención de los atacantes. En resumen, Kobalos garantiza el acceso remoto al sistema de archivos, brinda la capacidad de generar sesiones de terminal y permite establecer conexiones de proxy con otros servidores infectados por Kobalos.

Figura 2. Descripción general de las funciones de Kobalos y formas de acceder a ellas

Los operadores tienen varias formas de llegar a una máquina infectada con Kobalos. El método que más hemos visto es en el cual Kobalos está embebido en el ejecutable del servidor OpenSSH (sshd) y activará el código del backdoor si la conexión proviene de un puerto de origen TCP específico. Hay otras variantes independientes que no están embebidas en sshd. Estas variantes o se conectan a un servidor C&C que actuará como intermediario o esperan una conexión entrante en un puerto TCP determinado.

Algo que hace único a Kobalos es el hecho de que el código para ejecutar un servidor de C&C está en el propio Kobalos. Los operadores pueden convertir cualquier servidor comprometido por Kobalos en un servidor de C&C enviando un simple comando. Como las direcciones IP y los puertos del servidor C&C están hardcodeados en el ejecutable, los operadores pueden generar nuevas muestras de Kobalos que utilizan este nuevo servidor de C&C.

El compañero

En la mayoría de los sistemas comprometidos por Kobalos, el cliente SSH es comprometido para robar credenciales. Este ladrón de credenciales no se parece a ninguno de los clientes OpenSSH maliciosos que hemos visto anteriormente, y hemos examinado decenas de ellos en los últimos ocho años. La sofisticación de este componente no es la misma que la del propio Kobalos: no se hizo ningún esfuerzo por ofuscar las primeras variantes del ladrón de credenciales. Por ejemplo, las strings se dejaron sin cifrar y los nombres de usuario y las contraseñas robadas son simplemente escritas en un archivo en el disco. Sin embargo, encontramos variantes más nuevas que contienen cierta ofuscación y la capacidad de exfiltrar credenciales a través de la red.

La presencia de este ladrón de credenciales puede responder parcialmente la pregunta acerca de cómo se propaga Kobalos. Cualquiera que use el cliente SSH de una máquina comprometida tendrá sus credenciales capturadas. Estas credenciales podrán entonces ser usadas por los atacantes para instalar Kobalos en los nuevos servidores que se descubrieron más tarde.

Cómo se esconde

Analizar Kobalos no es tan trivial como suele ser en mayoría de los códigos maliciosos de Linux porque todo su código es contenido en una única función que se llama a sí misma de forma recursiva para realizar subtareas.

Figura 3. Diagrama de control de flujo de Kobalos

Esto hace que sea más difícil de analizar. Además, todas las strings están cifradas, por lo que es más difícil encontrar el código malicioso que al mirar las muestras de forma estática.

El uso del backdoor requiere una clave RSA privada de 512 bits y una contraseña de 32 bytes. Una vez autenticadas, las claves RC4 son intercambiadas y el resto de la comunicación es cifrada con ellas.

Resumimos el protocolo de red en el siguiente diagrama de secuencia.

Figura 4. Diagrama de secuencia que resume los protocolos de red de Kobalos

Remediación

Los productos de ESET detectan el malware Kobalos como Linux/Kobalos o Linux/Agent.IV. El ladrón de credenciales SSH se detecta como Linux/SSHDoor.EV, Linux/SSHDoor.FB o Linux/SSHDoor.FC. Una regla YARA también está disponible en el repositorio de ioc de malware de ESET en GitHub.

Desde una perspectiva de red, es posible detectar Kobalos buscando tráfico que no sea SSH en el puerto atribuido a un servidor SSH. Cuando el backdoor Kobalos se comunica con un operador, no se intercambia ningún banner SSH (SSH-2.0-…), ni desde el cliente ni del servidor.

Previamente hemos sugerido para conectarse a servidores SSH configurar antes el doble factor de autenticación (2FA). Kobalos es otro caso en el que el 2FA podría haber mitigado la amenaza, ya que el uso de credenciales robadas parece ser una de las formas en que se puede propagar a diferentes sistemas.

Conclusión

No pudimos determinar las intenciones de los operadores de Kobalos. Los administradores de sistemas de las máquinas comprometidas no encontraron ningún otro malware, excepto por el ladrón de credenciales SSH. Tampoco tuvimos acceso a las capturas de tráfico de red de los operadores en acción.

La forma en que Kobalos está contenido en una sola función y el uso de un puerto abierto existente para llegar a Kobalos hace que esta amenaza sea más difícil de encontrar. Esperamos que los detalles que revelamos hoy en nuestra nueva publicación ayuden a crear conciencia sobre esta amenaza y poner su actividad bajo el microscopio. Este nivel de sofisticación rara vez se ve en el malware de Linux. Dado que es más avanzado que el promedio y que comprometió organizaciones bastante grandes, Kobalos es probable que circule durante un tiempo.

En nuestro repositorio de GitHub se puede encontrar una lista completa de Indicadores de Compromiso (IoC) y muestras.

Para cualquier consulta, o para el envío de muestra relacionadas con el tema, escríbanos a threatintel@eset.com.

Nos gustaría agradecer el trabajo de Maciej Kotowicz de MalwareLab.pl, quien también analizó Kobalos de forma independiente y con quien compartimos los resultados mutuamente. Él presentó esta amenaza en la edición 2020 de la conferencia Oh My H@ck.

Técnicas de MITRE ATT&CK

La siguiente tabla fue creada utilizando la versión 8 del framework ATT&CK .

Tactic ID Name Description
Persistence T1554 Compromise Client Software Binary Kobalos may embed its malicious payload in the OpenSSH server and replace the legitimate file (sshd).
Kobalos replaces the SSH client on compromised systems to steal credentials.
T1205 Traffic Signaling Kobalos may be triggered by an incoming TCP connection to a legitimate service from a specific source port.
Defense Evasion T1070.003 Clear Command History No command history related to the attack was found on Kobalos-infected machines.
T1070.006 Timestomp When files are replaced by Kobalos operators, timestamps are forged.
T1027.002 Software Packing Kobalos’s code is flattened into a single function using a custom packer and its strings are encrypted.
Command and Control T1573.001 Encrypted Channel: Symmetric Cryptography Kobalos’s post-authentication communication channel is encrypted with RC4.
T1573.002 Encrypted Channel: Asymmetric Cryptography Kobalos’s authentication and key exchange is performed using RSA-512.
T1090.003 Proxy: Multi-hop Proxy Kobalos can serve as a proxy to other Kobalos-compromised systems.