# 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/)