Was ist BYOVD (Bring-Your-Own-Vulnerable-Driver)? (Glossar)
BYOVD (Bring-Your-Own-Vulnerable-Driver) ist eine Angreifer- Technik, bei der der Angreifer einen legitim signierten, aber verwundbaren Kernel-Treiber lädt, um Kernel-Mode-Ausführung auf einem modernen Windows-Host zu erlangen. Der Treiber besteht die Signaturprüfungen, weil er signiert ist; die Schwachstelle in ihm — typischerweise ein IOCTL-Handler, der beliebigen Speicher-Lese-/Schreibzugriff an den User-Mode freigibt — ist das, was der Angreifer ausnutzt.
Berühmte Beispiele sind alte Versionen von mhyprot2.sys (Genshin
Impact Anti-Cheat), gdrv.sys (Gigabyte), RTCore64.sys (MSI
Afterburner) und Process Explorers procexp152.sys.
Warum es Windows-Verteidigungen umgeht#
Modernes Windows erzwingt Driver Signature Enforcement (DSE): Unsignierte Treiber können auf x64-Desktop-Builds im Produktionsmodus nicht geladen werden. BYOVD umgeht DSE vollständig, indem es Treiber verwendet, die signiert sind. Der Exploit liegt im Verhalten des Treibers, nicht in seiner Signatur-Kette.
Einmal geladen, gibt der verwundbare Treiber dem Angreifer Kernel-Mode-Primitive — typischerweise beliebigen Speicher-Lese-/ Schreibzugriff — was ausreicht, um:
- EDR / AV durch Patchen ihrer Callbacks zu deaktivieren.
- LSASS-Prozessspeicher zu stehlen, ohne dass
MiniDumpWriteDumpausgelöst wird. - PPL-Flags (Protected Process Light) zu modifizieren.
- Den eigenen unsignierten Treiber des Angreifers via Kernel-Mode- Schreibzugriff zu laden.
Wie Amcache hilft, BYOVD zu erkennen#
Der Schlüssel Root\InventoryDriverBinary von Amcache zeichnet
jeden auf dem Host geladenen Treiber auf, mit:
DriverTimeStamp— das PE-Link-Datum des Treibers.DriverSigned— ob eine gültige Signatur beansprucht wurde.Hash— SHA-1 des Treiber-Binärprogramms.KeyLastWriteTimestamp— wann Amcache den Eintrag aufgezeichnet hat.
Der Standard-BYOVD-Erkennungs-Filter auf
*_DriverBinaries.csv:
Import-Csv .\HOST_amcache_DriverBinaries.csv |
Where-Object {
$_.DriverSigned -eq 'True' -and
[DateTime]$_.DriverTimeStamp -lt (Get-Date).AddYears(-2) -and
[DateTime]$_.KeyLastWriteTimestamp -gt (Get-Date).AddDays(-30)
} |
Select-Object DriverName, DriverTimeStamp, KeyLastWriteTimestamp, Hash, Service |
Sort-Object KeyLastWriteTimestampEin 2014 kompilierter Treiber, der heute erstmals in Amcache auftaucht, ist konstruktionsbedingt verdächtig.
Dann vergleichen Sie den Hash mit loldrivers.io — der community-gepflegten Datenbank bekannter missbrauchter Treiber. Wenn der Hash mit einem bekannten BYOVD-Eintrag übereinstimmt, haben Sie sehr hohe Konfidenz.
Für das breitere Untersuchungs-Playbook siehe Commodity-Malware mit Amcache jagen.
Verwandte Begriffe#
- Amcache.hve — die Hive, die Treiber-Datensätze enthält.
- DFIR-Triage — der Workflow, in den die BYOVD-Jagd passt.
- InventoryApplicationFile — der äquivalente Userspace-Schlüssel.
Verwandte Beiträge
- Was ist SRUM (SRUDB.dat)? (Glossar)
SRUM ist der Windows System Resource Usage Monitor — eine ESE-Datenbank, die pro Anwendung CPU-, Netzwerk- und I/O-Nutzung in Stunden-Buckets über 30-60 Tage aufzeichnet.
- Was ist ShimCache (AppCompatCache)? (Glossar)
ShimCache ist ein kernelseitig gepflegter Cache in der SYSTEM-Registry-Hive, der bis zu 1024 Binärprogramme aufzeichnet, die der Windows-Loader berührt hat. Anders als Amcache.
- Was ist Amcache ProgramId? (Glossar)
ProgramId ist der 44-stellige Anwendungs-Identitäts-Hash, den Amcache jeder logischen Anwendung zuweist. Dieselbe ProgramId auf verschiedenen Hosts bedeutet dieselbe Anwendungsinstallation.
- Was ist Windows Prefetch? (Glossar)
Prefetch ist der Windows-Ordner mit .pf-Dateien, der jede Binärprogramm-Ausführung aufzeichnet, mit bis zu 8-10 Run-Zeitstempeln pro Binärprogramm und den Dateien, die jedes geladen hat. Der stärkste Windows-Ausführungsbeweis.