
Super UEFIinSecureBoot Disk: Inicialize qualquer sistema operacional ou arquivo .efi sem desativar o UEFI Secure Boot
Super UEFIinSecureBoot Disk é uma imagem inicializável prova de conceito (não mantida ou aprimorada ativamente) com o carregador de inicialização GRUB2 projetada para ser usada como base para unidades USB flash de recuperação.
Característica principal: o disco é totalmente funcional com o modo UEFI Secure Boot ativado. Ele pode iniciar qualquer sistema operacional ou arquivo .efi, mesmo com assinatura não confiável, inválida ou ausente.
O Secure Boot é um recurso do firmware UEFI projetado para proteger o processo de inicialização, impedindo o carregamento de drivers ou carregadores de SO que não estejam assinados com uma assinatura digital aceitável.
A maioria dos computadores modernos vem com o Secure Boot ativado por padrão, o que é um requisito para o processo de certificação do Windows 10. Embora possa ser desativado em todas as placas-mãe típicas no menu de configuração UEFI, às vezes não é facilmente possível, por exemplo, devido a uma senha de configuração UEFI em um laptop corporativo que o usuário não conhece.
Este disco, após ser instalado em uma unidade USB flash e inicializado a partir dele, desativa efetivamente os recursos de proteção do Secure Boot e permite temporariamente realizar quase todas as ações no PC como se o Secure Boot estivesse desativado. Isso pode ser útil para recuperação de dados, reinstalação do SO ou apenas para inicializar a partir de USB sem se preocupar com etapas adicionais.
Baixe o arquivo de imagem da página de lançamentos, grave-o em uma unidade USB flash usando um dos seguintes programas:
AVISO: todos os dados da sua unidade USB flash serão excluídos.
A imagem contém uma única partição FAT32 de 500 MiB. Use o gparted ou ferramenta similar para redimensioná-la e obter todo o espaço da unidade USB.
A primeira inicialização em um PC com Secure Boot exibirá uma caixa de mensagem de Violação de Acesso. Pressione OK e escolha a opção de menu "Inscrever certificado do arquivo". Selecione ENROLL_THIS_KEY_IN_MOKMANAGER.cer e confirme a inscrição do certificado.
Computadores sem Secure Boot inicializarão no GRUB sem intervenção manual.
Este disco funciona com Secure Boot?
Sim, funciona. Ele carrega qualquer kernel Linux ou arquivo .efi ou driver não assinado ou não confiável, após a inscrição manual da chave na primeira inicialização usando o software MokManager. Você não precisa desabilitar o Secure Boot para realizar a inscrição da chave na primeira inicialização.
Este disco funciona em computadores baseados em UEFI sem Secure Boot, ou com Secure Boot desabilitado?
Sim, funcionará como um GRUB2 padrão.
Este disco funciona em computadores mais antigos com BIOS?
Sim, funciona como qualquer outro carregador de inicialização GRUB2.
Este disco pode ser usado para contornar o Secure Boot em bootkit/vírus UEFI?
Não, não realmente. Este disco requer intervenção manual de um usuário físico na primeira inicialização, o que elimina o propósito de um bootkit ser furtivo.
Posso substituir o GRUB por outro carregador de inicialização EFI (rEFInd, syslinux, systemd-boot)?
Sim, substitua grubx64_real.efi/grubia32_real.efi pelos seus arquivos. O carregador de inicialização não precisa ser assinado e também deve iniciar quaisquer arquivos .efi graças à Política de Segurança instalada por grubx64.efi/grubia32.efi (PreLoader), assim como o GRUB2 incluído no disco.
O processo de inicialização UEFI deste disco é realizado em 3 etapas.
bootx64.efi (shim) → grubx64.efi (preloader) → grubx64_real.efi (grub2) → EFI file/OS
Estágio 1: a placa-mãe carrega o shim. O shim é um carregador especial que apenas carrega o próximo executável, grubx64.efi (preloader) no nosso caso. O shim é assinado com a chave Microsoft, o que permite que seja iniciado no modo Secure Boot em todas as placas-mãe de PC padrão.
O shim contém um certificado Fedora incorporado (porque é extraído do repositório Fedora). Se o Secure Boot estiver ativado, como o grubx64.efi não está assinado com o certificado Fedora incorporado, o shim inicializa outro executável, o MokManager.efi, que é um software especial de gerenciamento de chaves do shim. O MokManager pede ao usuário para prosseguir com o processo de inscrição de chave ou hash.
As versões mais recentes do shim instalam ganchos para as funções LoadImage, StartImage, ExitBootServices e Exit do UEFI para "Endurecer contra carregadores de inicialização não participantes", o que deve ser contornado para o caso de uso deste disco. O shim do Fedora não instala políticas de segurança UEFI personalizadas, por isso não é possível carregar arquivos efi autoassinados a partir do carregador de inicialização de segundo estágio, mesmo se você adicionar seus hashes ou certificados usando o MokManager.
Estágio 2: o preloader é um software semelhante ao shim. Ele também realiza validação de executáveis e carrega o próximo arquivo efi. O preloader incluído neste disco é uma versão reduzida que executa apenas uma função: instalar uma política de segurança UEFI que permite tudo. Isso permite o carregamento de executáveis efi arbitrários com as funções UEFI LoadImage/StartImage mesmo fora do GRUB (por exemplo, no Shell UEFI), e contorna o endurecimento do shim.
Estágio 3: o GRUB2 é um carregador de inicialização universal bem conhecido. Ele foi corrigido para carregar o kernel Linux sem verificação adicional (comandos linux/linuxefi), carregar binários .efi na memória e saltar para seu ponto de entrada (comando chainloader), e para imitar um "carregador de inicialização participante" para o shim.
Leia meu artigo sobre este tópico: Explorando carregadores de inicialização assinados para contornar o UEFI Secure Boot (também disponível em russo)
O GRUB2 do Super UEFIinSecureBoot Disk define a variável suisbd=1. Ela pode ser usada para detectar o GRUB2 corrigido do disco em um grub.conf compartilhado entre vários carregadores de inicialização.
Desde a versão 3, o GRUB usa o carregador de arquivos .efi UEFI padrão, pois há alguns problemas com a implementação do carregador interno. Para usar o carregador interno, adicione set efi_internal_loader=1 no arquivo de configuração do GRUB. Ambos os métodos podem carregar arquivos .efi não confiáveis.