Mise à jour, 9 octobre 2018 : La section du White paper consacrée à l'assainissement contenait des informations inexactes. Secure Boot ne protège pas contre le rootkit UEFI décrit dans cette recherche. Nous vous conseillons de tenir à jour votre micrologiciel UEFI et, si possible, d'avoir un processeur avec une racine de confiance matérielle comme c'est le cas avec les processeurs Intel supportant Intel Boot Guard (de la famille des processeurs Intel Haswell).
Les portes dérobées (ou rootkits) UEFI sont généralement considérées comme des outils extrêmement dangereux pour la mise en œuvre de cyberattaques, car elles sont difficiles à détecter et capables de survivre à des mesures de sécurité telles que la réinstallation du système d'exploitation, voire même le remplacement du disque dur. Certains rootkits UEFI ont été présentés comme des preuves de concept; certains sont connus pour être à la disposition (au moins certains) des agences gouvernementales. Cependant, aucun rootkit UEFI n'a jamais été détecté dans la nature - jusqu'à ce que nous découvrions une campagne du groupe Sednit APT qui a déployé avec succès un module UEFI malveillant sur le système de la victime appelé LoJax.
La découverte de ce premier rootkit UEFI dans la nature est remarquable pour deux raisons.
Tout d'abord, elle montre que les portes dérobées UEFI constituent une menace réelle, et pas seulement un sujet de conférence intéressant.
Deuxièmement, cette découverte sert d'avertissement, en particulier à tous ceux qui pourraient se trouver dans la ligne de mire de Sednit. Ce groupe d'APT, aussi connu sous les noms d'APT28, STRONTIUM, Sofacy et Fancy Bear, pourrait s’avére être encore plus dangereux qu'on ne le pensait.
Notre analyse de cette campagne Sednit qui utilise le rootkit UEFI a été présentée le 27 septembre lors de la conférence Microsoft BlueHat 2018 et est décrite en détail dans notre White paper : « LoJax : Premier rootkit UEFI trouvé dans la nature, gracieuseté du livre blanc du groupe Sednit ». Dans le présent billet de blog, nous résumons nos principales conclusions.
Le groupe Sednit opère depuis au moins 2004 et a souvent fait la une des journaux ces dernières années : on pense qu'il est à l'origine d'attaques majeures et très médiatisées. Par exemple, le ministère américain de la Justice a désigné le groupe comme étant responsable du piratage du Comité national démocratique (DNC) juste avant les élections américaines de 2016. Le groupe est également soupçonné d'être à l'origine du piratage du réseau mondial de télévision TV5 Monde, de la fuite de emails de l'Agence mondiale antidopage (AMA) et de bien d'autres. Ce groupe dispose d'un ensemble diversifié d'outils malveillants dans son arsenal, dont plusieurs exemples ont déjà été documentés dans notre White paper de 2016 sur Sednit.
Notre enquête a déterminé que cet acteur malveillant a réussi au moins une fois à écrire un module UEFI malveillant dans la mémoire flash SPI d'un système. Ce module est capable de déposer et d'exécuter des logiciels malveillants sur le disque pendant le processus de démarrage. Cette méthode de persistance est particulièrement invasive car elle survivra non seulement à une réinstallation du système d'exploitation, mais aussi au remplacement du disque dur. De plus, le nettoyage du micrologiciel UEFI d'un système implique de le faire clignoter de nouveau, une opération peu courante, à plus forte raison pour l'utilisateur lambda.
Nos recherches ont montré que les opérateurs Sednit ont utilisé différents composants du logiciel malveillant LoJax pour cibler quelques organisations gouvernementales dans les Balkans ainsi qu'en Europe centrale et orientale.
LoJack devient LoJax
En mai 2018, un article du blog d'Arbor Networks décrivait plusieurs échantillons cheval de Troie du petit agent LoJack d'Absolute Software, rpcnetp.exe. Ces échantillons malveillants communiquaient avec un serveur C&C malveillant, plutôt qu’avec le serveur légitime d’Absolute Software, car leurs paramètres de configuration en dur avaient été modifiés. Certains des domaines trouvés dans les échantillons LoJax ont déjà été vus auparavant : ils ont été utilisés fin 2017 comme domaines C&C pour le fameux Sednit première étape backdoor, SedUploader. En raison de l'utilisation malveillante du petit agent LoJack par cette campagne, nous appelons ce malware LoJax.
LoJack est un logiciel antivol. Les versions antérieures de cet agent étaient connues sous le nom de Computrace. Comme son ancien nom l'indique, une fois le service activé, l'ordinateur rappelait son serveur C&C et son propriétaire était informé de son emplacement en cas de disparition ou de vol. Computrace a attiré l'attention de la communauté de la sécurité, principalement en raison de sa méthode de persistance inhabituelle. Puisque l'intention de ce logiciel est de protéger un système contre le vol, il est important qu'il résiste à la réinstallation du système d'exploitation ou au remplacement du disque dur. Ainsi, il est implémenté comme un module UEFI/BIOS, capable de survivre à de tels événements. Cette solution est préinstallée dans le micrologiciel d'un grand nombre d'ordinateurs portables fabriqués par différents OEMs (ou FEO, pour fabricant d'équipement d'origine), attendant d'être activés par leurs propriétaires.
En faisant des recherches sur LoJax, nous avons découverts plusieurs artefacts intéressants qui nous amènent à croire que ces acteurs de la menace pourraient avoir essayé d'imiter la méthode de persistance de Computrace.
Mettre à jour de la mémoire flash SPI à l'aide d'un logiciel malveillant
Sur les systèmes ciblés par la campagne LoJax, nous avons trouvé divers outils permettant d'accéder et de corriger les paramètres UEFI/BIOS. Tous utilisaient un pilote du noyau, RwDrv.sys, pour accéder aux paramètres UEFI/BIOS. Ce pilote de noyau est fourni avec RWEverything, un utilitaire gratuit disponible sur le Web qui peut être utilisé pour lire des informations sur presque tous les paramètres de bas niveau d'un ordinateur, y compris PCI Express, Memory, PCI Option ROMs, etc. Comme ce pilote du noyau appartient à un logiciel légitime, il est signé avec un certificat de signature de code valide.
Trois types d'outils différents ont été trouvés à côté des agents LoJax userland. Le premier est un outil de transfert d'informations sur les paramètres système de bas niveau vers un fichier texte. Étant donné que le contournement de la protection d'une plateforme contre les mises à jour illégitimes de micrologiciel dépend fortement de la plateforme, la collecte d'informations sur la plate-forme d'un système est cruciale. Le deuxième outil avait pour but de sauvegarder une image du firmware du système dans un fichier en lisant le contenu de la mémoire flash SPI où se trouve l'UEFI/BIOS. Le troisième outil avait pour but d'ajouter un module UEFI malveillant à l'image du firmware et de l'écrire dans la mémoire flash SPI, installant efficacement le rootkit UEFI sur le système. Cet outil de patch utilise différentes techniques pour abuser des plates-formes mal configurées ou pour contourner les protections d'écriture de la mémoire flash SPI de la plate-forme. Comme l'illustre la figure suivante, si la plateforme permet des opérations d'écriture dans la mémoire flash SPI, elle n'a qu'à aller de l'avant et à l'écrire. Dans le cas contraire, il implémente un exploit contre une vulnérabilité connue.
Le rootkit UEFI ajouté à l'image du firmware n’a qu’un seul rôle : déposer le logiciel malveillant d’userland sur la partition du système d'exploitation Windows et s'assurer qu'il est exécuté au démarrage.
Comment se protéger?
Bien que Secure Boot soit le premier mécanisme qui vient à l'esprit lorsque nous pensons à la prévention des attaques de firmware UEFI, il n'aurait pas protégé contre l'attaque que nous décrivons dans cette recherche. Malgré cela, nous vous suggérons fortement d'activer Secure Boot sur vos systèmes, via l'utilitaire de configuration UEFI.
Secure Boot est conçu pour protéger contre les composants malveillants provenant de l'extérieur de la mémoire flash SPI. Pour éviter toute manipulation de la mémoire flash SPI, la racine de confiance du système doit être déplacée vers le matériel. De telles technologies existent et Intel Boot Guard en est un bon exemple. Il a été disponible à partir de la famille de processeurs Intel Haswell lancée en 2013. Si cette technologie avait été disponible et correctement configurée sur le système de la victime, la machine aurait refusé de démarrer après le compromis.
La mise à jour du firmware du système ne doit pas être quelque chose de trivial pour un acteur malveillant. Il existe différentes protections fournies par la plate-forme pour empêcher l'écriture non autorisée dans la mémoire flash SPI du système. L'outil décrit ci-dessus est capable de mettre à jour le micrologiciel du système uniquement si les protections de mémoire flash SPI sont vulnérables ou mal configurées. Ainsi, vous devez vous assurer que vous utilisez la dernière version UEFI/BIOS disponible pour votre carte mère. De plus, comme la vulnérabilité exploitée ne concerne que les chipsets plus anciens, assurez-vous que les systèmes critiques disposent de chipsets modernes avec le Platform Controller Hub (introduit avec les chipsets Intel série 5 en 2008).
Malheureusement pour l'utilisateur final ambitieux, la mise à jour du micrologiciel d'un système n'est pas une tâche aisée. La sécurité du firmware repose donc principalement entre les mains des fournisseurs UEFI/BIOS. Les mécanismes de sécurité fournis par la plateforme doivent être correctement configurés par le firmware du système afin de la protéger. Le micrologiciel doit être construit à partir de zéro en tenant compte de la sécurité. Heureusement, de plus en plus de chercheurs en sécurité se penchent sur la sécurité des microprogrammes, contribuant ainsi à améliorer ce domaine et à sensibiliser les fournisseurs UEFI/BIOS.
La remédiation d'une compromission basée sur un firmware UEFI est un problème difficile. Il n'existe pas de moyen facile de supprimer automatiquement une telle menace d'un système. Dans le cas décrit ci-dessus : pour supprimer le rootkit, la mémoire flash SPI doit être rechargée avec une image propre du micrologiciel spécifique à la carte mère. Il s'agit d'une opération délicate qui doit être effectuée manuellement. Ce n'est certainement pas une procédure que la plupart des propriétaires d'ordinateur sont familiers avec. La seule alternative au reflashing de l'UEFI/BIOS est de remplacer complètement la carte mère du système compromis.
Les liens avec le groupe d’APT Sednit
Comme nous l’avons mentionné ci-dessus, certains des serveurs LoJax Small Agent C&C ont été utilisés dans le passé par SedUploader, une porte dérobée de première étape couramment utilisée par les opérateurs de Sednit. De plus, dans les cas de compromis LoJax, les traces des autres outils Sednit n'étaient jamais loin. En fait, les systèmes ciblés par LoJax présentaient généralement aussi des signes de ces trois exemples de logiciels malveillants Sednit :
- SedUploader, une porte dérobée de premier niveau;
- XAgent, une porte dérobée phare de Sednit;
- Xtunnel, un outil de proxy réseau qui peut relayer tout type de trafic réseau entre un serveur C&C sur Internet et un ordinateur à l'intérieur d'un réseau local.
Ces faits nous permettent d'attribuer LoJax avec une assez grande certitude au groupe Sednit.
En conclusion
Au fil des années, nous avons suivi le groupe Sednit et publié de nombreux rapports sur ses activités, allant de l'utilisation zero-day à des logiciels malveillants personnalisés qu'il a développés, tels que Zebrocy. Cependant, le composant rootkit UEFI décrit ci-dessus est dans une ligue à part.
La campagne LoJax montre que les cibles de grande valeur constituent des candidats de choix pour le déploiement de menaces rares, voire uniques, et que ces cibles devraient toujours être à l'affût de signes de compromis. Aussi, une chose que cette recherche nous a appris, c'est qu'il est toujours important de creuser aussi profond que possible!
Une liste complète des indicateurs de compromis (IOC) et des échantillons est disponible sur GitHub.
Pour une analyse détaillée de cette porte dérobée, consultez notre White paper LoJax: First UEFI rootkit found in the wild, courtesy of the Sednit group (LoJax : Premier rootkit UEFI trouvé dans la nature, gracieuseté du groupe Sednit).