Pesquisadores da ESET identificaram um novo bootkit chamado "Bootkitty", que é instalado após a invasão do sistema, substituindo o carregador GRUB e sendo usado para injetar componentes maliciosos no núcleo do Linux, permitindo que o invasor controle o sistema de forma oculta e execute suas ações. Afirma-se que este é o primeiro bootkit UEFI direcionado a sistemas Linux.
O Bootkitty é armazenado no arquivo grubx64.efi na partição EFI do sistema (EFI system partition, /boot/efi/EFI/ubuntu) em vez do carregador GRUB padrão. Após ser ativado pelo firmware UEFI, o bootkit carrega na memória o verdadeiro carregador GRUB2 e faz alterações no código armazenado em memória do GRUB2, desativando a verificação de integridade dos componentes que serão carregados posteriormente, além de adicionar um manipulador que é chamado após a extração da imagem do núcleo Linux na memória. Esse manipulador faz alterações nas funções do núcleo carregadas na memória (desativando a verificação dos módulos por assinatura digital), além de alterar a linha de comando do processo de inicialização de " /init" para "LD_PRELOAD=/opt/injector.so /init".
A biblioteca injector.so intercepta algumas operações do SELinux e a função init_module, que é então usada para carregar o módulo do núcleo /opt/dropper.ko. O módulo do núcleo dropper.ko cria e executa o arquivo executável /opt/observer, depois se oculta na lista de módulos do núcleo e instala manipuladores de chamadas de sistema, como getdents e tcp4_seq_show, para ocultar o arquivo /opt/observer e determinado tráfego de rede. O arquivo executável /opt/observer carrega o módulo do núcleo /opt/rootkit_loader.ko, que é o carregador do rootkit /opt/rootkit.

Para instalar o bootkit, é necessário acesso privilegiado ao sistema, e esse tipo de malware costuma ser utilizado por invasores após uma invasão ou comprometimento bem-sucedido do sistema para fixar sua presença futura e ocultar atividades maliciosas. A biblioteca injector.so e os módulos maliciosos do núcleo são colocados na imagem do disco RAM inicial ou no sistema de arquivos pelo invasor. O carregador grubx64.efi é colocado na partição de arquivos para UEFI.
Na variante Bootkitty, que caiu nas mãos de pesquisadores, a modificação das funções na memória do núcleo foi realizada com base em deslocamentos predefinidos, sem verificar a correção desses deslocamentos para a versão do núcleo carregada. Os deslocamentos utilizados no Bootkitty eram aplicáveis apenas a versões do núcleo e do GRUB fornecidas em certas versões do Ubuntu, enquanto em outros sistemas levavam a falhas na inicialização. Para verificar o carregador Bootkitty (grubx64.efi), foi utilizado um certificado autoassinado, o que impedia a aplicação do bootkit em sistemas com o modo UEFI Secure Boot ativado, a menos que o certificado do atacante fosse adicionado à lista de certificados confiáveis no UEFI. Essas características levaram os pesquisadores a concluir que o Bootkitty é apenas um protótipo de bootkit, ainda não utilizado para ataques reais.
Após examinar as informações publicadas pela ESET, os pesquisadores da Binarly Research notaram entre os artefatos relacionados ao Bootkitty imagens BMP utilizadas para explorar a vulnerabilidade LogoFAIL, que permite a execução de código no nível do firmware UEFI, contornando o mecanismo UEFI Secure Boot. No contexto do Bootkitty, a exploração da vulnerabilidade LogoFAIL foi empregada para adicionar o certificado autoassinado do atacante, que valida o carregador do bootkit grubx64.efi, à lista de certificados aprovados do UEFI, permitindo que o bootkit fosse executado em sistemas com UEFI Secure Boot ativo, sem necessidade de adicionar o certificado manualmente.
O ataque é realizado através da colocação de uma imagem devidamente formatada em BMP na partição ESP (EFI System Partition), para ser exibida pelo firmware UEFI como o logotipo do fabricante. Devido ao uso de bibliotecas vulneráveis em firmwares UEFI para manipulação de imagens, o processamento da imagem especialmente formatada pode resultar em um estouro de buffer e execução de código com privilégios do firmware UEFI. A vulnerabilidade LogoFAIL foi descoberta há um ano e afeta firmwares UEFI, entre outros, utilizados em laptops da Acer, HP, Fujitsu e Lenovo. Em novas versões de firmwares UEFI, a questão foi corrigida, mas muitos dispositivos ainda em uso operam com versões vulneráveis dos firmwares.

Fonte: opennet.ru
