Grub2, utilisé par un grand nombre de distributions Linux, est victime d’un bug ouvrant la voie à une importante faille de sécurité : si un utilisateur appuie précisément 28 fois sur la touche retour arrière, il peut passer outre la protection par mot de passe. Le problème a été découvert par deux chercheurs espagnols, qui proposent déjà un patch correctif.
Grub2 est un bootloader, un gestionnaire de démarrage que l’on retrouve dans un grand nombre de distributions Linux. Il sert à initialiser la machine et peut prendre notamment en charge les menus multiboot, permettant de choisir le système d’exploitation que l’on veut lancer. Il est particulièrement connu comme solution autorisant par exemple une machine à pouvoir démarrer sur Windows ou Linux. Il peut par ailleurs ajouter une couche de protection à la machine en réclamant un mot de passe, en plus de celui que l’on attribue d’ordinaire à la session Linux.
Une faille introduite dans le code de Grub2 il y a six ans
Deux chercheurs de l’université de Valence (Espagne) ont cependant trouvé une erreur pour le moins très étrange dans le gestionnaire de boot : il suffit d’appuyer 28 fois sur la touche retour arrière pour passer outre la demande de mot de passe. Le chiffre est précis, et l’utilisateur obtient en fait l’accès à la console « Grub rescue shell ». Une vulnérabilité testée avec succès sur les versions 1.98 à 2.02 de Grub2.
Les deux chercheurs espagnols ont d’ailleurs pu remonter jusqu’à la source du problème : un « commit » (validation de code) qui a eu lieu dans la version 1.98, soit en décembre 2009. Le plus impressionnant finalement dans la découverte de cette vulnérabilité est qu’elle soit restée totalement inconnue pendant presque six ans, malgré la simplicité extrême de sa mise en oeuvre.
Un bug arithmétique
Le souci réside dans la gestion du nombre entier correspondant à une variable dans le code de Grub2 (integer underflow), et qui se retrouve déclenchée à la 28e itération. Tous les détails techniques sont expliqués par les chercheurs sur leur blog.
Une fois la faille exploitée, l’accès à la console de récupération de Grub2 permet d’effectuer un certain nombre d’opérations. Un utilisateur malintentionné pourrait s’en servir pour accéder aux données locales, les copier, voire les supprimer. La console permet également de démarrer sur un autre environnement, et laisse donc de larges possibilités en cas de piratage de la machine, y compris l’installation d’un malware.
Signalons tout de même que la récupération des données se fait de manière brute. Si le possesseur de la machine a décidé de les chiffrer, les fichiers ne pourront évidemment pas être lus. Par ailleurs, court-circuiter Grub2 ne permet pas pour autant de s'authentifier sur le ou les systèmes d'exploitation présents sur la machine.
Les chercheurs ont averti dans la foulée l’ensemble des parties concernées. De nombreuses distributions Linux ont publié des patchs correctifs en fin de semaine dernière, notamment Ubuntu, Red Hat et Debian. Comme toujours dans ce genre de cas, les utilisateurs concernés devront vérifier dans les dépôts de leurs distributions si des mises à jour sont à effectuer.
La sécurité physique est aussi importante que les autres
En tant que telle, la faille est impressionnante par la facilité de sa mise en oeuvre et l’exploitation conséquente qui peut en être faite. Cependant, on soulignera deux points importants qui relativisent sa dangerosité. D’une part, elle ne semble pas avoir été découverte précédemment, bien qu’elle ait pu être trouvée et tenue secrète par un groupe de pirates ou n’importe quelle agence de renseignement, toujours friande de ce type d’informations comme l’ont montré les documents d’Edward Swowden.
D’autre part, cette brèche de sécurité réclame obligatoirement un accès physique à la machine, interdisant de fait son exploitation à distance. Elle ne peut donc pas être considérée comme critique, d’autant que sa mise en oeuvre ne peut pas être automatisée. C'est d'ailleurs également la conclusion du National Institute of Standards and Technology (NIST) qui qualifie la dangerosité de cette brèche de « medium » avec un score de 6,9/10. L'impact sur la machine est de 10/10, mais son exploitation bien plus compliquée ne lui vaut que 3,9/10.
Cela étant, cette vulnérabilité a le mérite de rappeler justement que la sécurité sur le réseau n’est pas la seule à prendre en compte. Une menace réclamant un accès physique n’est pas une menace nulle, comme Stuxnet l’a montré avec les machines déconnectées d’un réseau ou d’Internet. De fait, les possibles interactions de l’utilisateur avec la machine doivent être prises en compte, car ce type de bug peut mener efficacement à une fuite d’informations.