En décembre 2022, Microsoft avait publié ses packages mensuels ‘Windows Update’ qui comprenaient un avis concernant des pilotes malveillants, signés par Microsoft et d’autres autorités de signature de code, et que Sophos X-Ops (entre autres) avait vu être utilisés de manière abusive par des acteurs malveillants lors d’attaques. Aujourd’hui, Microsoft a publié l’avis de sécurité ADV230001 dans le cadre de sa mise à jour Windows du mois de juillet qui traite de la découverte par Sophos de plus de 100 pilotes malveillants qui avaient été signés numériquement par Microsoft et d’autres, depuis avril 2021.
Ils ont également publié l’article KB 5029033, qui comprend de nouvelles informations plus détaillées sur les mesures techniques prises par Microsoft pour se protéger contre ces pilotes signés malveillants. Sophos a mis en place des mesures de protection depuis 2022 qui pourraient détecter leur présence et bloquer l’installation de ces pilotes (davantage d’informations sur les détections seront présentées plus loin dans cet article).
Dans le cadre du modèle de sécurité pour les générations les plus récentes de Windows 64 bits, Microsoft a institué une politique en 2016 (à partir de Windows 10, version 1607), selon laquelle les pilotes du noyau doivent porter une signature numérique valide avant qu’un système d’exploitation Windows avec la fonction ‘Secure Boot‘ activée ne puisse les charger.
Cette mesure est importante car la nature même des pilotes tiers est qu’ils fonctionnent presque comme des composants du système d’exploitation, à un niveau très bas. Selon la manière avec laquelle ils sont créés et installés, les pilotes peuvent se charger avant que d’autres parties d’un système d’exploitation (y compris le logiciel de sécurité des systèmes endpoint) ne puissent démarrer.
Dans notre article de décembre sur les pilotes signés malveillants, c’est exactement ce que nous avons découvert au sujet des agissements des attaquants : en effet, ils utilisaient leurs privilèges administrateur précédemment obtenus pour configurer les pilotes à charger pendant le processus de démarrage, avant l’exécution du logiciel de sécurité, et une fois chargés, les pilotes sabotaient divers types d’application de sécurité (entre autres), les empêchant de fonctionner correctement. Les produits Sophos Endpoint faisaient partie des outils de sécurité ciblés.
Script utilisé pour charger un pilote EDR-killer malveillant et configurer la persistance
Dans certains cas, les pilotes divulgués (et neutralisés d’un point de vue fonctionnel) en décembre dernier avaient été signés à l’aide de certificats de signature de code qui avaient été tout d’abord délivrés à des éditeurs de logiciels, puis volés, et enfin divulgués sur Internet. Dans d’autres cas, ils étaient mystérieusement signés de manière valide à l’aide du certificat Windows Hardware Compatibility Publisher (WHCP) de Microsoft.
Microsoft ne signe le code à l’aide du certificat WHCP que lorsqu’un fournisseur de logiciels ou de matériel qui s’est précédemment inscrit au programme Windows Hardware Dev Center de Microsoft et qui est en possession d’un certificat de signature de code Extended Validation, soumet le pilote à l’entreprise pour signature.
NB : Si un individu a un accès physique à une machine Windows et peut la redémarrer au niveau de Windows bootloader, il lui est possible de désactiver cette fonctionnalité au cas par cas à l’aide de l’option ‘désactivation de la vérification de la signature des pilotes (Disable Driver Signature Enforcement) avant le démarrage de Windows. Les attaquants, dans les cas que nous avons investigués, n’avaient pas d’accès physique aux machines.
Briser la chaîne de confiance
Microsoft a invalidé les pilotes que nous leur avions signalés l’année dernière, les empêchant de se charger. Le même jour que l’annonce, en étroite coordination avec Microsoft, Sophos a publié des signatures de protection des systèmes endpoint mises à jour qui détecteraient et supprimeraient tout pilote, de ce type, trouvé sur un ordinateur.
Le certificat WHCP a été utilisé pour signer des pilotes depuis le début de l’année 2022
Les signatures numériques intégrées dans les fichiers du pilote ont révélé que le problème était bien plus important que ce que Sophos ou Microsoft avaient anticipé. Dans les semaines qui ont suivi, Sophos a découvert 133 pilotes malveillants, dont 100 avaient été signés par le certificat WHCP de Microsoft.
Parmi les propriétaires de certificats WHCP de pilotes non signés, les détails du certificat révèlent qu’ils avaient été délivrés à des entreprises dont les noms indiquent qu’elles sont basées en Chine. Ces certificats appartenaient aux sociétés dont les noms sont listés ci-dessous :
- Beijing Kate Zhanhong Technology Co.,Ltd.
- Zhuhai liancheng Technology Co., Ltd.
- Beijing JoinHope Image Technology Ltd.
- 海南巨灵网络科技有限公司 (Hainan Giant Spirit Network Technology Co., Ltd.)
- Shenzhen Luyoudashi Technology Co., Ltd.
- Chengdu Lule Cube
- Bopsoft
Il est également important de noter que nous avons rencontré une faible quantité de pilotes malveillants non signés qui étaient identiques d’un point de vue fonctionnel aux pilotes signés. Les analystes des SophosLabs ont émis l’hypothèse selon laquelle ces pilotes non signés pourraient avoir été des versions soumises ultérieurement aux mécanismes de signature de code tels que WHCP.
Certains des certificats de signature de pilote d’autres sociétés ont été révoqués
De nombreux pilotes signés ont également été préparés (packed) à l’aide d’un logiciel packer d’exécution (runtime). Les utilitaires de type packer sont utilisés à la fois par les éditeurs de logiciels légitimes et les créateurs de malwares pour obfusquer et dissimuler les fonctions à l’intérieur d’un exécutable (les pilotes sont alors comme des fichiers PE [Portable Executable] Windows). Cependant, la plupart des pilotes légitimes ne sont pas préparés. Certains des pilotes ont été préparés à l’aide de VMProtect, un packer d’exécution commercial.
Après un examen plus approfondi, nos analystes ont découvert des détails intéressants qui ont révélé des indices sur la manière avec laquelle la ou les personnes à l’origine du stratagème visant à faire signer les pilotes malveillants opéraient. Sur la base de nos analyses de pilotes signés et de leurs binaires sous-jacents, il semble que le créateur du pilote malveillant ait créé une version “parent” de ce dernier, puis a exécuté cette version via un ou plusieurs utilitaires de préparation, et ce une ou plusieurs fois, créant ainsi dans certains cas des dizaines de variantes “enfant”, que les créateurs pouvaient toutes soumettre à Microsoft pour signature.
Quelles sont les capacités de ces pilotes ?
Sophos a découvert que les pilotes appartenaient à l’une des deux grandes catégories suivantes : il s’agissait soit de “Endpoint protection killers” similaires d’un point de vue fonctionnel aux pilotes découverts l’année dernière, soit d’une forme de rootkit, destiné à s’exécuter discrètement en arrière-plan sur un ordinateur infecté. Comme nous l’avons mentionné précédemment, ces pilotes ne pouvaient être installés que par une personne disposant de privilèges administratifs sur le système en question.
Parmi les pilotes “Endpoint protection killer”, 68 avaient été signés par Microsoft, et 13 étaient signés par des certificats appartenant à d’autres sociétés.
Parmi les pilotes de rootkit, 32 d’entre eux avaient été signés par Microsoft, 4 étaient signés par d’autres sociétés et 16 étaient des variantes non signées de l’un des quatre pilotes signés.
Alors que certains des certificats de signature ont maintenant expiré, beaucoup d’autres sont restés valides jusqu’à la publication du dernier Patch Tuesday.
La majorité des pilotes de rootkit avaient la capacité de surveiller le trafic réseau à l’aide de la plateforme de filtrage Windows (WFP : Windows Filtering Platform), ce qui leur aurait donné la possibilité d’observer les données sensibles envoyées ou reçues depuis Internet.
Plusieurs des rootkits semblent être des variantes de familles de rootkit Windows connues, telles que le rootkit FU, le rootkit Fivesys, le rootkit FK_undead ou le rootkit Netfilter. Certains de ces rootkits ont la capacité de désactiver les contrôles de compte utilisateur (UAC : User Account Controls) de Windows, qui permettent à l’opérateur du rootkit d’élever les privilèges d’autres applications à un niveau administrateur sans qu’une invite UAC n’apparaisse à l’écran.
De nombreux rootkits ont également la capacité de communiquer avec un serveur command-and-control dont l’adresse est basée sur un algorithme de génération de domaine (DGA : Domain Generating Algorithm) et change dans le temps. Ces rootkits communiquaient avec les noms de domaine DGA qui utilisaient le domaine de premier niveau (TLD) .xyz.
Détection et conseils
Les pilotes dotés de capacités similaires à celles trouvées au cours de cette investigation seront détectés avec l’une ou l’ensemble des signatures suivantes : Mal/Rootkit-BE, Troj/Rootkit-VE, Troj/Agent-BJJB, Mal/Rootkit-VF, Troj/Rootkit-ND, Troj/Rootkit-NH, Troj/Rootkit-NO, Troj/Rootkit-NP, ou Troj/Rootkit-NS.
Les fichiers de pilote signalés par Sophos à Microsoft, à compter du 11 juillet 2023, feront l’objet de correctifs, seront invalidés et leurs signatures révoquées par le mécanisme de mise à jour de Microsoft, et ces derniers ne fonctionneront plus. Microsoft peut également invalider d’autres pilotes dont la provenance correspond à la source des pilotes malveillants connus à tout moment dans le futur.
Sophos a publié des hachages et d’autres détails très utiles concernant les pilotes signés malveillants sur le Github des SophosLabs.
Remerciements
Sophos tient à remercier les chercheurs des SophosLabs Andrew Ludgate et Andreas Klopsch pour leur aide dans l’identification et l’élaboration de la liste des pilotes malveillants.
Billet inspiré de Microsoft Revokes Malicious Drivers in Patch Tuesday Culling, sur le Blog Sophos.