Comment les hackers russes arrivent à plomber les PC Windows... pour toujours

Les chercheurs en sécurité d’Eset ont, pour la première fois, détecté un rootkit UEFI capable d’infecter de manière persistante un système Windows. Il a été utilisé par le groupe de hackers russes Sednit alias APT28.

On savait que les rootkits UEFI existaient, mais personne n’en avait encore vu dans la vraie vie. C’est désormais chose faite, grâce aux limiers de l’éditeur Eset. Dans un livre blanc qu’ils viennent de publier, ils expliquent en détails les rouages techniques d’une campagne de cyberespionnage du groupe de hackers Sednit alias APT28. Ce dernier, selon plusieurs experts, serait une émanation de l'agence de renseignement militaire russe GRU. Baptisée « LoJax », cette opération – qui a visé des organisations gouvernementales en Europe centrale et Europe de l’est – s’appuie justement sur un fameux rootkit UEFI dont ils ont pu capturer et analyser un exemplaire.

L’UEFI est la partie du firmware de la carte mère qui permet de démarrer le système d’exploitation. Elle est stockée dans une puce SPI Flash. Pouvoir pirater ce logiciel fait partie du Graal des agences de cyberespionnage car cela leur assure un haut degré de persistance. Même si le système d’exploitation est totalement réinstallé, le malware peut quand même y être réinjecté. Par le passé, les révélations liées au piratage de Hacking Team et aux publications de Wikileaks/Vault 7 avaient montré que cette technique était réellement utilisée, tant sur Windows que sur macOS. Pour le système d'Apple, plusieurs failles ont d'ailleurs été révélés ces dernières années pour réaliser ce type de piratage. 

Un malware aux origines multiples

Ce qui est singulier dans le cas de LoJax, c’est que les hackers se sont appuyés sur un tas de logiciels existants et légitimes. Pour infecter l’UEFI, ils ont utilisé le logiciel utilitaire RWEverything et son driver RwDrv.sys, qui leur permettent de télécharger l’image complète de la mémoire Flash SPI.

Un second exécutable va ensuite procéder à l’insertion d’un driver malveillant dans cette image et à la réécriture de la puce. Les hackers utilisent pour cela une série de vulnérabilités qui existent dans des firmwares d’anciennes générations, ce qui leur permet de contourner les contrôles d’accès en écriture.

Sur les firmwares de nouvelles générations dotés de Secure Boot, cette technique n’est pas possible car tous les drivers sont obligatoirement signés. D’après les chercheurs, ces deux exécutables sont probablement installés sur le système à la suite d’un premier piratage de la machine.

Etapes d'infection LoJax Eset

Une fois que l’UEFI est infecté, celui-ci va procéder à l’installation d’un premier agent logiciel (rpcnetp.exe). Celui-ci est en fait une version « trojanisée » de LoJack, un logiciel développé par l’éditeur Absolute Software dont le but est de fournir une protection contre le vol des ordinateurs. La  version malveillante de ce logiciel est capable de s’injecter dans divers processus du système et  met en place un canal de communication avec des serveurs de commande et contrôle extérieurs. Ce qui permettra ensuite de télécharger un second agent, aux fonctionnalités plus riches.

Se protéger contre ce type de menaces n’est pas facile. Sur les firmwares récents, il est conseillé de vérifier que Secure Boot est bien activé. Eset propose par ailleurs, dans sa solution, un « UEFI Scanner » censé détecter les codes malveillants dans le firmware d'un ordinateur.