Share via


Meu servidor com o Windows Server 2016 não efetua boot com o UEFI habilitado. Por que?

O UEFI, ou Unified Extensible Firmware Interface, em português Interface Unificada de Firmware Extensível, é uma especificação que define uma interface de software entre o sistema operacional e o firmware da plataforma. É na verdade a sucessora de nossa velha e conhecida BIOS (Basic Input Output System). É a nova responsável por fazer seu servidor, notebook ou desktop iniciar (dar o boot).

A BIOS foi utilizada já de longa data desde os primeiros PC´s (Personal Computers); Qualquer novo equipamento como notebooks, desktops ou servidores (hardware no geral) já vem com sua firmware baseada em tecnologia UEFI de fábrica. Essa nova forma de efetuar o boot em nossos equipamentos pode ser extremamente útil para o aprimoramento da segurança em nosso ambiente. O Windows Server 2016 suporta todos os recursos da UEFI, especialmente o Secure Boot (que é cobrado pela prova 70-744 - Securing Windows Server 2016), porém alguns cuidados devem ser reforçados.

A necessidade da UEFI veio de uma série de limitações de equipamentos PC´s com suas BIOS (modo 16-bits, espaço de endereçamento de 1MB, dependências de hardware PC AT, etc.), sendo completamente inútil às novas plataformas de hardware de servidores da atualidade (como o Intel-HP Itanium de meados de 1990, por exemplo). O que tem de tão especial neste novo formato de inicialização exatamente? Pois bem, alguns drivers específicos de dispositivo podem ter sua interfaces direcionada para uso pelo sistema operacional, permitindo ao SO confiar ao UEFI o suporte básico aos gráficos e à rede enquanto os drivers específicos são carregados. Assim que o UEFI é iniciado, é notado uma enorme melhoria e performance e diferentemente da BIOS, o novo sistema de carregamento do PC/Servidor, permite a interatividade do usuário com suas funcionalidades por meio do mouse. Tal característica consome mais recurso da máquina, entretanto, a flexibilidade e a praticidade com que você navega entre os menus do UEFI são muito maiores.

https://3.bp.blogspot.com/-a2-qK7w8ga0/WO02sAiIIgI/AAAAAAAAMDQ/tTkvACu7dRktwQY_Fe1_wda5oke4sx10gCLcB/s640/bios-vs-uefi-comparison-unhappyghost-ethical-hacker-security-expert-india.jpeg

O método para inicialização de um servidor dentro da configuração baseada em UEFI, depende inteira e exclusivamente do fabricante do equipamento original (OEM), ou seja, a HP tem sua técnologia diferente da IBM e Lenovo. Isso significa que existem homologações diferentes para utilização dos recursos da UEFI em conjunto com o Windows Server 2016.

https://2.bp.blogspot.com/-knlf3We4i3A/WO02cp-1qGI/AAAAAAAAMDM/Q6iB1CvxcwIA1PSJqPlYuEdmjcyTce5cQCLcB/s640/configuracoes-uefi-61.png

Mas exatamente o que faz o Secure Boot e o que este recurso tem a ver com a UEFI? O Secure Boot (boot seguro), é um recurso UEFI que protege o ambiente de inicialização do servidor. O firmware do UEFI armazena um banco de dados de hardware confiável, drivers, sistemas operacionais e ROMs opcionais. Este banco de dados é estruturado diretamente pelo OEM do servidor e fará com que o servidor só seja iniciado se os arquivos de carregamento de inicialização do sistema operacional e os drivers de dispositivo forem assinados e confiáveis digitalmente pelo banco de dados de Inicialização. Resumindo bem a história, se os drivers não forem assinados digitalmente, o servidor simplesmente não inicia (não efetua boot).

O Secure Boot pode ser desativado iniciando o servidor pela configuração UEFI/BIOS. Isso pode ser necessário caso algum hardware de servidor não seja reconhecido pela UEFI. Você também pode habilitar o módulo de suporte de compatibilidade (CSM) da UEFI para configurar o servidor para inicializar usando o modo de BIOS herdado, embora isso desfaça a finalidade da segurança de inicialização. A ideia do Secure Boot é realmente não permitir o boot da máquina se o driver não for devidamente assinado.

O programa de configuração UEFI do servidor deve permitir que seja possível a definição de uma ou mais senhas de inicialização que impeçam inicializações não autorizada. Como os ajustes de firmware do UEFI/BIOS são salvos pela bateria da placa-mãe, você precisa adicionar bloqueios físicos ao chassi do servidor para evitar que o atacante (invasor), limpe tais configurações e obtenha acesso ao sistema. Veja bem, o Secure Boot em conjunto com o UEFI protegem inicializações não autorizadas de um determinado servidor.

https://1.bp.blogspot.com/-SaqEeb3bQ54/WO03Nlbwj6I/AAAAAAAAMDU/QwPYEm5Uwa8ftcQ89hJAK8__SGh7dxiRwCLcB/s640/image4%2B%25281%2529.png

Este recurso de segurança do Windows Server 2016 quando habilitado, pode fazer com que um servidor não seja iniciado corretamente exatamente quando um driver não assinado é instalado. Antes de instalar drivers diversos em seu servidor, verifique se o Secure Boot esta instalado e se o driver é assinado digitalmente. É importante lembrar que o Secure Boot depende do suporte da UEFI e é possível limpar as configurações de forma forçada diretamente no hardware da placa mãe.

E por que exatamente alguém optaria por não permitir o boot (inicialização) de um servidor? Devemos atentar que  tais tecnologias de proteção como Secure Boot e segurança TPM foram desenvolvidos para evitar a injeção de código malicioso direcionado ao boot do sistema de forma não autorizada, que pode obviamente comprometer nossos servidores. Os exames de certificação da Microsoft tendem a colocar mais ênfase no "porquê" ao invés do "como", embora precisemos entender como configurar os controles de segurança para conquistar o exame de certificação 70-744.