Métodos para desabilitar a proteção Lockdown no Ubuntu para contornar remotamente o UEFI Secure Boot

André Konovalov da empresa Google publicou método de desativação remota da proteção Lockdown, oferecido no pacote com o núcleo Linux distribuído pelo Ubuntu (teoricamente métodos sugeridos deve para trabalhar com o núcleo do Fedora e outras distribuições, mas não foram testados).

O Lockdown limita o acesso do usuário root ao núcleo e bloqueia caminhos de contorno do UEFI Secure Boot. Por exemplo, no modo lockdown, o acesso a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, o modo de depuração kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Estrutura de Informação do Cartão), algumas interfaces ACPI e registradores MSR da CPU é limitado, chamadas kexec_file e kexec_load são bloqueadas, a transição para o modo de suspensão é proibida, o uso de DMA para dispositivos PCI é limitado, a importação de código ACPI de variáveis EFI é proibida, e manipulações com portas de entrada/saída, incluindo a modificação do número da interrupção e a porta de entrada/saída para a porta serial, não são permitidas.

O mecanismo Lockdown foi adicionado recentemente ao núcleo principal do Linux 5.4, mas nas versões fornecidas nas distribuições, ainda está implementado na forma de patches ou complementos. Uma das diferenças entre os complementos fornecidos nas distribuições e a implementação embutida no núcleo é a possibilidade de desativar o bloqueio fornecido com acesso físico ao sistema.

No Ubuntu e no Fedora, a combinação de teclas Alt+SysRq+X está disponível para desativar o Lockdown. Presume-se que a combinação Alt+SysRq+X só possa ser usada com acesso físico ao dispositivo, e no caso de um ataque remoto com acesso root, o atacante não poderá desativar o Lockdown e, por exemplo, carregar um módulo no núcleo sem assinatura digital com um rootkit.

Andrei Konovalov demonstrou que os métodos relacionados ao uso do teclado para confirmar a presença física do usuário não são eficazes. A maneira mais simples de desativar o Lockdown seria uma simulação programática da pressão das teclas Alt+SysRq+X através do /dev/uinput, mas essa opção é inicialmente bloqueada. Ao mesmo tempo, pelo menos mais duas maneiras de injetar Alt+SysRq+X foram identificadas.

A primeira maneira está relacionada ao uso da interface "sysrq-trigger" — para simular, basta ativar essa interface gravando "1" em /proc/sys/kernel/sysrq e, em seguida, gravar "x" em /proc/sysrq-trigger. A brecha mencionada no lançamento foi incluída na atualização de dezembro do núcleo do Ubuntu e no Fedora 31. É notável que os desenvolvedores, como no caso do /dev/uinput, inicialmente tentar bloquear este método, mas o bloqueio não funcionou devido a um erro no código.

O segundo método está relacionado à emulação do teclado através de USB/IP e ao envio subsequente da sequência Alt+SysRq+X com o teclado virtual. No núcleo fornecido com o Ubuntu, o USB/IP está habilitado por padrão (CONFIG_USBIP_VHCI_HCD=m e CONFIG_USBIP_CORE=m) e os módulos usbip_core e vhci_hcd necessários para o funcionamento são fornecidos com assinatura digital verificada. O atacante pode criar um dispositivo USB virtual, iniciando um manipulador de rede na interface de loopback e conectando-o como um dispositivo USB remoto usando USB/IP. Sobre o método mencionado, foi relatado aos desenvolvedores do Ubuntu, mas uma correção ainda não foi lançada.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster