Le Patch Tuesday de février corrigeait une faille critique provoquant une élévation de privilèges dans le noyau Windows. Des chercheurs d’Avast ont constaté que cette vulnérabilité a été exploitée par un groupe APT du nom de Lazarus, affilié à la Corée du Nord au sein de son rootkit FudModule. Ce dernier « utilise désormais une technique de manipulation des entrées de la table de gestion pour tenter de suspendre les processus protégés PPL (Protected Process Light) associés à Microsoft Defender, CrowdStrike Falcon et HitmanPro, ce qui représente une avancée majeure dans leur technique d’attaque », précise les experts dans un rapport.

La vulnérabilité AppLocker remplace le BYOVD

Également connu sous le nom d'APT38, le groupe Lazarus est l'une des équipes de pirates informatiques du gouvernement nord-coréen, impliquée autant dans le cyberespionnage et le sabotage, que, parfois, dans des actions de cybercriminalité en vue collecter de l’argent pour le régime. Ses opérations remontent à plusieurs années, mais certains chercheurs pensent que Lazarus fédère probablement différents sous-groupes qui mènent leurs propres campagnes et développent des logiciels malveillants sur mesure pour leurs cibles. Le rootkit FudModule n'est pas un nouveau venu dans la panoplie d’outils de Lazarus et il a déjà été analysé par d'autres entreprises de cybersécurité en 2022.

FudModule est un rootkit de données uniquement qui existe dans l'espace utilisateur et exploite les privilèges de lecture/écriture du noyau par le biais de pilotes pour altérer les mécanismes de sécurité de Windows et réduire la capacité des produits de sécurité à détecter d'autres composants malveillants. Dans les versions précédentes, les attaquants obtenaient des privilèges en exploitant des vulnérabilités connues dans des pilotes tiers signés qu'ils déployaient sur le système avec le logiciel malveillant. Cette technique est connue sous le nom de BYOVD « Bring Your Own Vulnerable Driver » (Apporter son propre pilote vulnérable). Pour installer un pilote sous Windows, il faut disposer de privilèges d'administrateur, de sorte que les attaquants disposent déjà de privilèges élevés sur les systèmes.

Des techniques de rootkit améliorées

Le rootkit FudModule utilise son accès en lecture/écriture au noyau pour désactiver certaines fonctions importantes sur lesquelles s'appuient les produits de sécurité pour détecter les comportements suspects : les rappels de registre, servant à détecter les modifications du registre du système ; les rappels d'objet, utilisés pour exécuter du code personnalisé en réponse aux opérations de gestion de thread, de processus et de bureau ; et les rappels de processus, de thread et d'image du noyau, qui permettent aux produits de sécurité des points finaux d'effectuer des vérifications à chaque fois que de nouveaux processus sont créés ou que des DLL sont chargées. Le rootkit FudModule supprime tous ces types de rappels enregistrés par les produits de sécurité dans le noyau afin d'affaiblir leurs capacités de détection des logiciels malveillants. Cette dernière variante n'apporte que des modifications mineures aux rappels qu'elle supprime. Le rootkit supprime également les minifiltres du système de fichiers enregistrés par les programmes antivirus pour surveiller les opérations sur les fichiers. Une nouvelle fonctionnalité du rootkit consiste à désactiver les rappels de vérification d'image invoqués lorsqu'une nouvelle image de pilote est chargée dans la mémoire du noyau. Cette fonctionnalité est exploitée par certains programmes anti-malware pour détecter et bloquer les pilotes malveillants ou vulnérables.

Même si tout cela à l’air d’aider les attaquants avec leur technique BYOVD, il n'est pas très logique de désactiver ces rappels après avoir déjà chargé un pilote compromis pour déployer le rootkit. Ce serait alors trop tard, à moins que les attaquants ne prévoient de charger d'autres pilotes malveillants dans un but quelconque après que le rootkit a été déployé. On sait que, dans le passé, Lazarus a déjà utilisé certains pilotes personnalisés afin d'effectuer des attaques par effacement de disque. Une autre technique de rootkit mise en œuvre dans cette version vise à désactiver directement des produits de sécurité spécifiques, à savoir AhnLab V3 Endpoint Security, Windows Defender, CrowdStrike Falcon et HitmanPro. « Le groupe Lazarus reste l'un des acteurs les plus prolifiques et les plus anciens de la menace persistante avancée. Même si leurs tactiques et techniques sont désormais bien connues, ils parviennent encore parfois à nous surprendre avec un niveau inattendu de sophistication technique », ont déclaré les chercheurs d'Avast. « Le rootkit FudModule en est le dernier exemple et il représente l'un des outils les plus complexes que Lazarus possède dans son arsenal ».

Des défenses existent pour l’admin to kernel

Cependant, il existe une différence entre obtenir un accès administrateur et obtenir des privilèges du noyau (SYSTEM) sous Windows. Ces rôles fonctionnent à des niveaux d'intégrité différents et sont soumis à des limitations différentes, mais Microsoft ne considère pas officiellement l'accès administrateur au noyau comme une limite de sécurité, car il existe plusieurs façons d'exécuter le noyau à partir d'un compte administrateur - par exemple, le BYOVD, car les pilotes tiers mal écrits ne manquent pas. Tout compte administrateur peut installer un pilote et tout pilote est chargé dans le noyau. « Microsoft n'a pas renoncé à sécuriser la frontière entre l'administrateur et le noyau », ont encore expliqué les chercheurs d'Avast. « Bien au contraire, l’entreprise a fait beaucoup de progrès pour rendre cette frontière plus difficile à franchir. Les protections de défense en profondeur, comme l’application du Driver Signature Enforcement (DES) ou Hypervisor-Protected Code Integrity (HVCI), ont rendu l'exécution de code personnalisé dans le noyau de plus en plus difficile pour les attaquants.

Ils ont été obligés la plupart d'entre eux à recourir à des attaques par données uniquement (où ils atteignent leurs objectifs malveillants uniquement en lisant et en écrivant dans la mémoire du noyau). D'autres défenses, comme la mise en liste bloquée des pilotes, poussent les attaquants à exploiter des pilotes vulnérables moins connus, ce qui augmente la complexité des attaques. Même si ces défenses n’ont pas encore atteint le point où l’on peut officiellement qualifier la barrière admin-to-kernel de frontière de sécurité (les attaques BYOVD sont toujours possibles, donc l'appeler ainsi ne ferait qu'induire les utilisateurs en erreur et leur donner un faux sentiment de sécurité), elles représentent clairement des pas dans la bonne direction.

Un patch existe

La nouvelle vulnérabilité CVE-2024-21338 exploitée par Lazarus est située dans appid.sys, c’est-à-dire le moteur central d'AppLocker, la technologie de liste blanche d'applications intégrée à Windows, ce qui est assez ironique. Microsoft a attribué à cette vulnérabilité un score de 7,8 sur 10 sur l'échelle CVSS. Avast pense que ce score élevé est dû au fait que la faille pourrait aussi être exploitée à partir du compte de service local, qui a des privilèges encore plus réduits par rapport aux administrateurs.

« Même si la vulnérabilité ne répond que très partiellement aux critères de sécurité de Microsoft, nous pensons que l'application d'un correctif était le bon choix et nous tenons à remercier Microsoft d'avoir finalement résolu ce problème », ont déclaré les chercheurs d'Avast. « Le correctif perturbera sans aucun doute les opérations offensives de Lazarus, les obligeant à trouver un autre zero-day admin-to-kernel ou à revenir à des techniques BYOVD ».