La dernière famille de malwares identifiée par les chercheurs de Mandiant ajoute des portes dérobées et crée une persistance sur les serveurs VMware ESXi en exploitant les fonctionnalités supportées par l'hyperviseur. Selon les spécialistes qui ont découvert et analysé les backdoors, celles-ci ont été emballées et déployées sur les serveurs infectés sous forme de paquet vSphere Installation Bundles (VIB). Ces paquets logiciels sont utilisés pour distribuer des composants qui étendent les fonctionnalités d'ESXi. Les VIB malveillants offraient aux pirates des capacités d'exécution de commandes à distance et de persistance sur les serveurs, ainsi que la possibilité d'exécuter des commandes sur les machines virtuelles invitées fonctionnant sur les serveurs.

Des VIB non signés difficiles à détecter

Par défaut, ESXi est configuré pour n'accepter que l'installation de VIB VMWareCertified, VmwareAccepted, ou PartnerSupported. À ces niveaux d'acceptation, les bundles doivent être signés numériquement soit par VMware, soit par un partenaire dont la signature est considérée de confiance par le spécialiste de la virtualisation. Mais les VIB d’un quatrième niveau d'acceptation appelé CommunitySupported n'ont pas besoin d'être signés numériquement. L'inconvénient, c’est que ces bundles doivent être déployés par un administrateur en utilisant intentionnellement le drapeau -force sur la commande d'installation via l'outil de ligne de commande esxcli. Le fichier manifeste des VIB malveillants découverts par Mandiant avait été modifié pour indiquer « partner » comme niveau d'acceptation, mais en réalité, il n'avait pas de signature numérique et avait été déployé à l'aide de la commande -force. Cela signifie que les attaquants avaient déjà un accès de niveau administrateur aux serveurs avant de les déployer, et qu'il s'agissait donc d'une charge utile de dernière minute. Le fait de préciser « partner » comme source dans le manifeste des VIB malveillants fait que les paquets sont identifiés comme PartnerSupported quand la commande esxcli software vib list est utilisée, alors que ce n’est pas le cas. Cet oubli de la commande qui affiche simplement ce que dit le manifeste a permis aux attaquants de mieux cacher les portes dérobées aux administrateurs. Pour les découvrir, les administrateurs auraient dû utiliser la commande esxcli software vib signature verify qui aurait vérifié la signature numérique de tous les VIB déployés sur leurs serveurs.

Des backdoors au niveau de l'hyperviseur et de la VM

Outre un fichier manifeste et un fichier de signature, les VIB comprennent un ensemble de fichiers et de répertoires qui seront copiés sur le système. L'un de ces fichiers était une porte dérobée passive qui utilisait les noms de services VMware pour se cacher et écoutait le trafic sur un numéro de port codé en dur sur le serveur ESXi. La porte dérobée nommée VIRTUALPITA peut exécuter des commandes arbitraires, charger et télécharger des fichiers, et démarrer et arrêter vmsyslogd, le service ESXi chargé de consigner les messages du noyau du système et d'autres composants. « Au cours de l'exécution de commandes arbitraires, le malware fixe également la variable d'environnement HISTFILE à 0 afin de masquer davantage l'activité produite sur la machine », ont expliqué les chercheurs de Mandiant. « Nous avons aussi constaté que des variantes de ce malware écoutent une interface de communication de machine virtuelle (VMCI) et enregistrent cette activité dans le fichier sysclog », ont-ils ajouté. L'interface VMCI estcelle de communication à haut débit par laquelle les machines virtuelles communiquent avec le noyau de l'hôte. Deux échantillons de VIRTUALPITA découverts sur des systèmes vCenter Linux se faisaient passer pour des services de démarrage dans init.d - un mécanisme de démarrage de Linux - et leur nom de fichier était déguisé en ksmd (Kernel Same-Page Merging Daemon), un service par défaut du noyau, dans les répertoires /usr/libexec/setconf/ et /usr/bin.

Les chercheurs ont également trouvé une porte dérobée secondaire dans les VIB malveillants, qu'ils ont baptisée VIRTUALPIE. Ce programme était écrit en Python et écoutait le trafic IPv6 sur le port 546. Les attaquants pouvaient utiliser cette porte dérobée pour exécuter des commandes arbitraires, transférer des fichiers et ouvrir un reverse shell. Les communications via le port se faisaient par le biais d'un protocole personnalisé qui utilisait le chiffrement RC4. Enfin, certaines attaques impliquaient une troisième backdoor appelée VIRTUALGATE, écrite pour Windows et déployée sur les machines virtuelles invitées qui fonctionnaient sur les serveurs ESXi compromis. Cette brèche autorise les attaquants d'exécuter des commandes sur la machine virtuelle invitée à partir de l'hyperviseur ou entre différentes machines virtuelles invitées fonctionnant sur le même hôte via l’interface de communication de machine virtuelle VMCI.

Les chercheurs ont pu voir des attaquants utilisant VIRTUALPITA pour exécuter un script shell qui lançait un script Python, lequel exécutait ensuite des commandes sur les machines virtuelles invitées. Sur les VM, les commandes étaient exécutées par le service VMware Tools légitime (vmtoolsd.exe). Dans un cas, les commandes consistaient à lister les fichiers de certains répertoires puis à les empaqueter sous forme d'archives CAB. Dans un autre cas, les attaquants ont utilisé l'utilitaire MiniDump pour vider la mémoire d'un processus et y rechercher des informations d'identification en clair. Mandiant n'a pas établi de lien entre ces attaques et des groupes connus, et les suit donc sous un nouvel identifiant de groupe appelé UNC3886. « Compte tenu de la nature très ciblée et évasive de cette intrusion, nous pensons que le groupe UNC3886 est motivé par des objectifs de cyberespionnage », ont déclaré les chercheurs. « De plus, nous estimons avec beaucoup de prudence que le groupe UNC3886 pourrait avoir un lien avec la Chine ». Même s'il n'y a pas encore beaucoup d'incidents où le malware VIB a été utilisé pour compromettre des serveurs ESXi, Mandiant pense que d'autres groupes s’inspireront de cette technique.

Activer le démarrage sécurisé UEFI

Suite à la découverte des chercheurs de Mandiant, VMware a publié un avis ainsi qu'un script PowerShell qui peut servir à rechercher les VIB malveillants dans un environnement. Mais le fournisseur recommande surtout d'activer l’UEFI Secure Boot sur le système, qui fournit une attestation cryptographique des composants depuis le début du processus de démarrage. « Quand Secure Boot est activé, le niveau d'acceptation CommunitySupported sera bloqué, ce qui empêchera les attaquants d'installer des VIB non signés et mal signés (même avec le paramètre --force comme mentionné dans le rapport) », indique VMware dans ses préconisations. « vSphere 8 fait un pas de plus et empêche l'exécution de binaires non signés, ou de binaires installés par des moyens autres qu'un VIB correctement signé. Les efforts déployés par les attaquants pour désactiver cette fonctionnalité génèrent des alarmes ESXi irrévocables, qui sont autant d'indices d’un évènement inhabituel dans un environnement ».