🔍 Contexte
Article de recherche publié le 02 mai 2026 sur le blog personnel d’Aaron Haymore (zonifer.dev). L’auteur présente une analyse technique complète du pilote noyau gdrv3.sys livré avec Gigabyte APP Center, dans le cadre d’une étude sur les attaques BYOVD (Bring Your Own Vulnerable Driver).
🎯 Objet de l’analyse
Le pilote gdrv3.sys (MD5 : 2791bbd810b9bc086bb1631e0f16c821) est un pilote WDF signé par Microsoft, déposé dans C:\Windows\System32\drivers lors de l’installation de Gigabyte APP Center. L’analyse de sa table d’imports dans Ghidra révèle des fonctions dangereuses : MmMapIoSpace, MmGetPhysicalAddress, MmAllocateContiguousMemory, MmMapLockedPagesSpecifyCache, RDMSR/WRMSR.
⚙️ Les 13 IOCTLs découverts
L’auteur a identifié 13 codes IOCTL répartis en 4 groupes fonctionnels :
- 0xC3502000 – Lecture mémoire physique via
MmMapIoSpace— sans authentification - 0xC3502004 – Mapping mémoire physique via MDL — AES+checksum
- 0xC3502008 – Démapping MDL — AES+checksum
- 0xC350200C – Mapping via
\Device\PhysicalMemory— sans authentification - 0xC3502010 – Démapping
\Device\PhysicalMemory— sans authentification - 0xC3502014 – Écriture mémoire physique via
MmMapIoSpace— sans authentification - 0xC3502400 – Lecture/écriture ports IO — AES+checksum
- 0xC3502440 – Écriture port IO avec délai — AES+checksum
- 0xC3502580 – Lecture/écriture MSR — AES+checksum
- 0xC3502800 – Allocation mémoire physique contiguë — AES+checksum
- 0xC3502804 – Libération mémoire physique — AES+checksum
- 0xC3502808 –
memcpynoyau (ring 0) — AES+checksum - 0xC350280C – Traduction adresse virtuelle → physique — AES+checksum
🔐 Schéma d’authentification AES-128 CBC
Neuf des treize IOCTLs utilisent un schéma AES-128 CBC + checksum : vérification d’un checksum (complément à 1 de la somme des octets), puis déchiffrement AES-128 CBC avec IV extrait du buffer d’entrée. La clé AES est codée en dur dans le binaire à l’adresse 0x1400043d0, ce qui annule toute protection réelle.
🧩 Contexte BYOVD
La technique BYOVD consiste à charger un pilote légitime signé mais vulnérable pour accéder au mode noyau, contourner les protections PPL (Protected Process Light) des EDR, et effectuer des actions impossibles depuis l’espace utilisateur (kill de processus protégés, suppression de callbacks noyau, manipulation directe des agents EDR en mémoire).
📋 Type d’article
Publication de recherche technique offensive. But principal : documenter méthodologiquement la rétro-ingénierie d’un pilote signé vulnérable et exposer sa surface d’attaque complète pour la communauté CTI/sécurité offensive.
🧠 TTPs et IOCs détectés
TTP
- T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
- T1543.003 — Create or Modify System Process: Windows Service (Persistence)
- T1562.001 — Impair Defenses: Disable or Modify Tools (Defense Evasion)
- T1014 — Rootkit (Defense Evasion)
- T1106 — Native API (Execution)
IOC
- MD5 :
2791bbd810b9bc086bb1631e0f16c821— VT · MalwareBazaar - Fichiers :
gdrv3.sys - Chemins :
C:\Windows\System32\drivers\gdrv3.sys
🟡 Indice de vérification factuelle : 40/100 (moyenne)
- ⬜ zonifer.dev — source non référencée (0pts)
- ✅ 15000 chars — texte complet (fulltext extrait) (15pts)
- ✅ 3 IOCs (IPs/domaines/CVEs) (10pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 5 TTPs MITRE identifiées (15pts)
- ⬜ date RSS ou approximée (0pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://zonifer.dev/posts/byovd-kernel-driver-hardware-primitives.html