Les chercheurs d'ESET ont analysé les logiciels malveillants qui ont ciblé les grappes de calcul haute performance (HPC), entre autres cibles très en vue. Nous avons procédé à la rétro-ingénierie de ce petit, mais complexe, logiciel malveillant qui est portable sur de nombreux systèmes d'exploitation, y compris Linux, BSD, Solaris, et peut-être AIX et Windows. Nous avons nommé ce logiciel malveillant Kobalos pour la taille minuscule de son code et ses nombreuses astuces ; dans la mythologie grecque, un Kobalos est une petite créature malicieuse. Aujourd'hui, nous publions un article intitulé A wild Kobalos appears: Tricksy Linux malware goes after HPCs, qui décrit le fonctionnement interne de cette menace.

Peut-être sans rapport avec les événements de Kobalos, il y a eu de multiples incidents de sécurité impliquant des clusters HPC au cours de l'année dernière. Certains ont fait la une des médias et les détails ont été rendus publics dans un avis du CSIRT-EGI (European Grid Infrastructure) sur les cas où des mineurs de cryptologie ont été déployés. L'avis d'EGI CSIRT montre que des serveurs compromis en Pologne, au Canada et en Chine ont été utilisés dans ces attaques. Les articles de presse mentionnent également Archer, un superordinateur basé au Royaume-Uni qui a fait l'objet d'une brèche et où les références SSH ont été volées, mais ne contiennent pas de détails sur les logiciels malveillants utilisés, le cas échéant.

Nous avons travaillé avec l'équipe de sécurité informatique du CERN et d'autres organisations impliquées dans l'atténuation des attaques contre les réseaux de recherche scientifique. Selon eux, l'utilisation du logiciel malveillant Kobalos est antérieure aux autres incidents. Bien que nous sachions que Kobalos a compromis de grands clusters HPC, personne n'a pu établir de lien entre les incidents Kobalos et l'utilisation de logiciels malveillants de cryptominage. Les logiciels malveillants et les techniques décrits dans ces autres attaques sont différents. Nous savons également que Kobalos ne vise pas exclusivement les HPC : nous avons découvert qu'un grand fournisseur d'accès Internet asiatique, un fournisseur de sécurité des points finaux nord-américain (pas nous), ainsi que certains serveurs personnels ont également été compromis par cette menace.

Petit code, grosses cibles

Une analyse approfondie de Kobalos a révélé qu'il est parfois possible de déterminer à distance si un système est compromis en se connectant au serveur SSH à l'aide d'un port source TCP spécifique. En utilisant ces connaissances, les chercheurs d'ESET ont scanné l'internet pour trouver des victimes potentielles. Nous avons pu identifier plusieurs cibles de Kobalos, y compris des systèmes HPC.

Figure 1. Secteur d'activité et région des organisations compromises

Nous avons informé toutes les victimes identifiées et avons travaillé avec elles pour y remédier.

La backdoor

Kobalos est une porte dérobée générique en ce sens qu'elle contient des commandes générales qui ne révèlent pas les intentions des attaquants. En bref, Kobalos permet l'accès à distance au système de fichiers, offre la possibilité d'ouvrir des sessions de terminal et permet des connexions par proxy à d'autres serveurs infectés par Kobalos.

Figure 2. Vue d'ensemble des fonctionnalités de Kobalos et des moyens d'y accéder

Les opérateurs disposent de plusieurs moyens pour atteindre une machine infectée par le virus Kobalos. La méthode que nous avons vue le plus souvent est celle où Kobalos est intégré dans l'exécutable du serveur OpenSSH (sshd) et déclenchera le code de la porte dérobée si la connexion provient d'un port source TCP spécifique. Il existe d'autres variantes autonomes qui ne sont pas intégrées dans sshd. Ces variantes se connectent soit à un serveur C&C qui agira comme intermédiaire, soit attendent une connexion entrante sur un port TCP donné.

Ce qui rend Kobalos unique est le fait que le code pour faire fonctionner un serveur C&C se trouve dans Kobalos lui-même. Tout serveur compromis par Kobalos peut être transformé en serveur C&C par les opérateurs qui envoient une seule commande. Comme les adresses IP et les ports du serveur C&C sont codés en dur dans l'exécutable, les opérateurs peuvent alors générer de nouveaux échantillons Kobalos qui utilisent ce nouveau serveur C&C.

L'acolyte

Dans la plupart des systèmes compromis par Kobalos, le client SSH est compromis pour voler des identifiants. Ce voleur d'identifiants ne ressemble à aucun des clients malveillants d'OpenSSH que nous avons vus auparavant, et nous en avons examiné des dizaines de ceux-ci au cours des huit dernières années. La sophistication de ce composant n'est pas la même que celle de Kobalos lui-même : il n'y a eu aucun effort pour dissimuler les premières variantes du voleur de titres d'identité. Par exemple, des chaînes de caractères étaient laissées non chiffrés et les noms d'utilisateur et mots de passe volés sont simplement écrits dans un fichier sur le disque. Cependant, nous avons trouvé des variantes plus récentes qui contiennent une certaine obscurcissement et la possibilité d'exfiltrer les informations d'identification sur le réseau.

La présence de ce voleur d'identifiants peut répondre en partie à la manière dont Kobalos se propage. Toute personne utilisant le client SSH d'une machine compromise verra ses identifiants capturés. Ces informations d'identification peuvent ensuite être utilisées par les attaquants pour installer Kobalos sur le serveur nouvellement découvert.

Comment se cache-t-il?

L'analyse de Kobalos n'est pas aussi triviale que celle de la plupart des logiciels malveillants de Linux, car tout son code est contenu dans une seule fonction qui s'appelle récursivement à effectuer des sous-tâches.

Figure 3. Graphique du flux de contrôle de Kobalos

Cela rend l'analyse plus difficile. De plus, toutes les chaînes sont chiffrées, il est donc plus difficile de trouver le code malveillant qu'en regardant les échantillons de manière statique.

L'utilisation de la porte dérobée nécessite une clé privée RSA de 512 bits et un mot de passe de 32 octets. Une fois authentifiées, les clés RC4 sont échangées et le reste de la communication est chiffré avec elles.

Le protocole de réseau est résumé par le diagramme de séquence.

Figure 4. Diagramme de séquence résumant les protocoles de réseau Kobalos

Remédiation

Les produits ESET détectent le logiciel malveillant Kobalos sous la forme de Linux/Kobalos ou Linux/Agent.IV. Le voleur d'identité SSH est détecté sous Linux/SSHDoor.EV, Linux/SSHDoor.FB ou Linux/SSHDoor.FC. Une règle YARA est également disponible dans le répertoire malware-ioc d’ESET sur GitHub.

D'un point de vue réseau, il est possible de détecter Kobalos en recherchant le trafic non-SSH sur le port attribué à un serveur SSH. Lorsque la porte dérobée Kobalos communique avec un opérateur, il n'y a pas de bannière SSH (SSH-2.0-...) échangée, ni du client ni du serveur.

Nous avons déjà suggéré par le passé d'implémenter l'authentification à deux facteurs (2FA) pour la connexion aux serveurs SSH. Kobalos est un autre cas où la 2FA aurait pu atténuer la menace, puisque l'utilisation d'identifiants volés semble être l'un des moyens par lesquels elle peut se propager à différents systèmes.

Conclusion

Nous n'avons pas pu déterminer les intentions des opérateurs de Kobalos. Aucun autre logiciel malveillant, à l'exception du voleur de références SSH, n'a été trouvé par les administrateurs système des machines compromises. Nous n'avons pas non plus eu accès aux captures de trafic réseau des opérateurs en action.

La façon dont Kobalos est étroitement contenu dans une seule fonction et l'utilisation d'un port ouvert existant pour atteindre Kobalos rend cette menace plus difficile à trouver. Nous espérons que les détails que nous révélons aujourd'hui dans notre nouvelle publication contribueront à sensibiliser à cette menace et à mettre son activité sous le microscope. Ce niveau de sophistication n'est que rarement observé dans les logiciels malveillants pour Linux. Étant donné qu'il est plus avancé que la moyenne et qu'il compromet des organisations assez importantes, Kobalos pourrait bien être en train de courir un peu partout.

Une liste complète des indicateurs de compromis (IoC) et des échantillons se trouve dans notre répertoire GitHub.

Pour toute demande de renseignements, ou pour soumettre des échantillons en rapport avec le sujet, contactez-nous à threatintel@eset.com.

Nous tenons à souligner le travail de Maciej Kotowicz de MalwareLab.pl qui a également analysé Kobalos de manière indépendante et avec qui nous partageons mutuellement les résultats. Il a fait une présentation sur cette menace lors de la conférence Oh My H@ck 2020.

Techniques MITRE ATT&CK

Ce tableau a été construit en utilisant la version 8 de Mitre 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.