Lojax le premier rootkit qui s’installe dans l’UEFI

Lojax le premier rootkit qui s’installe dans l’UEFI

UEFI c’est ce remplaçant moderne de ce qu’on appelait avant le BIOS. On le trouve partout maintenant, et je dois reconnaitre que j’aime moyen ce BIOS moderne qui semble faire ce qu’il peut pour empêcher l’installation des OS libres comme Linux. Installer Linux est toujours plus compliqué en présence d’UEFI.

Sur le papier UEFI est beaucoup sécurisé que le BIOS puisqu’il n’autorise que les systèmes reconnus par Secure boot. Dans les faits, et c’est une nouveauté, l’UEFI est tout à fait piratable lui aussi, s’il n’est pas correctement paramétré. Ce fait n’est pas seulement vrai en théorie, mais aussi en pratique. En effet, un document émis en septembre 2018 par l’éditeur d’antivirus slovaque ESET décrit par le menu comment le groupe de hackers APT28 (appelé aussi Sednit) a réussi à installer un rootkit dans l’UEFI.

Une des caractéristiques communes aux différents rootkits c’est qu’il sont extrêmement difficile à éliminer des machines une fois qu’ils sont installés. Cependant, une technique violente mais efficace, qui consiste à reformater le disque dur ou à le changer, fonctionne. Cette technique ne fonctionne pas avec un rootkit qui aurait réussi à s’installer dans l’UEFI.

Une fois installé dans l’UEFI, le rootkit est au coeur de la carte mère, dans un endroit qui sera exécuté avant même que la main soit donnée au système d’exploitation. Changer le disque dur ne servira à rien, le rootkit sera toujours présent sur la carte mère. Une vraie chienlit.

Comment fonctionne ce rootkit nommé Lojax ?

Le mieux est de lire le rapport via le lien ci-dessus. Il est en anglais malheureusement. Je vais essayer de résumer les différents points.

Il y a quelques années est apparu un module activable dans l’UEFI qui s’appelait Computrace. Ce module n’était pas activé par défaut mais il était facile de l’activer dans l’UEFI.

Ce module est en fait un antivol. Une fois activé, le PC contacte au boot les serveurs de la société éditrice du module, Absolute Software, et vérifie qu’il n’est pas déclaré volé. Si c’est le cas, il ne boote pas. Pour fonctionner, ce service est assez violent puisqu’il remplace l’exécutable autochk.exe de Windows par une version modifiée qui installe et lance au boot un de leur programme maison (small agent) appelé rcpnetp.exe

Ce small agent rcpnetp.exe communique avec les serveurs d’Absolute Software pour télécharger et installer l’agent de surveillance antivol de la machine. Jusque là tout va bien.

Sauf que les hackers se sont rendus compte que le small agent contactait un serveur dont le nom figurait en dur dans son corps. Certes le corps était chiffré, mais avec une clé XOR à un seul octet (0xB5). Il était donc très facile de créer des versions modifiées de ce small agent pointant vers d’autres serveurs que ceux d’Absolute Software, vers des serveurs contrôlés par des hackers. De plus, en analysant le protocole de communication, ils se sont rendus compte que ce détournement de cible leur permettrait d’exécuter leur code arbitraire via le small agent modifié.

C’est déjà en soi une faille de sécurité majeure, mais l’histoire ne s’arrête pas là. Les hackers se sont rendus compte qu’un logiciel du nom de RWEverything, logiciel légal vendu dans le commerce et utilisé pour lire et écrire dans l’UEFI, disposait d’un driver noyau signé appelé RwDrv.sys. Ils ont donc créé un outil appelé info_efi.exe qui non seulement lit (via le driver RwDrv.sys qu’il a repris et qu’il embarque) mais aussi modifie le code de l’UEFI. Ce code modifié doit ensuite être injecté dans le “BIOS” pour écraser le code UEFI original. Pour cela, le rootkit dispose d’un outil appelé Rewriter_binary qui fait sauter les protections en écriture du BIOS selon la stratégie suivante :

Enfin, le rootkit installe la clé :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute =
“autocheck autochk *”

Et le service RwDrv est stoppé et désinstallé. Bon, après si vous voulez plus de détail, notamment sur comment se protéger, il faut lire le rapport.

Perso, ce que je retiens, c’est qu’une fois de plus on est peinard sous Linux. En effet, cette avalanche de catastrophes ne se produit qu’en utilisant des outils Windows et surtout est orientée pour une prise de contrôle à distance des PC sous Windows. Quand bien même le rootkit est installé dans l’UEFI, il est inopérant sous Linux.