# DS0027 — Driver ## Descrição Um driver é um programa de computador que opera ou controla um tipo específico de dispositivo conectado a um sistema. Ele fornece uma interface de software para dispositivos de hardware, permitindo que sistemas operacionais e outros programas acessem funções de hardware sem necessidade de conhecer os detalhes precisos do hardware utilizado. Do ponto de vista da segurança cibernética, drivers representam uma superfície de ataque privilegiada e crítica. Por operarem em nível de kernel (Ring 0 no modelo de proteção x86), drivers maliciosos ou vulneráveis concedem ao adversário controle total sobre o sistema operacional — acima das proteções de espaço de usuário, ferramentas EDR e mecanismos de controle de acesso convencionais. Técnicas como BYOVD (*Bring Your Own Vulnerable Driver*) exploram drivers legítimos com assinatura digital para desabilitar soluções de segurança, tornando a monitoração dessa fonte de dados essencial para detecção precoce. A observabilidade de drivers envolve principalmente dois componentes: o registro de metadados (nome, caminho, hash, assinatura) no momento do carregamento, e a captura do próprio evento de carregamento com contexto de processo pai. Ambos são necessários para correlacionar carregamentos anômalos com campanhas de ameaças conhecidas, como as utilizadas por grupos como [[g0032-lazarus-group]], [[g1017-volt-typhoon]] e operadores de ransomware que abusam de drivers para persistência em nível de kernel. ## Pipeline de Coleta ```mermaid graph TB A["🖥️ Sistema Operacional<br/>Windows · Linux · macOS"] --> B["📋 Eventos de Driver<br/>Sysmon EID 6 · System EID 219<br/>auditd init_module"] A --> C["🔐 EDR Agent<br/>CrowdStrike · SentinelOne<br/>Microsoft MDE"] B --> D["🔍 Enriquecimento<br/>Hash SHA256 · Assinatura<br/>Verificação loldrivers.io"] C --> D D --> E["📦 SIEM<br/>Splunk · Elastic · Sentinel"] E --> F["🚨 Alertas BYOVD<br/>Driver sem assinatura<br/>Hash em blocklist · Rootkit"] ``` ## Componentes de Dados | Componente | ID | Descrição | Uso Principal | |---|---|---|---| | Driver Load | [[dc0079-driver-load\|DC0079]] | Evento de carregamento de um driver no kernel | Detectar BYOVD, rootkits, drivers maliciosos | | Driver Metadata | [[dc0074-driver-metadata\|DC0074]] | Atributos estáticos: nome, caminho, hash, assinatura digital | Correlacionar com blocklists, verificar assinatura | ## Como Coletar ### Windows - **Windows Event Log — System (ID 6, 219):** Carregamento de driver pelo kernel. ID 6 = driver carregado; ID 219 = falha de carregamento. - **Sysmon (Event ID 6):** Captura `DriverLoad` com hash SHA1/SHA256, assinatura e caminho completo. Requer `Sysmon` instalado com configuração `DriverLoad` habilitada. - **ETW (Event Tracing for Windows):** Provider `Microsoft-Windows-Kernel-PnP` para carregamentos plug-and-play; `Microsoft-Windows-Driver-Frameworks-UserMode` para drivers em modo usuário. - **EDR Agents:** Soluções como CrowdStrike Falcon, SentinelOne e Microsoft Defender for Endpoint registram carregamentos de driver com contexto enriquecido. ```yaml # Sysmon config para captura de DriverLoad <DriverLoad onmatch="exclude"> <!-- Excluir drivers Microsoft assinados verificados --> <Signature condition="is">microsoft windows</Signature> </DriverLoad> ``` ### Linux - **`/proc/modules`** e **`/sys/module/`:** Estado atual dos módulos carregados. - **`dmesg` / `journalctl -k`:** Mensagens de kernel incluindo carregamentos de módulos (`insmod`, `modprobe`). - **Auditd:** Regras para syscalls `init_module` e `finit_module` capturam carregamentos de módulo de kernel (LKM). - **Falco:** Detecção em tempo real de carregamentos de módulo suspeitos via regras baseadas em syscall. ### macOS - **EndpointSecurity Framework:** API nativa da Apple para monitoramento de eventos do kernel, incluindo carregamentos de extensão (kext). - **`kextstat` / `kmutil showloaded`:** Listagem de extensões carregadas (kexts no macOS legado; System Extensions no macOS moderno). - **Unified Logging (`log stream`):** Filtrar por subsistema `com.apple.kernel` para eventos de extensão. ## Técnicas Detectadas | ID | Técnica | Como DS0027 Detecta | |---|---|---| | T1014 | [[t1014-rootkit\|T1014 — Rootkit]] | Carregamento de driver com hash não reconhecido ou sem assinatura válida | | T1547.006 | [[t1547-006-kernel-modules-and-extensions\|T1547.006 — Kernel Modules and Extensions]] | Driver carregado via `insmod`/`modprobe` por processo não privilegiado | | T1562.001 | [[t1562-001-disable-or-modify-tools\|T1562.001 — Disable or Modify Tools]] | Driver BYOVD carregado para desabilitar EDR (padrão visto em [[g0032-lazarus-group]]) | | T1543.003 | [[t1543-003-windows-service\|T1543.003 — Windows Service]] | Serviço Windows registrado apontando para driver malicioso como executável | | T1068 | [[t1068-exploitation-for-privilege-escalation\|T1068 — Exploitation for Privilege Escalation]] | Driver vulnerável carregado em contexto de exploração de escalação de privilégios | ## Gaps de Cobertura Brasil/LATAM **Ausência de Sysmon em ambientes corporativos:** A maioria dos SOCs brasileiros não possui Sysmon implantado, dependendo exclusivamente do Windows Event Log nativo, que não captura hashes de drivers. Sem DC0079 enriquecido, correlação com blocklists de drivers BYOVD conhecidos é inviável. **Falta de blocklists localizadas:** O ecossistema de blocklists de drivers maliciosos (ex: projeto `loldrivers.io`) é quase desconhecido em equipes de segurança brasileiras. Mesmo quando Sysmon está presente, ausência de automação para comparar hashes contra loldrivers cria blind spots significativos. **Linux sem auditd configurado:** Servidores Linux em data centers brasileiros frequentemente operam sem regras auditd para `init_module`. Módulos de kernel maliciosos (usados por grupos como [[g1017-volt-typhoon]] em infraestrutura crítica) passam sem registro. **macOS corporativo negligenciado:** Organizações brasileiras com frotas macOS raramente monitoram carregamentos de kext/System Extension. O Endpoint Security Framework exige desenvolvimento dedicado — recurso escasso na maioria dos SOCs locais. **Integração com SIEM deficiente:** Mesmo quando logs de driver estão disponíveis, a ausência de parsers para `Sysmon EID 6` em SIEMs populares no Brasil (IBM QRadar com DSMs desatualizados, Wazuh sem regras customizadas) resulta em dados coletados mas não analisados. ## Referências - [[_detections|Central de Detecções RunkIntel]] - [[dc0074-driver-metadata|DC0074 — Driver Metadata]] - [[dc0079-driver-load|DC0079 — Driver Load]] - [[dc0031-kernel-module-load|DC0031 — Kernel Module Load]] - [[dc0016-module-load|DC0016 — Module Load]] - [MITRE ATT&CK — DS0027 Driver](https://attack.mitre.org/datasources/DS0027/) - [loldrivers.io — Blocklist de Drivers Vulneráveis](https://www.loldrivers.io/)