Qilin et Warlock : Ransomware utilisant des drivers vulnérables
Analyse technique
Vue d'ensemble du processus d'attaque
Les récentes campagnes menées par les opérateurs de Qilin et Warlock exploitent une technique connue sous le nom de BYOVD (bring your own vulnerable driver). L'attaque suit un schéma récurrent : compromission initiale (RDP compromis, phishing ciblé ou exposition d'un service), élévation de privilèges à l'aide d'outils légitimes, puis chargement d'un pilote tiers signé mais vulnérable. Une fois le pilote installé, les acteurs invoquent ses IOCTL depuis l'espace utilisateur pour obtenir des primitives noyau (lecture/écriture mémoire) et patcher des composants de sécurité.
Dans plusieurs cas analysés, les attaquants déposent une DLL malveillante nommée msimg32.dll dans un répertoire système et l'exécutent via un binaire usurpé ou compromis. Cette DLL identifie le pilote vulnérable, appelle les IOCTL nécessaires et orchestre la modification de structures critiques pour neutraliser les protections offertes par les EDR. Le recours à un pilote légitime signé évite le blocage lié à la vérification d'intégrité et facilite la persistance du code malveillant en mode noyau.
Les rapports publics indiquent que plus de 300 produits EDR ont été impactés par des variantes de cette campagne, ce qui illustre l'efficacité opérationnelle du schéma BYOVD¹. Les chercheurs de Cisco Talos et Trend Micro ont fourni des analyses techniques détaillées qui confirment l'utilisation de pilotes identifiés précédemment comme vulnérables² ³.
Mécanismes techniques observés
Concrètement, les opérateurs appliquent une série d'étapes techniques relativement standardisées :
- Exploitation d'IOCTL non filtrés : des pilotes exposent des commandes DeviceIoControl sans vérifier l'appelant ni valider rigoureusement les paramètres, permettant l'exécution d'opérations arbitraires depuis l'espace utilisateur.
- Primitives RWKernel : à partir d'un IOCTL crafté, l'attaquant obtient des capacités de lecture/écriture physique ou logique du noyau et modifie des structures sensibles (pointeurs de fonctions, tables d'objets).
- Neutralisation des callbacks de sécurité : en réécrivant les pointeurs utilisés par des callbacks tels que PsSetCreateProcessNotifyRoutine, les alertes sur création de processus malveillants sont supprimées et les logs peuvent rester muets.
- Patch mémoire des composants EDR : les routines d'instrumentation en userland ou en kernel sont retouchées pour masquer l'exécution de binaires et les hooks de surveillance.
- Masquage des artefacts noyau : des modifications ciblées de tables telles que la SSDT (System Service Descriptor Table) ou d'autres vecteurs d'export permettent de rendre le pilote et la DLL moins visibles aux mécanismes d'intégrité.
La DLL msimg32.dll joue ici un rôle d'orchestrateur léger : elle identifie le périphérique lié au pilote vulnérable, envoie les IOCTL requis et gère la séquence de patching. Le concept n'est pas sophistiqué d'un point de vue algorithmique, mais il est performant parce qu'il tire parti d'un composant légitime déjà signé.
Détails sur les pilotes exploités
Les attaques n'ont pas systématiquement besoin d'un 0-day. Plusieurs pilotes documentés pour leurs paramètres IOCTL non filtrés sont réutilisés par les opérateurs. Les équipes de recherche ont corrélé des CVE publiques et des binaires signés qui permettent ces attaques² ³. Cela réduit la barrière d'entrée pour l'attaquant : pas besoin de développer un rootkit complet, seulement d'utiliser un pilote existant pour franchir la frontière utilisateur-noyau.
Indicateurs de compromission et comportements à surveiller
Surveiller ces signaux permet de détecter des tentatives BYOVD en phase précoce. Points d'attention :
- DLL suspecte msimg32.dll présente dans des emplacements système non standard ou chargée par des binaires qui ont été modifiés.
- Apparition ou installation récente de pilotes tiers signés sur des endpoints qui n'en ont pas l'usage habituel.
- Activité IOCTL anormale vers des devices liés à pilotes récemment signalés comme vulnérables. Cela nécessite des agents capables de capturer les appels DeviceIoControl ou l'utilisation d'ETW/Instrumentation noyau pour corréler les paramètres.
- Baisse soudaine du nombre d'alertes EDR ou de blocages lors d'activités malveillantes qui auparavant déclenchaient des corrélations. Audits d'intégrité du noyau ou des modules chargés peuvent révéler des modifications non autorisées.
Pour le threat hunting, priorisez la corrélation entre events de chargement de drivers, création de services (installation), et appels d'IOCTL inhabituels provenant de processus qui ne devraient pas interagir avec des périphériques bas niveau.
Impacts business

Neutraliser un EDR ouvre une fenêtre d'opportunité considérable pour l'attaquant. Conséquences observées :
- Détection retardée qui permet exfiltration et mouvements latéraux étendus.
- Déploiement accéléré de ransomware en l'absence de blocage actif. Les victimes subissent des interruptions d'activité et des coûts de restauration élevés.
- Coûts opérationnels directs et indirects : selon des rapports récents, le coût moyen d'une fuite avec compromission étendue peut atteindre des montants significatifs, à pondérer selon le secteur et la taille de l'organisation⁴.
- Risques légaux et réputationnels liés à la divulgation de données sensibles.
Les campagnes recensées touchent des environnements variés, y compris des ressources cloud et des segments OT/ICS, ce qui complexifie la réponse et la remédiation¹ ².
Recommandations pratiques
Les mesures suivantes combinent actions immédiates, améliorations architecturales et contrôles avancés. Elles favorisent la résilience sans dépendre d'une seule solution.
Actions prioritaires (jours 0-100)
- Inventaire des pilotes signés : automatisez la collecte avec des commandes PowerShell (par exemple Get-WindowsDriver) et comparez avec une liste de CVE connues. Priorisez le remplacement ou la mise à jour des pilotes identifiés comme vulnérables.
- Surveillance des IOCTL : déployez des capteurs capables d'enregistrer les appels DeviceIoControl ou activez la télémétrie ETW fournie par vos agents de sécurité pour détecter des paramètres inhabituels.
- Contrôle du chargement de pilotes : appliquez des politiques de whitelist via Windows Defender Application Control (WDAC) ou des mécanismes de contrôle d'intégrité qui restreignent le chargement à des images approuvées.
- Patch management ciblé : poussez les correctifs des éditeurs concernés et testez les mises à jour dans un environnement contrôlé avant déploiement large.
Renforcement architectural (moyen terme)
- Micro-segmentation pour réduire la surface de déplacement latéral et limiter l'usage des comptes à privilèges sur un périmètre restreint.
- Isolation des fonctions critiques et séparation des rôles pour réduire le blast radius en cas de compromission.
- Déploiement de multiples couches de détection afin de ne pas dépendre d'une seule solution EDR.
Contrôles techniques avancés
- Activer et vérifier Kernel Patch Protection (PatchGuard) et surveiller l'intégrité des objets noyau critiques.
- Détecter les altérations de structures NTOSKRNL avec outils d'Integrité mémoire et scripts de chasse aux menaces qui vérifient les hooks et tables d'export.
- Appliquer un modèle de privilège minimal sur les comptes et services capables d'installer ou de charger des pilotes.
Processus et gouvernance
- Exécuter des exercices red team et tabletop incluant des scénarios BYOVD pour valider les playbooks de détection et réponse.
- Inventorier les fournisseurs et exiger des bonnes pratiques de sécurisation des chaînes logicielles et des SLA de sécurité pour les pilotes tiers.
- Maintenir des playbooks d'incident spécifiques aux attaques ciblant les EDR pour accélérer les actions de containment et restauration.
La mise en place combinée de ces mesures réduit significativement le risque et l'impact d'une attaque BYOVD. Traitez les pilotes tiers comme des éléments à haut risque et intégrez-les dans vos cycles de gestion des vulnérabilités et de changement.