Métodos para desativar a segurança de bloqueio no Ubuntu para ignorar a inicialização segura UEFI remotamente

Andrey Konovalov do Google опубликовал maneira de desativar a proteção remotamente Lockdownoferecido no pacote do kernel Linux fornecido com o Ubuntu (teoricamente, os métodos propostos ter funcionam com o kernel do Fedora e outras distribuições, mas não foram testados).

O bloqueio restringe o acesso root ao kernel e bloqueia os caminhos de bypass do UEFI Secure Boot. Por exemplo, o modo de bloqueio restringe o acesso a /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, modo de depuração kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), algumas interfaces Registros ACPI e MSR da CPU, bloqueia chamadas kexec_file e kexec_load, proíbe o modo de suspensão, limita o uso de DMA para dispositivos PCI, proíbe a importação de código ACPI de variáveis ​​EFI, não permite manipulações com portas de E / S, incluindo alteração do número de interrupção e um Porta de E/S para a porta serial.

O mecanismo Lockdown foi adicionado recentemente ao núcleo do kernel do Linux. 5.4, mas ainda é implementado na forma de patches ou complementado com patches nos kernels fornecidos com as distribuições. Uma das diferenças entre os complementos fornecidos nas distribuições e a implementação incorporada ao kernel é a capacidade de desabilitar o bloqueio fornecido quando houver acesso físico ao sistema.

No Ubuntu e Fedora, a combinação de teclas Alt+SysRq+X é fornecida para desabilitar o bloqueio. Entende-se que a combinação Alt+SysRq+X só poderá ser utilizada com acesso físico ao dispositivo, sendo que no caso de hacking remoto e obtenção de acesso root, o invasor não poderá desabilitar o Lockdown e, por exemplo, carregar um módulo não assinado com um rootkit no kernel.

Andrey Konovalov mostrou que métodos baseados em teclado para confirmar a presença física do usuário são ineficientes. A maneira mais fácil de desativar o bloqueio seria programaticamente simulação pressionando Alt+SysRq+X via /dev/uinput, mas esta opção está desativada por padrão. Ao mesmo tempo, conseguimos identificar pelo menos mais duas formas de substituir Alt + SysRq + X.

O primeiro método envolve o uso da interface "sysrq-trigger" - para simulação, basta habilitar essa interface escrevendo "1" em /proc/sys/kernel/sysrq e depois escrevendo "x" em /proc/sysrq- acionar. lacuna especificada eliminado na atualização de dezembro do kernel do Ubuntu e no Fedora 31. Vale ressaltar que desenvolvedores, como no caso de /dev/uinput, inicialmente tentou bloquear determinado método, mas o bloqueio não funcionou devido a Erros em código.

O segundo método está relacionado à emulação de teclado por meio de USB/IP e, em seguida, enviando a sequência Alt+SysRq+X do teclado virtual. O núcleo USB/IP fornecido com o Ubuntu é ativado por padrão (CONFIG_USBIP_VHCI_HCD=m e CONFIG_USBIP_CORE=m) e fornece os módulos usbip_core e vhci_hcd assinados digitalmente necessários para a operação. O atacante pode criar dispositivo USB virtual, executando manipulador de rede na interface de loopback e conectando-o como um dispositivo USB remoto usando USB/IP. Sobre o referido método relatado Desenvolvedores do Ubuntu, mas nenhuma correção foi lançada ainda.

Fonte: opennet.ru

Adicionar um comentário