Les responsables de la maintenance du système d'exploitation, les fabricants d'ordinateurs, les fournisseurs de logiciels de sécurité et de virtualisation ont travaillé ensemble au cours des derniers mois pour coordonner une réponse unifiée à une vulnérabilité peu commune. Cette dernière permet aux attaquants de contourner la vérification de l'intégrité du processus de démarrage, l'une des principales fonctionnalités de sécurité des ordinateurs modernes.
La faille se trouve dans le chargeur de démarrage GRUB2 Linux, mais en raison de la façon dont Secure Boot est implémentée, elle peut également être utilisée pour compromettre le processus de démarrage de Windows et d'autres systèmes. L'installation des correctifs annoncés aujourd'hui sur tous les ordinateurs et périphériques concernés nécessitera des tests et un déploiement manuel et prendra probablement beaucoup de temps. Il est raisonnable de s'attendre à ce que certains systèmes ne soient jamais mis à jour et restent vulnérables aux logiciels malveillants au niveau du démarrage et aux modifications de micrologiciels non fiables.
Un possible contrôle total sur l'OS et son noyau
Ce sont les chercheurs de la société de sécurité Eclypsium qui ont découvert une vulnérabilité de dépassement de tampon dans la façon dont GRUB2 analyse le contenu de son fichier de configuration appelé grub.cfg. Bien que le binaire GRUB soit généralement signé, son fichier de configuration ne l'est pas parce qu'il est censé être modifiable par les administrateurs système qui peuvent souhaiter modifier différentes options d'initialisation du système d'exploitation ou ajouter des entrées de démarrage lorsqu'ils configurent des ordinateurs avec plusieurs choix de systèmes d'exploitation. En ajoutant du contenu spécialement conçu dans le fichier de configuration, les attaquants peuvent exploiter la vulnérabilité pour exécuter du code malveillant dans le contexte du chargeur de démarrage approuvé avant le démarrage du système d'exploitation. Cela leur donne une position et une persistance d'accès à des privilèges système, ainsi qu'un contrôle total sur le système d'exploitation et son noyau.
Les attaques au niveau du boot, connues sous le nom de rootkits de démarrage ou simplement de bootkits, étaient assez courantes il y a une décennie et étaient l'une des principales raisons pour lesquelles Secure Boot a été créé. De telles attaques existent toujours et peuvent cibler les systèmes sur lesquels le démarrage sécurisé n'est pas activé. Par exemple, les programmes de ransomware Petya et NotPetya étaient connus pour chiffrer le Master Boot Record (MBR) des ordinateurs. Un gang de cybercriminels connu sous le nom de FIN1 a utilisé un utilitaire pour modifier le Volume Boot Record (VBR) du système et démarrer sa porte dérobée Nemesis avant que Windows ou le logiciel de sécurité n'ait une chance de s'initialiser complètement.
Secure Boot dépassé par la vulnérabilité
GRUB2, abréviation de Grand Unified Bootloader version 2, est le chargeur de démarrage standard utilisé par la plupart des systèmes Linux. Il s'agit d'un logiciel relativement complexe qui prend en charge de nombreuses fonctionnalités et configurations, de sorte que chaque distribution Linux maintient son propre chargeur de démarrage basé sur GRUB2. Pour éviter que Microsoft re-signe leurs binaires GRUB chaque fois qu'une modification ou une mise à jour leur est apportée, les fournisseurs Linux demandent à Microsoft de signer un morceau de code beaucoup plus simple appelé un chargeur de démarrage shim, qui est ensuite utilisé pour vérifier et initialiser GRUB. Les shims contiennent généralement un certificat contrôlé par la distribution Linux, donnant à ses responsables la liberté de signer ensuite leurs binaires GRUB et autres composants du système d'exploitation avec leurs propres certificats qui font désormais partie de la chaîne de confiance. Les ordinateurs sont livrés avec UEFI, qui contient un certificat de plate-forme Microsoft. Ce certificat est utilisé pour valider d'autres composants qui font partie de la chaîne de démarrage, y compris les chargeurs de démarrage shim signés par Microsoft pour d'autres systèmes d'exploitation comme Linux. Ces derniers vérifient ensuite ceux basés sur GRUB à part entière qui sont signés par les responsables de la distribution Linux eux-mêmes.
De son côté Secure Boot est un mécanisme standardisé de vérification cryptographique de l'intégrité de tous les composants impliqués dans le processus de démarrage d'un ordinateur jusqu'à ce que le système d'exploitation soit initialisé et reprenne l'exécution. Le démarrage sécurisé est une fonctionnalité de l'interface UEFI (Unified Extensible Firmware Interface), qui a remplacé le micrologiciel BIOS hérité de tous les ordinateurs modernes. Presque toutes les implémentations UEFI sont livrées avec une clé racine qui appartient à Microsoft et établit la racine de confiance pour l'ensemble de la plate-forme. Ceci est connu sous le nom d'autorité de certification (CA) UEFI tierce de Microsoft. Une fois le démarrage sécurisé activé sur un ordinateur, chaque composant de démarrage doit être signé avec une clé liée à cette autorité de certification pour que le système d'exploitation puisse démarrer, ce qui signifie que les distributions Linux doivent également faire signer leurs chargeurs de démarrage par Microsoft. Secure Boot n'est pas une solution parfaite et les vulnérabilités de certaines implémentations UEFI dans le passé ont permis aux attaquants de contourner la vérification, mais ces attaques étaient généralement limitées à des fabricants d'ordinateurs spécifiques ou à des variantes UEFI, ce qui n'est plus le cas aujourd'hui.