Analyse détaillée des vulnérabilités des pilotes du noyau Windows
Les vulnérabilités dans les pilotes signés sont principalement utilisées par des développeurs pour contourner les mécanismes anti-triche des jeux, mais elles ont également été utilisées par plusieurs groupes de pirates et dans des malwares. Cet article aborde les types de vulnérabilités qui apparaissent généralement dans les pilotes noyau, fournit plusieurs études de cas de malwares utilisant ces pilotes vulnérables, analyse des exemples de pilotes vulnérables découverts au cours de nos recherches, et décrit des techniques d’atténuation efficaces contre ce type d’exploitation. Ces pilotes peuvent souvent servir de passerelles vers le kernel de Windows pour les acteurs malveillants.
Il existe différents types de pilotes noyau (le composant central du système d’exploitation Windows) : des pilotes « logiciels » qui fournissent des fonctionnalités spécifiques non liées au matériel, telles que diagnostics et débogage logiciels, l’analyse du système, etc. Ces derniers sont susceptibles d’étendre considérablement la surface d’attaque. Bien que le chargement direct d’un pilote malveillant non signé ne soit plus possible dans les nouvelles versions de Windows, et que les rootkits noyau appartiennent au passé, il existe toujours des moyens de charger du code malveillant dans le noyau, par exemple en détournant des pilotes signés légitimes. Il existe en effet de nombreux pilotes développés par les fournisseurs de matériel et les éditeurs de logiciels qui offrent des fonctionnalités permettant d’accéder pleinement au noyau avec un effort minimal.
Les vulnérabilités les plus fréquemment observées dans les pilotes noyau sont les suivantes :
- Impossibilité d’ajouter des contrôles qui limitent l’accès en lecture et en écriture aux registres critiques spécifiques au modèle MSR
- Exposer la possibilité de mapper la mémoire physique en lecture/écriture à partir du mode utilisateur
- Exposer la possibilité d’accéder en lecture/écriture à la mémoire virtuelle du noyau à partir du mode utilisateur
« Lorsque les opérateurs de malwares ont besoin d’exécuter du code malveillant dans le noyau Windows sur des systèmes x64 équipés de la vérification des signatures de pilotes, l’installation d’un pilote noyau vulnérable signé semble être une option viable pour ce faire. Cette technique, appelée « Bring Your Own Vulnerable Driver » (BYOVD), est utilisée aussi bien par des groupes de pirates de haut niveau que dans des malwares courants » explique Peter Kálnai.
Parmi les acteurs malveillants utilisant la technique BYOVD :
- Le groupe Slingshot qui a implémenté son module principal appelé Cahnadr sous forme de pilote en mode noyau pouvant être chargé par des pilotes noyau signés vulnérables.
- Le groupe InvisiMole qui a été découvert par les chercheurs d’ESET en 2018. Une variante plus récente du malware InvisiMole est le seul cas à ce jour d’exploitation MSR observé par ESET sur des systèmes Windows 10 x64.
- Le ransomware RobbinHood qui comme les malwares courants cherche à atteindre le plus grand nombre de personnes possible. Ainsi, le voir utiliser une technique BYOVD est rare mais particulièrement intéressant. Ce ransomware exploite un pilote vulnérable de carte mère GIGABYTE pour désactiver la vérification de la signature du pilote et installer son propre pilote malveillant.
- LoJax, une autre découverte d’ESET en 2018 et le tout premier rootkit UEFI, utilisait le pilote RWEverything pour accéder aux modules UEFI des victimes.
La liste complète des vulnérabilités découvertes est disponible dans l'article publié par ESET Research, Signed kernel drivers – Unguarded gateway to Windows’ core.
« Bien qu’il existe plusieurs mécanismes employés par le processeur et/ou le système d’exploitation, la plupart d’entre eux peuvent être contournés par des techniques astucieuses et ne sont pas très efficaces lorsque l’attaquant s’est préparé à l’avance » ajoute M.Kálnai.
L'article propose les techniques d’atténuation utiles suivantes :
- Sécurité virtualisée : Il s’agit d’une fonctionnalité introduite dans Windows 10 qui utilise la virtualisation matérielle pour placer le noyau dans une sandbox, sécurisant ainsi le système d’exploitation par différentes protections.
- Révocation de certificat : Sur les systèmes Windows modernes, les pilotes doivent posséder une signature valide s’appuyant sur un certificat « acceptable ». Par conséquent, la révocation du certificat d’un pilote vulnérable serait un moyen facile de le « désarmer » et le rendre inexploitable dans la plupart des cas.
- Blocage des pilotes : Il s’agit d’une pratique adoptée à la fois par Microsoft et par différents éditeurs de produits de sécurité tiers, dont ESET, pour détecter et supprimer les pilotes vulnérables les plus courants.
La Rédaction d'Africa CyberSecurity Mag