O primeiro bootkit UEFI voltado especificamente para sistemas Linux foi descoberto, marcando uma mudança nas ameaças de bootkit furtivas e difíceis de remover que anteriormente se concentravam no Windows.
Chamado de ‘Bootkitty’, o malware Linux é uma prova de conceito que funciona apenas em algumas versões e configurações do Ubuntu, em vez de uma ameaça completa implantada em ataques reais.
Bootkits são malwares projetados para infectar o processo de inicialização de um computador, carregando antes do sistema operacional e permitindo que ele obtenha controle sobre um sistema em um nível muito baixo.
A vantagem desta prática é que os bootkits podem escapar das ferramentas de segurança executadas no nível do sistema operacional e modificar componentes do sistema ou injetar código malicioso sem risco de detecção.
Pesquisadores da ESET que descoberto Bootkitty alerta que sua existência é uma evolução significativa no espaço de ameaças de bootkit UEFI, apesar das atuais implicações no mundo real.
Um bootkit Linux em construção
A ESET descobriu o Bootkitty após examinar um arquivo suspeito (bootkit.efi) enviado para VirusTotal em novembro de 2024.
Após análise, a ESET confirmou que este foi o primeiro caso de um bootkit Linux UEFI a ignorar a verificação de assinatura do kernel e pré-carregar componentes maliciosos durante o processo de inicialização do sistema.
O Bootkitty depende de um certificado autoassinado, por isso não será executado em sistemas com inicialização segura habilitada e tem como alvo apenas determinadas distribuições do Ubuntu.
Além disso, os deslocamentos codificados e a correspondência simplista de padrões de bytes tornam-no utilizável apenas em versões específicas do GRUB e do kernel, portanto, não é adequado para implantação generalizada.
A ESET também observa que o malware contém muitas funções não utilizadas e lida mal com a compatibilidade da versão do kernel, muitas vezes levando a falhas no sistema.
A natureza problemática do malware e o fato de a telemetria da ESET não mostrar sinais de Bootkitty em sistemas ativos levaram os pesquisadores a concluir que ele está em estágio inicial de desenvolvimento.
Capacidades do Bootkitty
Durante a inicialização, o Bootkitty conecta os protocolos de autenticação de segurança UEFI (EFI_SECURITY2_ARCH_PROTOCOL e EFI_SECURITY_ARCH_PROTOCOL) para ignorar as verificações de integridade do Secure Boot, garantindo que o bootkit seja carregado independentemente das políticas de segurança.
Em seguida, ele conecta várias funções do GRUB, como ‘start_image’ e ‘grub_verifiers_open’, para manipular as verificações de integridade do bootloader para binários, incluindo o kernel do Linux, desativando a verificação de assinatura.
O Bootkitty então intercepta o processo de descompactação do kernel Linux e conecta a função ‘module_sig_check’. Isso o força a sempre retornar sucesso durante as verificações dos módulos do kernel, permitindo que o malware carregue módulos maliciosos.
Além disso, substitui a primeira variável de ambiente por ‘LD_PRELOAD=/opt/injector.so’ para que a biblioteca maliciosa seja injetada nos processos na inicialização do sistema.
Todo este processo deixa para trás vários artefactos, alguns intencionais e outros não, explica a ESET, o que é mais uma indicação da falta de refinamento do Bootkitty.
Os pesquisadores também notaram que o mesmo usuário que carregou o Bootkitty no VT também carregou um módulo de kernel não assinado chamado ‘BCDropper’, mas as evidências disponíveis vinculam fracamente os dois.
O BCDropper descarta um arquivo ELF chamado ‘BCObserver’, um módulo do kernel com funcionalidade de rootkit que oculta arquivos, processa e abre portas no sistema infectado.
A descoberta desse tipo de malware ilustra como os invasores estão desenvolvendo malware para Linux que antes era isolado do Windows, à medida que as empresas adotam cada vez mais o Linux.
Indicadores de comprometimento (IoCs) associados ao Bootkitty foram compartilhados neste Repositório GitHub.