# DC0019 - Driver Load
> [!info] Monitora o carregamento de drivers no kernel do sistema (Ring 0) — o nível mais alto de privilégio. Crítico para detectar BYOVD (Bring Your Own Vulnerable Driver), rootkits e desabilitação de EDR via kernel.
## Descrição
Driver Load monitora o carregamento de drivers no kernel do sistema operacional, que operam com o nível mais alto de privilégio (Ring 0). Adversários abusam de drivers para instalar rootkits, bypassar EDRs, escalar privilégios e interagir diretamente com hardware. A técnica BYOVD (Bring Your Own Vulnerable Driver) tornou-se popular entre APTs e grupos de ransomware, utilizando drivers legítimos mas vulneráveis para executar código no kernel e desabilitar soluções de segurança.
## Fonte de Dados
Parent: [[ds0027-driver|DS0027 - Driver]]
## Pipeline de Detecção
```mermaid
graph TB
A["🔧 Sysmon Event ID 6<br/>DriverLoaded"] --> B["🔒 Verificação de<br/>Assinatura + Hash"]
B --> C{"✅ Assinatura<br/>Válida?"}
C -->|Não Assinado| D["🚨 Alerta P1<br/>Driver Sem Assinatura"]
C -->|Assinatura Revogada| E["🚨 Alerta P1<br/>Assinatura Revogada"]
C -->|Assinado| F{"🗄️ Hash em<br/>LOLDrivers DB?"}
F -->|Sim - Vulnerável| G["🚨 Alerta P1<br/>BYOVD Detectado"]
F -->|Não| H["✔️ Driver<br/>Aprovado"]
classDef p1 fill:#e74c3c,color:#ecf0f1
classDef ok fill:#2ecc71,color:#2c3e50
classDef check fill:#3498db,color:#ecf0f1
classDef proc fill:#2c3e50,color:#ecf0f1
class D,E,G p1
class H ok
class C,F check
class A,B proc
```
## O Que Monitorar
- Sysmon Event ID 6 (DriverLoaded) - drivers carregados com hash e assinatura
- Drivers sem assinatura digital válida ou com assinaturas revogadas
- Drivers carregados de locais incomuns (fora de `C:\Windows\System32\drivers\`)
- Uso de `sc.exe` ou `bcdedit` para carregar drivers em modo kernel
- Drivers com hashes identificados como vulneráveis (LOLDrivers database)
- Carregamento de drivers após atividade de privilege escalation
- Drivers com nomes imitando componentes legítimos do sistema
## Técnicas Detectadas
| Técnica | ID | Como Detectar |
|---------|-----|---------------|
| Rootkit | [[t1014-rootkit\|T1014]] | Driver sem assinatura ou assinatura revogada carregado no kernel |
| Exploitation for Privilege Escalation | [[t1068-exploitation-for-privilege-escalation\|T1068]] | Driver vulnerável carregado para exploração local |
| Windows Service | [[t1543-create-or-modify-system-process\|T1543.003]] | Serviço de driver criado via sc.exe com ImagePath para .sys |
| Impair Defenses | [[t1562-impair-defenses\|T1562]] | Driver BYOVD para terminar processos de segurança (ex: gdrv.sys) |
## Implementação
**Sysmon Event ID 6:**
```xml
<RuleGroup name="DriverLoad" groupRelation="or">
<DriverLoad onmatch="include">
<Signed condition="is">false</Signed>
</DriverLoad>
</RuleGroup>
```
**Windows Defender Application Control (WDAC):** Configurar política de controle de drivers para bloquear drivers não autorizados antes do carregamento.
**LOLDrivers Check:** Comparar hashes de drivers carregados com o banco de dados loldrivers.io para identificar drivers vulneráveis conhecidos.
**Habilitar Kernel Mode Code Signing:** Requer que todos os drivers sejam assinados pela Microsoft para carregamento.
**Ferramentas:** Sysmon, Microsoft WDAC, CrowdStrike Falcon Kernel Sensor, SentinelOne, Elastic Endpoint.
## Consultas KQL — Microsoft Sentinel / Defender
### Driver Não Assinado ou Assinatura Revogada
```kql
// DC0019 - Detecção de driver carregado sem assinatura válida
DeviceEvents
| where Timestamp > ago(1d)
| where ActionType == "DriverLoad"
| where (
SignatureStatus !in~ ("Valid", "Trusted")
or SignerType == "None"
or isempty(Signer)
)
| where not(
FolderPath startswith @"C:\Windows\System32\drivers\"
and SignatureStatus == "Valid"
)
| project
Timestamp,
DeviceName,
FileName,
FolderPath,
SHA256,
Signer,
SignatureStatus,
InitiatingProcessFileName,
InitiatingProcessCommandLine
| order by Timestamp desc
```
### Detecção de BYOVD - Hashes LOLDrivers Conhecidos
```kql
// DC0019 - Drivers vulneráveis conhecidos (BYOVD) - adaptar lista de hashes
// Hashes de referência: https://www.loldrivers.io/
let known_vuln_drivers = dynamic([
// gdrv.sys (Gigabyte) - usado pelo BlackByte ransomware
"31f4cfb4c71da44120752721103a16512444c13c2ac2d857a7e6f13cb679b427",
// MSI Afterburner (RTCore64.sys)
"01aa278b07b58dc46c84bd0b1b5c8e9ee4e62ea0bf7a695862444af32e87f1fd",
// iqvw64e.sys (Intel Network Adapter) - CVE-2015-2291
"c521f4e8e98da1c3843e4a4fde1d4edfc7e5c427f4869d7da4e06c3e8bc61e64"
]);
DeviceEvents
| where Timestamp > ago(7d)
| where ActionType == "DriverLoad"
| where SHA256 in (known_vuln_drivers)
| project
Timestamp,
DeviceName,
FileName,
FolderPath,
SHA256,
Signer,
InitiatingProcessFileName,
InitiatingProcessAccountName
| order by Timestamp desc
```
## Contexto LATAM
> [!latam] Relevância Regional
> **BYOVD é técnica avançada adotada por grupos que atacam infraestrutura crítica da região.** Em 2024, o uso de drivers vulneráveis para desabilitar EDR foi documentado em ataques a empresas do setor de energia e manufatura no Brasil — setores com alta penetração de equipamentos industriais com drivers legados. O grupo **BlackByte ransomware** utilizou o driver **gdrv.sys** (Gigabyte) em ataques documentados na América Latina para desabilitar o CrowdStrike Falcon antes do deployment do payload. Organizações brasileiras com parque de hardware heterogêneo (escritórios com hardware Gigabyte, MSI, ASRock) devem priorizar o inventário de drivers carregados e comparação contra **LOLDrivers.io** — banco de dados de referência mantido pela comunidade de segurança.
## Referências
- [MITRE ATT&CK - DS0027 Driver](https://attack.mitre.org/datasources/DS0027/)
- [LOLDrivers Database - loldrivers.io](https://www.loldrivers.io/)
- [BYOVD - Microsoft Security Blog](https://www.microsoft.com/en-us/security/blog/)
- [BlackByte BYOVD - Sophos X-Ops](https://news.sophos.com/en-us/category/threat-research/)