A ESET realizou uma investigação detalhada sobre o abuso de controladores (drivers) vulneráveis do kernel do Windows, tendo concluído que estes constituem uma importante porta de entrada para malware.
As vulnerabilidades em controladores de kernel “assinados” (ou seja, supostamente legítimos) são normalmente usadas por programadores de batotas (cheats) para videojogos de forma a contornar mecanismos antibatota, mas a ESET também observou o seu uso por grupos APT (advanced persistent threat – “ameaça persistente avançada”) e em malware tradicional. Estes controladores tornam-se frequentemente em pontos de acesso desprotegidos até ao kernel do Windows para agentes maliciosos.
Entre os vários tipos de controladores do kernel do Windows (o componente central do sistema operativo) encontram-se os controladores de software que fornecem funcionalidades específicas não-relacionadas com hardware, como depuração e diagnóstico de software, análise de sistemas, etc. – um tipo de controlador que pode expandir a superfície de ataque significativamente.
Embora carregar diretamente um controlador malicioso não-assinado já não seja possível nas novas versões do Windows, e rootkits de kernel sejam considerados algo do passado, continuam a existir formas de carregar código malicioso abusando de controladores assinados legítimos. A ESET descobriu que existem múltiplos controladores de diversos fornecedores de hardware e software que oferecem funcionalidades para aceder ao kernel do Windows com esforço mínimo.
As vulnerabilidades mais frequentemente observadas em controladores do kernel do Windows incluem:
- não-inclusão de proteções para limitar o acesso de leitura e escrita de MSRs (model-specific registers – “registos de modelo específico”) críticos;
- exposição da capacidade de mapear memória física a partir do modo utilizador para leitura e escrita;
- exposição da capacidade de aceder a memória virtual do kernel a partir do modo utilizador para leitura e escrita.
“Quando agentes de malware precisam de correr código malicioso no kernel do Windows em sistemas x64 com proteção de assinatura de controladores implementada, carregar um controlador de kernel assinado vulnerável é uma possibilidade. Esta técnica é conhecida como BYOVD (bring your own vulnerable driver – “traga o seu próprio controlador vulnerável”), e a ESET observou o seu uso na vida real tanto por grupos APT como por malware tradicional,” explica Peter Kálnai, um dos coinvestigadores nesta pesquisa.
Exemplos de agentes maliciosos que usam a técnica BYOVD incluem o grupo APT Slingshot, que implementou o seu módulo principal, chamado Cahnadr, como um controlador de kernel que pode ser carregado por controladores de kernel assinados vulneráveis. Outro exemplo é o grupo APT InvisiMole, que foi descoberto por investigadores da ESET em 2018. Uma nova variante do malware InvisiMole é, até à data, o único caso que a ESET observou de um ataque MSR em sistemas Windows 10 x64 feito na vida real por um agente malicioso.
Outro exemplo é o ransomware RobbinHood que, como malware tradicional, tem como objetivo chegar ao maior número de pessoas possível. Um malware deste tipo usar uma técnica BYOVD é raro – mas eficaz. Este ransomware tira partido de um controlador de motherboard GIGABYTE vulnerável para desativar a proteção de assinatura de controladores e instala o seu próprio controlador malicioso. Finalmente, o LoJax, outra descoberta da ESET em 2018 e o primeiro rootkit UEFI de sempre usado na vida real, tirava partido do controlador RWEverything para obter acesso aos módulos UEFI das vítimas.
A ESET não só catalogou vulnerabilidades existentes como também procurou novas. Os fornecedores que contactou foram muito proativos durante o processo de investigação e mostraram-se interessados em corrigir as vulnerabilidades reveladas.
“Embora existam vários mecanismos de proteção implementados pelo CPU e pelo sistema operativo, a maior parte deles podem ser contornados por técnicas sofisticadas e não são muito eficazes se o atacante se preparar antecipadamente,” diz Kálnai.
A ESET sugere as seguintes medidas de mitigação:
- Segurança baseada na virtualização: Esta funcionalidade introduzida no Windows 10 tira partido da virtualização hardware para isolar o kernel numa sandbox de forma a proteger o sistema operativo com várias proteções;
- Revogação de certificados: Em sistemas Windows modernos, os controladores têm que ter uma assinatura válida baseada num certificado autenticado. Assim, revogar o certificado de um controlador vulnerável é uma maneira fácil de o desativar e inutilizá-lo na maior parte dos casos;
- Blocklisting de controladores: Esta é uma prática adotada tanto pela Microsoft como por vários fornecedores de produtos de cibersegurança, incluindo a ESET, e que consiste em detetar e remover os controladores vulneráveis mais comuns quando encontrados num sistema.
Para saber mais detalhes técnicos sobre esta investigação da ESET, consulte o relatório completo em inglês.