Inicialização Segura
O Secure Boot é um recurso da Unified Extensible Firmware Interface (UEFI) que exige que todos os componentes de firmware e software de baixo nível sejam verificados antes do carregamento. Durante a inicialização, a inicialização segura do UEFI verifica a assinatura de cada parte do software de inicialização, inclusive de drivers de firmware UEFI (também conhecidos como ROMs de opção), aplicativos EFI (Extensible Firmware Interface) e os drivers e binários do sistema operacional. Se as assinaturas forem válidas ou forem confiáveis pelo OEM (fabricante original do equipamento), o computador será inicializado e o firmware dará controle ao sistema operacional.
Componentes e processo
A Inicialização Segura depende desses componentes críticos:
- Chave de plataforma (PK) – estabelece a relação de confiança entre o proprietário da plataforma (Microsoft) e o firmware. A metade pública é PKpub e a metade privada é PKpriv.
- O banco de dados de KEK (chave de registro de chave) – estabelece a relação de confiança entre o sistema operacional e o firmware da plataforma. A metade pública é KEKpub e a metade privada é KEKpriv.
- DB (Banco de Dados) de assinatura – mantém os resumos de assinantes confiáveis (chaves públicas e certificados) do firmware e dos módulos de código de software autorizados para interagir com o firmware da plataforma.
- Banco de dados de assinaturas revogadas (dbx) – Contém resumos revogados de módulos de código que são identificados como maliciosos, vulneráveis, comprometidos ou não confiáveis. Se um hash estiver no BD de assinatura e no BD de assinaturas revogadas, o banco de dados de assinaturas revogadas terá o precedente.
A figura e o processo a seguir explicam como esses componentes são atualizados:
O OEM armazena os resumos do Secure Boot na RAM não volátil (NV-RAM) da máquina no momento da fabricação.
- O banco de dados de assinaturas é preenchido com os signatários ou hashes de imagem de aplicativos UEFI, carregadores de sistema operacional (como o Microsoft Operating System Loader ou o Boot Manager) e drivers UEFI confiáveis.
- O banco de dados de assinaturas revogadas é preenchido com resumos de módulos que não são mais confiáveis.
- O banco de dados de KEK (chave de registro de chave) é preenchido com chaves de assinatura que podem ser usadas para atualizar o banco de dados de assinatura e o banco de dados de assinaturas revogadas. Os bancos de dados podem ser editados por meio de atualizações que são assinadas com a chave correta ou por meio de atualizações por um usuário autorizado fisicamente presente usando menus de firmware.
- Depois que os bancos de dados db, dbx e KEK são adicionados e a validação e os testes finais do firmware são concluídos, o OEM bloqueia a edição do firmware e gera uma chave de plataforma (PK). A PK pode ser usada para assinar atualizações para o KEK ou para desativar a Inicialização Segura.
Durante cada estágio do processo de inicialização, os resumos do firmware, o carregador de inicialização, o sistema operacional, os drivers de kernel e outros artefatos da cadeia de inicialização são calculados e comparados com valores aceitáveis. Firmware e software que são considerados não confiáveis não podem ser carregados. Dessa forma, ataques de injeção de malware de baixo nível ou de malware de pré-inicialização podem ser bloqueados.
Inicialização segura na frota do Azure
Hoje, todos os computadores que são integrados e implantados na computação do Azure da frota para hospedar cargas de trabalho do cliente vêm de fábrica com a Inicialização Segura habilitada. Ferramentas e processos direcionados estão em vigor em cada estágio do desenvolvimento de hardware e do pipeline de integração para garantir que a ativação do Secure Boot não seja revertida por acidente ou por intenção maliciosa.
Validar se os resumos do db e do dbx está correta garante:
- O carregador de inicialização está presente em uma das entradas de BD
- A assinatura do bootloader é válida
- Inicializações de host com software confiável
Ao validar as assinaturas de KEKpub e PKpub, podemos confirmar que apenas partes confiáveis têm permissão para modificar as definições de qual software é considerado confiável. Por fim, ao garantir que a inicialização segura está ativa, podemos validar que essas definições estão sendo impostas.
Próximas etapas
Para saber mais sobre o que fazemos para aumentar a integridade e a segurança da plataforma, confira: