Microsoft retomou o desenvolvimento do Hornet, um módulo de segurança para Linux que verifica assinaturas de programas eBPF dentro do kernel. A empresa apresentou uma nova versão da proposta, após meses de silêncio, buscando retomar a discussão com a comunidade do kernel.
O módulo oferece verificação de assinaturas diretamente no carregamento de programas eBPF, o que fortalece controle de acesso, auditoria e precisão dos registros do sistema. Essa abordagem impede que o sistema registre como verificado um programa que só teve o carregador validado, evitando conclusões enganosas sobre o estado real da verificação.
Outro ponto tratado é a prevenção de ataques de tempo-de-verificação versus tempo-de-uso. O mecanismo atual de hashes de mapas pode permitir alterações após a criação do hash, algo que um carregador confiável não detecta, o que é corrigido pelo Hornet.
As verificações adicionais usam a infraestrutura PKCS#7 já existente. Depois disso, o Hornet calcula o estado final de verificação do programa e aciona um novo gancho no módulo de segurança para permitir que outras políticas definam o que fazer com base nesse resultado.
Resta saber se o Hornet será aceito no kernel principal em 2026.
O que são programas eBPF?
Programas eBPF são pequenos trechos de código que o kernel Linux executa de forma segura e isolada, estendendo funcionalidades sem modificá-lo. Eles permitem observar, filtrar ou modificar o comportamento de partes do sistema, como rede, segurança e monitoramento de desempenho.
O kernel verifica cada programa antes de executá-lo para garantir que não quebre o sistema, e essa capacidade transformou o eBPF em uma base para ferramentas modernas de observabilidade, firewalls avançados, análise de tráfego e políticas de segurança mais flexíveis.
Exemplos de programas eBPF incluem filtros que analisam pacotes de rede para implementar firewalls avançados, rotinas que coletam métricas de latência de aplicações em tempo real, monitores que rastreiam chamadas de sistema para identificar comportamentos suspeitos, etc.
Esses programas atuam de forma rápida e segura dentro do kernel e permitem diagnósticos e controles que antes exigiam módulos complexos ou alterações permanentes no sistema.
Por quê foi polêmico antes?
O Hornet gerou polêmica porque, ao realizar sua função, tocava em áreas sensíveis da arquitetura do Linux. Parte da comunidade viu a proposta como complexa demais, com risco de duplicar mecanismos já existentes, enquanto outros temiam que criasse dependências ou caminhos que lembrassem modelos mais fechados de validação de software.
Também houve questionamentos sobre a real necessidade do módulo, já que o kernel já conta com verificações rigorosas no carregamento de eBPF, e sobre o impacto de novos ganchos de segurança no fluxo interno do kernel. A discussão ficou travada por falta de consenso sobre design, utilidade prática e possíveis efeitos a longo prazo na manutenção e na filosofia do kernel.
A Microsoft apresentou um módulo de segurança que introduzia ganchos novos no kernel e um fluxo de verificação considerado complexo, sem demonstrar claramente benefícios que justificassem essa mudança estrutural.
Na nova proposta, a Microsoft reduziu sua abrangência, alinhou seu funcionamento ao esquema já aceito de verificação de carregadores e mapas e passou a usar a infraestrutura existente de PKCS#7, evitando mecanismos paralelos.
A empresa também tornou o design mais flexível, com ganchos mais simples e foco explícito em auditoria consistente e prevenção de ataques de tempo-de-verificação versus tempo-de-uso. O objetivo agora é integrar melhor o Hornet às práticas já adotadas no kernel e responder às críticas que apontavam excesso de complexidade e falta de justificativa técnica na proposta inicial.
O Hornet é um Secure Boot melhorado?
Não. O Hornet não atua junto à verificação do EFI nem faz parte da cadeia de boot segura. A verificação ligada ao EFI envolve o Secure Boot, que confere assinaturas de firmware, bootloaders e componentes críticos antes do sistema iniciar. Esse processo acontece antes do kernel rodar.
O Hornet opera dentro do kernel, em um estágio completamente diferente. Ele verifica assinaturas de programas eBPF carregados em tempo de execução, reforçando integridade, auditoria e controle de acesso após o sistema já estar funcionando.
Enquanto o Secure Boot garante que o sistema inicializa em um estado confiável, o Hornet tenta manter essa confiança ao monitorar e validar código dinâmico executado no kernel por meio do eBPF.
São camadas independentes: Secure Boot protege o início, e o Hornet protege a execução contínua de eBPF.
