Le groupe de rançongiciels exploite activement une vulnérabilité dans RTCore32.sys et RTCore64.sys, les pilotes d’un utilitaire de carte graphique très répandu appelé Micro-Star MSI AfterBurner (version 4.6.2.15658). Répertoriée sous le nom CVE-2019-16098, cette faille permet à tout utilisateur authentifié de lire et d’écrire dans n’importe quelle zone de mémoire, les ports d’E/S et les registres spécifiques au modèle (MSR).
Les cybercriminels peuvent l’exploiter pour élever leurs privilèges, exécuter des commandes arbitraires avec des privilèges élevés, exfiltrer des données ou contourner la politique de Microsoft en matière de signature des pilotes afin de déployer des logiciels malveillants. Les chercheurs ont observé un exploit particulièrement préoccupant : BlackByte a récemment utilisé cette vulnérabilité pour neutraliser des solutions de sécurité telles que EDR et les logiciels antivirus.
Surnommée « Bring Your OwnVulnerable Driver » (BYOVD), cette tactique a été utilisée par divers attaquants dans la nature, notamment par des groupes APT tels qu’InvisiMole et LoJax. Ces attaques ciblent les systèmes Windows.
Comme Windows n’autorise pas les pilotes non signés, les cybercriminels détournent des pilotes signés existants pour accéder au noyau Windows ou charger un pilote non signé. Cette approche est également utilisée par les tricheurs dans les jeux vidéo pour contourner les systèmes anti-triche, comme le pilote vulnérable de Capcom.
À lire également : Comment les pirates échappent à la détection
Comment BlackByte a mené l’attaque
Pour comprendre le piratage, il est essentiel de savoir ce qu’est la mémoire du noyau. Sous Windows, un processus lancé par un utilisateur dispose de son propre espace mémoire, accessible uniquement à ce processus. Dans la mémoire du noyau, une telle isolation n’existe pas. Tout le code exécuté en mode noyau partage le même espace.
Par conséquent, un pilote vulnérable peut compromettre d’autres pilotes, les faire planter ou supprimer certaines de leurs routines.
Le terme « espace utilisateur » désigne les programmes qui interagissent avec une petite partie du noyau exposée à dessein, notamment par l’intermédiaire d’API. Le « noyau » désigne ce qui s’exécute avec des privilèges élevés, derrière la protection matérielle. Le code exécuté en mode noyau est considéré comme fiable et exécuté.
Si des attaquants parviennent à injecter du code malveillant dans le noyau, tout est terminé.
Les chercheurs de Sophos ont signalé que les pilotes vulnérables enfreignent les directives de sécurité de Microsoft en permettant aux processus en mode utilisateur d’accéder aux codes de contrôle des E/S. Cette approche risquée permet de lire ou d’écrire directement dans la mémoire du noyau, sans shellcode ni exploit supplémentaire.
Après avoir identifié la version du noyau afin de déterminer les décalages correspondant à l’identifiant du noyau et installé son service, BlackByte a déposé le pilote vulnérable dans AppData\Roaming et supprimé les Kernel Notify Routines spécifiques utilisées par les outils de sécurité.
Les routines de notification gèrent les interactions critiques entre le noyau, l’activité du système et les pilotes chargés, par exemple lorsqu’un nouveau processus doit être créé pour exécuter une tâche. Un transfert rapide du contrôle peut se produire lorsque le pilote a enregistré une fonction de rappel spécifique (PsSetCreateProcessNotifyRoutine).
Les outils de sécurité utilisent souvent ces routines pour recueillir des données sur le système, mais les attaquants ne peuvent pas simplement les supprimer directement. C’est pourquoi ils utilisent des pilotes existants qui interagissent avec la mémoire du noyau afin de contourner les protections du système d’exploitation.

Toutefois, pour déterminer si la fonction de rappel est utilisée par des produits EDR, BlackByte doit calculer « le pilote le plus probable à partir de l’adresse de rappel elle-même ». Les chercheurs de Sophos ont découvert que BlackByte dispose d’une procédure qui récupère toutes les adresses de base et les compare à l’adresse de la fonction de rappel.
L’adresse de base présentant « le plus petit delta par rapport à la fonction de rappel » est sélectionnée et transmise à GetDeviceDriverBaseNameW afin de récupérer le nom du pilote. Le nom est ensuite comparé à une liste de plus de 1 000 noms de pilotes. En cas de correspondance positive, le rappel est supprimé en écrasant son conteneur mémoire avec des zéros.
« La technique d’évasion permet de désactiver une liste impressionnante de plus de 1 000 pilotes dont dépendent les produits de sécurité pour assurer leur protection », ont écrit les chercheurs de Sophos.
Comment limiter les attaques BYOVD
Les chercheurs de Sophos ont répertorié les indicateurs de compromission (IoC) ici et recommandent de suivre les annonces de vulnérabilités afin de tenir à jour une liste de blocage des pilotes activement exploités.
Il est vivement recommandé de répertorier et de surveiller tous les pilotes installés et, bien sûr, le système doit être mis à jour afin de corriger les failles de sécurité connues.
Toute vulnérabilité permettant de lire et d’écrire dans la mémoire du noyau doit être corrigée dans les plus brefs délais.
Il convient de noter que BlackByte a intégré des mesures supplémentaires pour échapper à la détection. Par exemple, il tente de se dissimuler aux processus de débogage, voire s’arrête si le débogueur est actif, notamment en utilisant l’API IsDebuggerPresent.
Il inspecte également le système à la recherche de DLL utilisées par des logiciels antivirus populaires comme Avast ou Comodo Internet Security, et arrête ces processus avant d’être détecté.
Découvrez les principaux outils de gestion des vulnérabilités et de gestion des correctifs





