Proteger o processo de inicialização do Windows

O Windows tem muitos recursos para ajudar a protegê-lo contra malware, e ele faz um trabalho incrivelmente bom. 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 um aplicativo mal-intencionado passe, o Windows inclui uma série de recursos de segurança que podem atenuar 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 aplicativos e dados de área de trabalho. Windows Defender Antivírus usa a detecção em tempo real alimentada pela nuvem para identificar e colocar em quarentena aplicativos conhecidos por serem mal-intencionados. Windows Defender SmartScreen adverte os usuários antes de permitir que eles executem um aplicativo não confiável, mesmo que ele seja reconhecido como malware. 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 maneiras pelas quais o Windows protege você contra malware. No entanto, esses recursos de segurança protegem você somente após o início do Windows. Malware moderno e kits de inicialização especificamente são capazes de iniciar antes do Windows, ignorando completamente a segurança do sistema operacional e permanecendo oculto.

Executar Windows 10 ou Windows 11 em um computador com suporte a UEFI (Unified Extensible Firmware Interface) garante que a Inicialização Confiável proteja seu computador contra malware desde o momento em que você o ativa. Essa proteção continua até que seu software anti-malware assuma o controle. Se, por acaso, o malware conseguir infectar seu computador, ele não poderá ficar oculto. A Inicialização Confiável pode verificar a integridade do sistema em sua infraestrutura de uma maneira que o malware não pode mascarar. Mesmo para computadores sem UEFI, o Windows oferece segurança de inicialização aprimorada em comparação com versões anteriores do Windows.

Para começar, vamos dar uma olhada mais de perto nos rootkits e no funcionamento deles. Depois disso, ilustraremos como o Windows pode garantir sua proteção.

A ameaça: rootkits

Os rootkits são um tipo sofisticado e perigoso de malware. Eles são executados no modo kernel, usando os mesmos privilégios que o sistema operacional. Como os rootkits têm os mesmos direitos que o sistema operacional e começam antes dele, eles podem se esconder completamente e outros aplicativos. 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. Esses kits substituem o firmware do sistema básico de entrada/saída do computador ou outro hardware para que o rootkit possa começar antes do Windows.
  • Bootkits. Esses kits substituem o bootloader do sistema operacional (a pequena parte do software que inicia o sistema operacional) para que o computador carregue o bootkit antes do sistema operacional.
  • Rootkits de kernel. Esses kits substituem uma parte do kernel do sistema operacional para que o rootkit possa começar automaticamente quando o sistema operacional for 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 dá suporte a quatro recursos para ajudar a impedir o carregamento de rootkits e bootkits durante o processo de inicialização:

  • Inicialização Segura. PCs com firmware UEFI e um TPM (Trusted Platform Module) podem ser configurados para carregar apenas inicializadores confiáveis do sistema operacional.
  • 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 computador registra o processo de inicialização e o Windows pode enviá-lo para um servidor confiável que pode avaliar objetivamente a integridade do computador.

A Figura 1 mostra o processo de inicialização do Windows.

Captura de tela que mostra o processo de inicialização 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 atendem aos requisitos do Programa de Compatibilidade de Hardware do Windows têm esses componentes e muitos PCs projetados 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 computador é iniciado, ele primeiro encontra o bootloader do sistema operacional. PCs sem Inicialização Segura executam qualquer bootloader no disco rígido do computador. Não há como o computador dizer se é um sistema operacional confiável 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 a Inicialização Segura estiver habilitada, o firmware examinará a assinatura digital do bootloader para verificar se ela não foi modificada. 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 computadores certificados para Windows, o certificado da Microsoft é confiável.
  • O usuário aprovou manualmente a assinatura digital do bootloader. Essa ação permite que o usuário carregue sistemas operacionais que não são da Microsoft.

Todos os computadores Certificados para Windows com base em x86 devem atender a vários requisitos relacionados à Inicialização Segura:

  • Eles devem ter a inicialização segura habilitada por padrão.
  • Eles devem confiar no certificado da Microsoft (e, portanto, qualquer bootloader que a Microsoft assinou).
  • 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.

Esses requisitos ajudam a protegê-lo contra rootkits, permitindo que você execute qualquer sistema operacional desejado. Na verdade, os usuários geralmente têm três opções para executar sistemas operacionais que não são da Microsoft:

  • Use um sistema operacional com um bootloader certificado. Como todos os PCs certificados para Windows devem 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 ele seja confiável por todos os PCs certificados 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, acesse https://partner.microsoft.com/dashboard.
  • Configure a UEFI para confiar no carregador de inicialização personalizado. Todos os PCs certificados para Windows permitem confiar em um bootloader não certificado adicionando uma assinatura ao banco de dados UEFI, permitindo que você execute qualquer sistema operacional, incluindo sistemas operacionais caseiros.
  • Desative a Inicialização Segura. Todos os computadores Certificados para Windows permitem desativar a Inicialização Segura para que você possa executar qualquer software. No entanto, essa 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 configurações de Inicialização Segura.

O estado padrão da Inicialização Segura tem um amplo círculo de confiança, o que pode resultar em clientes confiando em componentes de inicialização que talvez não precisem. Como o certificado UEFI de terceiros da Microsoft assina os bootloaders para todas as distribuições do Linux, confiar na assinatura da AC UEFI do Microsoft 3rd Party no banco de dados UEFI aumenta a superfície de ataque dos sistemas. Um cliente que pretendia confiar e inicializar apenas uma única distribuição linux confiará em todas as distribuições – muito mais do que a configuração desejada. Uma vulnerabilidade em qualquer um dos inicializadores expõe o sistema e coloca o cliente em risco de exploração para um bootloader que nunca teve a intenção de usar, como visto em vulnerabilidades recentes, por exemplo, com o bootloader grub ou o rootkit no nível do firmware afetando os componentes de inicialização. Os PCs de núcleo protegido exigem que a Inicialização Segura seja habilitada e configurada para desconfiar da assinatura da AC UEFI de terceiros da Microsoft, por padrão, para fornecer aos clientes a configuração mais segura de seus PCs possíveis.

Para confiar e inicializar sistemas operacionais, como Linux e componentes assinados pela assinatura UEFI, os PCs de núcleo protegido podem ser configurados no menu BIOS para adicionar a assinatura no banco de dados UEFI seguindo estas etapas:

  1. Abra o menu firmware:
    • Inicialize o computador e pressione a chave do fabricante para abrir os menus. Chaves comuns usadas: Esc, Delete, F1, F2, F10, F11 ou F12. Em tablets, os botões comuns são Volume para cima ou Volume para baixo. Durante a inicialização, geralmente há uma tela que menciona a chave. Se não houver um ou se a tela for muito rápida para vê-la, marcar site do fabricante.
    • Ou, se o Windows já estiver instalado, na tela Logon ou no menu Iniciar, selecione Power ( ) > segure Shift ao selecionar Reiniciar. Selecione Solucionar > problemas de configurações de firmware UEFI opções > avançadas.
  2. No menu firmware, navegue até a Inicialização Segura de Segurança > e selecione a opção para confiar na "AC de terceiros".
  3. Salve as alterações e saia.

A Microsoft continua colaborando com parceiros do ecossistema Linux e IHV para criar recursos menos privilegiados para ajudá-lo a manter a confiança segura e opt-in apenas para os editores e componentes em que você confia.

Como a maioria dos dispositivos móveis, dispositivos baseados em arm, como o dispositivo Microsoft Surface RT, são projetados para executar apenas Windows 8.1. Portanto, a Inicialização Segura não pode ser desativada e você não pode carregar um sistema operacional diferente. Felizmente, há um grande mercado de dispositivos processadorES ARM projetados para executar outros sistemas operacionais.

Inicialização Confiável

A Inicialização Confiável assume o local em que a Inicialização Segura termina. O carregador de inicialização verifica a assinatura digital do kernel do Windows antes de carregá-lo. O kernel do Windows, por sua vez, verifica todos os outros componentes do processo de inicialização do Windows, incluindo os drivers de inicialização, arquivos de inicialização e 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 corrompido, restaurando a integridade do Windows e permitindo que o computador comece normalmente.

Anti-malware de Início Antecipado

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. Os aplicativos anti-malware tradicionais só começam depois que os drivers de inicialização são carregados, dando a um rootkit disfarçado de driver a oportunidade de trabalhar.

O ELAM pode carregar um driver anti-malware da Microsoft ou não Microsoft antes de todos os aplicativos e drivers de inicialização que não são da Microsoft, continuando, portanto, a cadeia de confiança estabelecida pela Inicialização Segura e pela Inicialização Confiável. Como o sistema operacional ainda não foi iniciado e, como o Windows precisa inicializar o mais rápido possível, o ELAM tem uma tarefa simples: examinar cada driver de inicialização e determinar se ele está na lista de drivers confiáveis. Se não for confiável, o Windows não o carregará.

Um driver ELAM não é uma solução anti-malware em destaque; que é carregado posteriormente no processo de inicialização. Windows Defender (incluído com o Windows) dá suporte ao ELAM, assim como vários aplicativos anti-malware não microsoft.

Inicialização Medida

Se um computador em sua organização for infectado com um rootkit, você precisa saber sobre ele. Aplicativos anti-malware corporativos podem relatar infecções por malware para o departamento de TI, mas isso não funciona com rootkits que ocultam sua presença. Em outras palavras, você não pode confiar no cliente para dizer se ele é saudável.

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.

A Inicialização Medida funciona com o software TPM e não microsoft no Windows. Ele permite que um servidor confiável na rede verifique a integridade do processo de inicialização do Windows. Inicialização medida usa o seguinte processo:

  1. O firmware UEFI do computador armazena no TPM um hash do firmware, bootloader, drivers de inicialização e tudo o que é carregado antes do aplicativo anti-malware.
  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 configuração, o servidor agora pode determinar se o cliente está saudável. Ele 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 tela que mostra o processo de inicialização medida e atestado remoto.

Figura 2. Inicialização medida prova a integridade do computador em um servidor remoto:

O Windows inclui as interfaces de programação do aplicativo para dar suporte à Inicialização Medida. No entanto, para aproveitar isso, você precisa de ferramentas que não são da Microsoft para implementar um cliente de atestado remoto e um servidor de atestado confiável. Por exemplo, confira as seguintes ferramentas da Microsoft Research:

A Inicialização Medida usa o poder de UEFI, TPM e Windows para fornecer uma maneira de avaliar com confiança a confiabilidade de um computador 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, esses recursos têm o potencial de eliminar malware no nível do kernel da sua rede. Com o Windows, você pode confiar na integridade do sistema operacional.