SSH, abréviation de Secure SHell, est un protocole réseau permettant de connecter des ordinateurs et des périphériques à distance via une liaison réseau chiffrée. Il est généralement utilisé pour gérer les serveurs Linux à l'aide d'une console en mode texte. SSH est le moyen le plus courant pour les administrateurs système de gérer des serveurs Linux virtuels, en nuage ou dédiés loués.

L'implémentation de facto, incluse dans presque toutes les distributions Linux, est la version portable d'OpenSSH. Une méthode populaire utilisée par les attaquants pour maintenir la persistance sur les serveurs Linux compromis est d’utiliser une backdoor (ou porte dérobée) sur le serveur OpenSSH et le client déjà installé. Il y a plusieurs raisons pour lesquelles la création de logiciels malveillants basés sur OpenSSH est populaire :

  • Il n'est pas nécessaire d'ouvrir un nouveau port TCP sur la machine compromise. SSH devrait déjà être là et probablement accessible par Internet.
  • Le démon et le client OpenSSH voient les mots de passe en texte clair, ce qui permet à l'attaquant de voler les identifiants.
  • Le code source OpenSSH est disponible gratuitement, ce qui facilite la création d'une version « personnalisée » (porte dérobée).
  • OpenSSH est conçu pour rendre difficile l'implémentation d'une attaque d'homme au milieu et pour fouiner dans l'activité de ses utilisateurs. Les attaquants peuvent en profiter pour rester sous le radar pendant qu'ils mènent leurs activités malveillantes sur le serveur compromis.

Pour mieux combattre les menaces de logiciels malveillants Linux, les chercheurs d'ESET sont partis à la recherche de portes dérobées OpenSSH dans la nature, connues et inconnues. Nous avons commencé notre enquête sur les connaissances glanées grâce à l'un de nos efforts de recherche précédents, l'Opération Windigo. Dans ce livre blanc, nous avons décrit en détail les multiples composants malveillants de Windigo et comment ils fonctionnent ensemble. Au cœur de cette solution se trouvait Ebury, un voleur de porte dérobée et de certificats OpenSSH installé sur des dizaines de milliers de serveurs Linux compromis dans le monde entier.

Quelque chose qui n'a pas été discuté à l'origine dans le paper d’'Opération Windigo, mais que les chercheurs d'ESET ont abordé lors de conférences, est la façon dont ces attaquants essaient de détecter d'autres portes dérobées OpenSSH avant de déployer leurs propres (Ebury). Ils utilisent un script Perl qu'ils ont développé et qui contient plus de 40 signatures pour différentes portes dérobées.

@sd = gs( 'IN: %s@ \(%s\) ', '-B 2' );
@sc = gc( 'OUT=> %s@%s \(%s\)', '-B 1' );
if ( $sd[1] =~ m|^/| or $sc[0] =~ m|^/| ) {
    print
      "mod_sshd29: '$sd[0]':'$sd[1]':'$sd[2]'\nmod_sshc29: '$sc[0]':'$sc[1]'\n";
    ssh_ls( $sd[1], $sc[0] );
}

Exemple de signature trouvée dans le script Windigo Perl pour détecter une porte dérobée OpenSSH (sortie ordonnée)

Lorsque nous avons examiné ces signatures, nous nous sommes vite rendu compte que nous n'avions pas d'échantillons correspondant à la plupart des portes dérobées décrites dans le scénario. Les opérateurs de logiciels malveillants avaient en fait plus de connaissances et de visibilité sur les portes dérobées SSH dans la nature que nous. Pour faire face à cette situation, nous avons commencé à rechercher les échantillons de logiciels malveillants manquants en utilisant leurs signatures. Cela nous a permis de trouver des échantillons jusqu'alors inconnus de l'industrie de la sécurité informatique et de rapporter des résultats de recherche détaillés.

Aujourd'hui, les chercheurs d'ESET publient un white paper centré sur 21 familles de logiciels malveillants OpenSSH observables dans la nature. Bien que certaines de ces portes dérobées aient déjà été analysées et documentées en ligne, aucune analyse de la plupart d'entre elles n'était disponible jusqu'à présent. Le but de ce document est de fournir une vue d'ensemble du paysage actuel des portes dérobées OpenSSH. Il est le résultat d'un projet de recherche à long terme impliquant l'écriture de règles et de détections, le déploiement de pots de miel personnalisés, la classification des échantillons et l'analyse des différentes familles de logiciels malveillants.

Lever le voile sur le côté obscur

Peu après la recherche Windigo, nous avons traduit les signatures du script Perl susmentionné en règles YARA (maintenant disponible sur GitHub) et les avons utilisées pour trouver de nouveaux échantillons de logiciels malveillants dans nos différents flux. Nous avons collecté de nouveaux échantillons pendant plus de trois ans et, après avoir filtré les faux positifs, nous avons obtenu quelques centaines de binaires OpenSSH en cheval de Troie. L'analyse de cette collection met en évidence l'utilisation d'un ensemble de caractéristiques communes aux différentes portes dérobées. Deux d'entre eux se distinguent vraiment :

  • 18 des 21 familles disposent d'une fonction de vol de justificatifs, permettant de voler les mots de passe ou les clés utilisées par le client et le serveur cheval de Troie OpenSSH.
  • 17 des 21 familles disposent d'un mode porte dérobée, permettant à l'attaquant de se connecter de manière furtive et persistante à la machine compromise.

Plus de détails sur les caractéristiques communes de ces portes dérobées OpenSSH sont fournis dans le white paper.

Parallèlement à l'analyse des échantillons collectés, nous avons mis en place une architecture de pot de miel personnalisée (détaillée en profondeur dans le livre blanc) pour étendre nos résultats. L'idée était de fournir (c'est-à-dire de divulguer intentionnellement) des informations d'identification aux attaquants en utilisant des techniques d'exfiltration de rétro ingénierie à partir des échantillons. Cela nous permettrait d'observer le comportement des attaquants une fois qu'ils ont compromis un serveur, et nous espérons obtenir les échantillons les plus récents.

La combinaison de notre chasse passive avec la base des règles YARA et l'interaction des attaquants avec notre pot de miel nous donne un aperçu à la fois de l'activité des attaquants et de leurs compétences.

Ce graphique résume les familles de portes dérobées OpenSSH découvertes dans le cadre de cette recherche. Certains de nos lecteurs auront sûrement reconnu ces noms comme correspondant à des planètes de la saga Star Wars. Notez qu'ils ne correspondent pas aux noms de détection d'ESET ; c'est juste un moyen pratique de les identifier dans notre recherche. Leurs noms de détection et diverses données d'IoC sont fournis dans le white paper et sur notre dépôt GitHub d'IoC.

L'évaluation de la complexité pour une famille peut être subjective. Nous avons essayé d'être aussi objectifs que possible et de baser notre classification sur plusieurs facteurs, notamment :

  • La présence d'une technique d'exfiltration - présence d'un serveur C&C, d'un protocole réseau, de chiffrement pour le transport ou le stockage, etc.
  • L'implémentation de modules offrant des fonctionnalités supplémentaires à OpenSSH - commandes supplémentaires, extraction de cryptomonnaies, etc.
  • L'utilisation du chiffrement ou de l'obscurcissement pour rendre l'analyse plus difficile.

Chaque famille a sa propre description complète dans le rapport complet, mais la représentation de la galaxie inclut plusieurs points à retenir :

  • Selon notre échantillon, la complexité du code est de plus en plus importante pour les familles les plus récentes.
  • Nous avons recueilli davantage d'échantillons pour les familles plus âgées et plus simples (souvent des familles de série). Cela peut s'expliquer par le fait que les familles plus sophistiquées sont plus difficiles à détecter et moins répandus.

Quelques planètes intéressantes

Certaines des backdoors que nous avons trouvées ne sont pas particulièrement nouvelles ou intéressantes d'un point de vue technique. Il y a, cependant, quelques exceptions qui montrent que certains attaquants font beaucoup d'efforts pour maintenir leurs botnets.

L'un d'eux est Kessel. Kessel se distingue par ses multiples modes de communication avec son serveur C&C. Il implémente le HTTP, le TCP brut et le DNS. En plus de demander des informations d'identification volées, le serveur C&C a également la possibilité d'envoyer des commandes supplémentaires telles que le téléchargement ou le chargement de fichiers sur la machine compromise. Toute communication avec son serveur C&C est également chiffrée. C'est aussi une nouveauté : le domaine du serveur C&C a été enregistré en août 2018.

Exfiltration DNS de Kessel

Un autre exemple est celui de Kamino. L'analyse des échantillons nous a permis de découvrir que cette menace existe depuis longtemps et qu'elle a évolué, tant dans ses techniques d'obscurcissement que dans son utilisation. Il a été utilisé pour la première fois par une campagne de logiciels criminels connus pour exploiter le logiciel malveillant DarkLeech pour rediriger le trafic, comme l'ont documenté des chercheurs d'ESET dès 2013. Il est intéressant de noter qu'il s'agit de la même porte dérobée qui a été utilisée lors d'attaques contre des banques russes par un groupe appelé Carbanak des années plus tard, tel que décrit par le groupe IB. Ce passage des logiciels criminels à des attaques plus ciblées est intrigant. Il est tentant de penser que les deux attaques proviennent du même groupe, mais cela pourrait aussi s'expliquer par le fait que les auteurs originaux ont vendu leur code à plusieurs groupes criminels.

Des analyses détaillées de Chandrila (transmission de données par mots de passe) et de Bonadan (fonctions d'extraction de devises cryptographiques) sont également fournies dans ce white paper.

Atténuation et détection

Comme les données que nous avons analysées constituaient pour la plupart des échantillons de logiciels malveillants prélevés hors de leur contexte, il est difficile d'identifier les vecteurs d'infection originaux. Les techniques pourraient inclure : l'utilisation des identifiants volés après qu'une victime ait utilisé un client SSH compromis, ait été affectée par la force brute ou l'exploitation d'un service vulnérable exposé par le serveur.

N'importe lequel des vecteurs d'attaque mentionnés pourrait être utilisé dans de futures attaques, donc toutes les bonnes pratiques visant à empêcher qu'un système ne soit compromis devraient être suivies :

  • Favoriser l'authentification par clé pour SSH.
  • Désactiver la connexion root
  • Utilisez une solution d'authentification multifactorielle pour SSH.

Les produits ESET détectent les portes dérobées OpenSSH analysées comme variantes Linux/SSHDoor. De plus, le jeu de règles YARA que nous avons utilisé peut aider à classer les échantillons potentiels. L'article donne plus de détails sur la validation des fichiers OpenSSH à l'aide des gestionnaires de paquets Linux pour vérifier l'intégrité des exécutables installés.

Conclusion

Avec cette recherche, nous espérons faire la lumière sur les portes dérobées OpenSSH et, par extension, sur les logiciels malveillants Linux en général. Comme l’illustre la diversité de la complexité du code en cause, certains attaquants réutilisent simplement le code source disponible, tandis que d'autres consacrent de réels efforts à leurs implémentations sur mesure. De plus, la chasse active via notre structure de honeypot personnalisée montre que certains attaquants sont encore actifs et font preuve d’une grande prudence lors du déploiement de leurs portes dérobées.

After reading the paper you may feel that there is more Linux malware now than before; that this is a rising trend. We don’t think this is necessarily the case: there has always been Linux malware but due to a lack of visibility it stays under the radar for a longer period.

Après la lecture de cette recherche, vous pourriez croire que plus de logiciels malveillants visent Linux qu'auparavant et qu'il s'agit d'une tendance à la hausse. Nous ne croyons pas que ce soit nécessairement le cas. En effet, il y a toujours eu des logiciels malveillants Linux, mais en raison du manque de visibilité, ceux-ci pouvaient passer sous le radar pendant une plus longue période.

Il reste encore beaucoup de questions sans réponse : quelle est la prévalence de chacune de ces familles? Comment les systèmes compromis sont-ils utilisés par les attaquants? En plus de voler des titres de compétences, utilisent-ils des techniques supplémentaires pour se propager?

Les chercheurs d'ESET pensent que les administrateurs système et les chercheurs de logiciels malveillants peuvent s'entraider dans la lutte contre les logiciels malveillants côté serveur. N'hésitez pas à nous contacter à threatintel@eset.com si vous avez des détails supplémentaires sur les portes dérobées que nous avons décrites (ou non) ou si vous avez des questions.