Proteger o processo de inicialização do Windows

O Windows tem muitas funcionalidades para ajudar a protegê-lo contra software maligno e faz um excelente trabalho. Exceto para aplicativos que as empresas desenvolverem e usam internamente, todos os aplicativos da Microsoft Store devem atender a uma série de requisitos para serem certificados e incluídos na Microsoft Store. Esse processo de certificação examina diversos critérios, incluindo a segurança, e é uma maneira eficaz de impedir que o malware entre na Microsoft Store. Mesmo que uma aplicação maliciosa consiga passar, o Windows inclui uma série de funcionalidades de segurança que podem mitigar o efeito. Por exemplo, aplicativos da Microsoft Store estão em área restrita e não têm os privilégios necessários para acessar os dados do usuário ou alterar configurações do sistema.

O Windows também tem vários níveis de proteção para aplicações e dados de ambiente de trabalho. O Antivírus do Windows Defender utiliza a deteção em tempo real com tecnologia da cloud para identificar e colocar em quarentena aplicações que são conhecidas por serem maliciosas. O Windows Defender SmartScreen avisa os utilizadores antes de permitir que executem uma aplicação não fidedigna, mesmo que seja reconhecida como software maligno. Antes de um aplicativo poder alterar as configurações do sistema, o usuário precisa conceder privilégios administrativos do aplicativo usando o controle de conta de usuário.

Esses componentes são apenas algumas das formas como o Windows o protege contra software maligno. No entanto, essas funcionalidades de segurança protegem-no apenas após o Início do Windows. O software maligno moderno, e os bootkits especificamente, são capazes de começar antes do Windows, ignorando completamente a segurança do SO e permanecendo ocultos.

Executar o Windows 10 ou Windows 11 num PC com suporte da Interface de Firmware Extensível Unificada (UEFI) garante que o Arranque Fidedigno protege o PC contra software maligno desde o momento em que o ligar. Esta proteção continua até que o software antimalware assuma o controlo. Se, por acaso, o software maligno conseguir infetar o PC, não poderá permanecer oculto. O Arranque Fidedigno pode verificar a integridade do sistema na sua infraestrutura de uma forma que o software maligno não consegue mascarar. Mesmo para PCs sem UEFI, o Windows oferece segurança de arranque melhorada em comparação com versões anteriores do Windows.

Para começar, vamos analisar mais detalhadamente os rootkits e o respetivo funcionamento. Depois disso, vamos ilustrar como o Windows pode garantir a sua proteção.

A ameaça: rootkits

Os rootkits são um tipo de software maligno sofisticado e perigoso. São executados no modo kernel, com os mesmos privilégios que o SO. Uma vez que os rootkits têm os mesmos direitos que o SO e começam antes dele, podem ocultar-se completamente a si próprios e a outras aplicações. Muitas vezes, rootkits fazem parte de um conjunto completo de malware que pode ignorar logins locais, gravar senhas e teclas, transferir arquivos particulares e capturar dados de criptografia.

Diferentes tipos de rootkits carregam durante as diversas fases no processo de inicialização:

  • Rootkits de firmware. Estes kits substituem o firmware do sistema de entrada/saída básico do PC ou outro hardware para que o rootkit possa ser iniciado antes do Windows.
  • Bootkits. Estes kits substituem o bootloader do SO (a pequena parte do software que inicia o SO) para que o PC carregue o bootkit antes do SO.
  • Rootkits de kernel. Estes kits substituem uma parte do kernel do SO para que o rootkit possa ser iniciado automaticamente quando o SO é carregado.
  • Rootkits de driver. Esses kits fingem ser um dos drivers confiáveis que o Windows usa para se comunicar com o hardware do computador.

As contramedidas

O Windows suporta quatro funcionalidades para ajudar a impedir o carregamento de rootkits e bootkits durante o processo de arranque:

  • Inicialização Segura. Os PCs com firmware UEFI e um Trusted Platform Module (TPM) podem ser configurados para carregar apenas carregadores de arranque de SO fidedignos.
  • Inicialização confiável. O Windows verifica a integridade de todos os componentes do processo de inicialização antes de carregá-los.
  • Anti-malware de Início Antecipado (ELAM). O ELAM testa todos os drivers antes que eles sejam carregados e impede que drivers não aprovados sejam carregados.
  • Inicialização medida. O firmware do PC regista o processo de arranque e o Windows pode enviá-lo para um servidor fidedigno que possa avaliar de forma objetiva o estado de funcionamento do PC.

A Figura 1 mostra o processo de arranque do Windows.

Captura de ecrã a mostrar o processo de arranque do Windows.

Figura 1. Inicialização Segura, Inicialização Confiável e Inicialização Medida bloqueiam malware em todos os estágios:

Inicialização Segura e Inicialização Medida só são possíveis em computadores com UEFI 2.3.1 e um chip TPM. Felizmente, todos os PCs Windows 10 e Windows 11 que cumprem os requisitos do Programa de Compatibilidade de Hardware do Windows têm estes componentes e muitos PCs concebidos para versões anteriores do Windows também os têm.

As próximas seções descrevem a Inicialização Segura, Inicialização Confiável, ELAM e Inicialização Medida.

Inicialização Segura

Quando um PC é iniciado, encontra primeiro o bootloader do SO. Os PCs sem Arranque Seguro executam o bootloader que estiver no disco rígido do PC. Não há forma de o PC saber se é um SO fidedigno ou um rootkit.

Quando um computador equipado com a UEFI é iniciado, o computador primeiro verifica se o firmware é assinado digitalmente, reduzindo o risco de rootkits de firmware. Se o Arranque Seguro estiver ativado, o firmware examina a assinatura digital do bootloader para verificar se não foi modificado. Se o carregador de inicialização estiver intacto, o firmware inicia o carregador de inicialização somente se uma das seguintes condições for verdadeira:

  • O carregador de inicialização foi assinado com um certificado confiável. Para PCs certificados para Windows, o certificado da Microsoft é fidedigno.
  • O utilizador aprovou manualmente a assinatura digital do bootloader. Esta ação permite que o utilizador carregue sistemas operativos que não sejam da Microsoft.

Todos os PCs Certificados Para Windows baseados em x86 têm de cumprir vários requisitos relacionados com o Arranque Seguro:

  • Eles devem ter a inicialização segura habilitada por padrão.
  • Têm de confiar no certificado da Microsoft (e, portanto, qualquer carregador de arranque que a Microsoft tenha assinado).
  • Eles devem permitir que o usuário configure a Inicialização Segura para confiar em outros carregadores de inicialização.
  • Eles devem permitir que o usuário desabilite completamente a inicialização segura.

Estes requisitos ajudam a protegê-lo contra rootkits, permitindo-lhe executar qualquer SO pretendido. Na verdade, os usuários geralmente têm três opções para executar sistemas operacionais que não são da Microsoft:

  • Utilize um SO com um bootloader certificado. Uma vez que todos os PCs Certificados para Windows têm de confiar no certificado da Microsoft, a Microsoft oferece um serviço para analisar e assinar qualquer bootloader que não seja da Microsoft para que seja considerado fidedigno por todos os PCs Com Certificação para Windows. Na verdade, um abrir carregador de inicialização de origem capaz de carregar Linux já está disponível. Para iniciar o processo de obtenção de um certificado, aceda a https://partner.microsoft.com/dashboard.
  • Configure a UEFI para confiar no carregador de inicialização personalizado. Todos os PCs Certificados para Windows permitem-lhe confiar num bootloader não certificado ao adicionar uma assinatura à base de dados UEFI, permitindo-lhe executar qualquer SO, incluindo sistemas operativos caseiros.
  • Desative a Inicialização Segura. Todos os PCs Certificados para Windows permitem-lhe desativar o Arranque Seguro para que possa executar qualquer software. No entanto, esta ação não ajuda a protegê-lo contra bootkits.

Para evitar que um malware abuse dessas opções, o usuário precisa configurar manualmente o firmware da UEFI para confiar em um carregador de inicialização não certificado ou desativar a Inicialização Segura. O software não pode alterar as definições de Arranque Seguro.

O estado predefinido do Arranque Seguro tem um grande círculo de confiança, o que pode fazer com que os clientes confiem nos componentes de arranque de que podem não precisar. Uma vez que o certificado da AC UEFI de terceiros da Microsoft assina os bootloaders para todas as distribuições do Linux, confiar na assinatura da AC UEFI de terceiros na base de dados UEFI aumenta a superfície de ataque dos sistemas. Um cliente que pretendia apenas confiar e arrancar uma única distribuição do Linux irá confiar em todas as distribuições, mais do que a configuração pretendida. Uma vulnerabilidade em qualquer um dos bootloaders expõe o sistema e coloca o cliente em risco de exploração para um bootloader que nunca pretendeu utilizar, como se pode ver em vulnerabilidades recentes, por exemplo, com o bootloader GRUB ou orootkit ao nível do firmware a afetar os componentes de arranque. Os PCs de núcleo protegido requerem que o Arranque Seguro esteja ativado e configurado para desconfiar da assinatura da AC UEFI de terceiros da Microsoft, por predefinição, para fornecer aos clientes a configuração mais segura possível dos seus PCs.

Para confiar e arrancar sistemas operativos, como o Linux, e componentes assinados pela assinatura UEFI, os PCs de núcleo seguro podem ser configurados no menu bios para adicionar a assinatura na base de dados UEFI ao seguir estes passos:

  1. Abra o menu de firmware:
    • Arranque o PC e prima a tecla do fabricante para abrir os menus. Chaves comuns utilizadas: Esc, Delete, F1, F2, F10, F11 ou F12. Nos tablets, os botões comuns são Aumentar o volume ou Diminuir o volume. Durante o arranque, existe frequentemente um ecrã que menciona a chave. Se não existir um, ou se o ecrã passar demasiado depressa para o ver, verifique o site do fabricante.
    • Em alternativa, se o Windows já estiver instalado, no ecrã Iniciar sessão ou no menu Iniciar, selecione Ligar/desligar ( ) > mantenha premida a tecla Shift enquanto seleciona Reiniciar. Selecione Resolver problemas de opções > avançadas > definições de Firmware UEFI.
  2. No menu de firmware, navegue para Arranque Seguro de Segurança > e selecione a opção para confiar na "AC de terceiros".
  3. Guarde as alterações e saia.

A Microsoft continua a colaborar com parceiros de ecossistemas linux e IHV para conceber funcionalidades com menos privilégios para o ajudar a manter-se seguro e a optar ativamente por confiar apenas nos editores e componentes em que confia.

Tal como a maioria dos dispositivos móveis, os dispositivos baseados em Arm, como o dispositivo Microsoft Surface RT, foram concebidos para executar apenas o Windows 8.1. Por conseguinte, o Arranque Seguro não pode ser desativado e não pode carregar um SO diferente. Felizmente, existe um grande mercado de dispositivos processadores ARM concebidos para executar outros sistemas operativos.

Inicialização Confiável

O Arranque Fidedigno assume o local onde termina o Arranque Seguro. O carregador de inicialização verifica a assinatura digital do kernel do Windows antes de carregá-lo. Por sua vez, o kernel do Windows verifica todos os outros componentes do processo de arranque do Windows, incluindo os controladores de arranque, os ficheiros de arranque e o ELAM. Se um arquivo foi modificado, o carregador de inicialização detecta o problema e se recusa a carregar o componente corrompido. Muitas vezes, o Windows pode reparar automaticamente o componente danificado, restaurando a integridade do Windows e permitindo que o PC inicie normalmente.

Iniciação Antecipada de antimalware

Como a Inicialização Segura protegia o carregador de inicialização e a Inicialização Confiável protegia o kernel do Windows, a próxima oportunidade para o malware ser iniciado é infectando um driver relacionados à inicialização que não seja Microsoft. As aplicações antimalware tradicionais só são iniciadas depois de os controladores de arranque terem sido carregados, dando a um rootkit disfarçado de controlador a oportunidade de trabalhar.

O antimalware de Início Antecipado (ELAM) pode carregar um controlador antimalware da Microsoft ou não microsoft antes de todos os controladores e aplicações de arranque não Microsoft, continuando assim a cadeia de confiança estabelecida pelo Arranque Seguro e Arranque Fidedigno. Uma vez que o SO ainda não começou e porque o Windows precisa de arrancar o mais rapidamente possível, o ELAM tem uma tarefa simples: examinar todos os controladores de arranque e determinar se está na lista de controladores fidedignos. Se não for fidedigno, o Windows não o carrega.

Um controlador ELAM não é uma solução antimalware completa; que carrega mais tarde no processo de arranque. O Windows Defender (incluído no Windows) suporta ELAM, assim como várias aplicações antimalware que não sejam da Microsoft.

Inicialização Medida

Se um computador em sua organização for infectado com um rootkit, você precisa saber sobre ele. As aplicações antimalware empresariais podem comunicar infeções de software maligno ao departamento de TI, mas isso não funciona com rootkits que ocultam a sua presença. Por outras palavras, não pode confiar no cliente para lhe dizer se está em bom estado de funcionamento.

Como resultado, os computadores infectados por rootkits parecem estar íntegros, mesmo com o anti-malware em execução. Os computadores infectados continuam a se conectar à rede corporativa, concedem o acesso de rootkit a grandes quantidades de dados confidenciais e potencialmente permitem rootkit espalhar por rede interna.

O Arranque Medido funciona com o TPM e software não Microsoft no Windows. Permite que um servidor fidedigno na rede verifique a integridade do processo de arranque do Windows. Inicialização medida usa o seguinte processo:

  1. O firmware UEFI do PC armazena no TPM um hash do firmware, do bootloader, dos controladores de arranque e de tudo o que é carregado antes da aplicação antimalware.
  2. No final do processo de inicialização, o Windows inicia o cliente de atestado remoto que não é da Microsoft. O servidor de Atestado confiável envia ao cliente uma chave exclusiva.
  3. O TPM usa a chave exclusiva para assinar digitalmente o log registrado pelo UEFI.
  4. O cliente envia o log para o servidor, possivelmente com outras informações de segurança.

Dependendo da implementação e da configuração, o servidor pode agora determinar se o cliente está em bom estado de funcionamento. Pode conceder ao cliente acesso a uma rede de quarentena limitada ou à rede completa.

Figura 2 ilustra o processo de Inicialização medida e processo de atestado remoto.

Captura de ecrã a mostrar o Arranque Medido e o processo de atestado remoto.

Figura 2. O Arranque Medido prova o estado de funcionamento do PC num servidor remoto:

O Windows inclui as interfaces de programação de aplicações para suportar o Arranque Medido. No entanto, para tirar partido do mesmo, precisa de ferramentas que não sejam da Microsoft para implementar um cliente de atestado remoto e um servidor de atestado fidedigno. Por exemplo, veja as seguintes ferramentas da Microsoft Research:

O Arranque Medido utiliza o poder do UEFI, TPM e Windows para lhe dar uma forma de avaliar com confiança a fiabilidade de um PC cliente em toda a rede.

Resumo

Inicialização Segura, Inicialização Confiável e Inicialização Medida criam uma arquitetura que é fundamentalmente resistente a bootkits e rootkits. No Windows, estas funcionalidades têm o potencial de eliminar software maligno ao nível do kernel da sua rede. Com o Windows, pode confiar na integridade do seu SO.