¿Qué es BYOVD (Bring-Your-Own-Vulnerable-Driver)? (glosario)
BYOVD (Bring-Your-Own-Vulnerable-Driver) es una técnica de atacante en la que el atacante carga un driver del kernel legítimamente firmado pero vulnerable para ganar ejecución en modo kernel en un host Windows moderno. El driver pasa las comprobaciones de firma porque está firmado; la vulnerabilidad dentro de él — típicamente un handler IOCTL que expone lectura/escritura arbitraria de memoria al modo usuario — es lo que el atacante explota.
Ejemplos famosos incluyen versiones antiguas de mhyprot2.sys
(anti-cheat de Genshin Impact), gdrv.sys (Gigabyte),
RTCore64.sys (MSI Afterburner) y procexp152.sys de Process
Explorer.
Por qué elude las defensas de Windows#
Windows moderno hace cumplir la Driver Signature Enforcement (DSE): los drivers sin firmar no pueden cargarse en builds desktop x64 en modo producción. BYOVD esquiva DSE enteramente usando drivers que están firmados. El exploit está en el comportamiento del driver, no en su cadena de firma.
Una vez cargado, el driver vulnerable da al atacante primitivas de modo kernel — típicamente lectura/escritura arbitraria de memoria — que es suficiente para:
- Desactivar EDR / AV parcheando sus callbacks.
- Robar memoria del proceso LSASS sin que
MiniDumpWriteDumpse dispare. - Modificar flags de Protected Process Light (PPL).
- Cargar el propio driver sin firmar del atacante vía escritura de modo kernel.
Cómo ayuda Amcache a detectar BYOVD#
La clave Root\InventoryDriverBinary de Amcache registra cada
driver cargado en el host, con:
DriverTimeStamp— la fecha de link del PE del driver.DriverSigned— si reclamó una firma válida.Hash— SHA-1 del binario del driver.KeyLastWriteTimestamp— cuándo Amcache registró la entrada.
El filtro estándar de detección BYOVD en
*_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 KeyLastWriteTimestampUn driver compilado en 2014 que aparece por primera vez en Amcache hoy es sospechoso por construcción.
Luego cruza el hash contra loldrivers.io — la base de datos mantenida por la comunidad de drivers de abuso conocido. Si el hash coincide con una entrada BYOVD conocida, tienes muy alta confianza.
Para el playbook de investigación más amplio, ver Caza de malware comodín con Amcache.
Términos relacionados#
- Amcache.hve — el hive que contiene registros de drivers.
- DFIR triage — el flujo de trabajo en el que encaja la caza BYOVD.
- InventoryApplicationFile — la clave equivalente para espacio usuario.
Artículos relacionados
- ¿Qué es SRUM (SRUDB.dat)? (glosario)
SRUM es el System Resource Usage Monitor de Windows — una base de datos ESE que registra el uso de CPU, red e I/O por aplicación en bloques horarios durante 30-60 días.
- ¿Qué es ShimCache (AppCompatCache)? (glosario)
ShimCache es una cache mantenida por el kernel en el hive del registro SYSTEM que registra hasta 1024 binarios que el loader de Windows ha tocado. Diferente de Amcache.
- ¿Qué es Amcache ProgramId? (glosario)
ProgramId es el hash de identidad de aplicación de 44 caracteres que Amcache asigna a cada aplicación lógica. El mismo ProgramId en hosts diferentes significa la misma instalación de aplicación.
- ¿Qué es Windows Prefetch? (glosario)
Prefetch es la carpeta de Windows con archivos .pf que registran cada ejecución de binario, con hasta 8-10 marcas de tiempo de ejecución por binario y los archivos que cada uno cargó. La evidencia de ejecución más fuerte de Windows.