Segurança aprimorada do Windows 11 com VBS Enclaves

Segurança aprimorada do Windows 11 com VBS Enclaves

Recentemente, a Microsoft anunciou esforços para melhorar a segurança em sua ferramenta de assistente de IA Recall planejada. Muitos dos detalhes não foram uma surpresa, pois ela foi construída em ferramentas e serviços familiares sobre os quais escrevi nos últimos anos, mas o recurso mais importante, VBSEnclaves, será novidade para a maioria de nós.

Os VBS Enclaves são a mais recente iniciativa da Microsoft para usar a virtualização para proteger o Windows, isolando funções críticas em máquinas virtuais criptografadas usando seu hipervisor Krypton de baixo nível.

O Hipervisor Krypton do Windows

O hipervisor sempre ativo do Windows, Krypton Krypton é uma parte importante do Windows moderno, pois permite que máquinas virtuais e o sistema operacional host compartilhem um agendador, permitindo que recursos como login do Windows sejam isolados do resto do sistema operacional. Isso permite que eles continuem a ser executados como recursos do Windows enquanto protegem senhas e informações biométricas. Eles permanecem isolados onde o malware em execução na instância do Windows host não pode acessá-los.

Krypton é a base de grande parte da segurança de hardware do Windows 11, trabalhando com os módulos de plataforma confiáveis (TPM) do seu PC para gerenciar chaves de criptografia, assinaturas digitais e hashes de verificação. Pense nisso como uma forma de reduzir significativamente o risco de vazamento de informações confidenciais do seu PC, bem como reduzir o risco de malware substituir o que normalmente seriam funções confiáveis do Windows.

Segurança Baseada em Virtualização no Windows 11

A segurança baseada em virtualização está no radar da Microsoft há muito tempo, com uma herança que remonta ao Windows Server 2016 e à introdução dos contêineres Secure Windows. Embora o suporte do Windows para Docker e outras ferramentas de isolamento de aplicativos baseadas em contêineres permitisse alguma forma de isolamento de processo, ele não era perfeito.

Os contêineres seguros do Windows misturavam contêineres e a ferramenta de segurança do Hyper-V para adicionar mais isolamento hospedando contêineres seguros em uma máquina virtual em vez de no SO host. Isso adicionou a sobrecarga que vem com a execução de um SO separado para seus contêineres de aplicativos, mas recursos como Nano Server e Windows Server Core mantiveram isso no mínimo, com lançamentos sucessivos reduzindo significativamente os tamanhos de imagem do servidor.

A Microsoft combinou essa abordagem com recursos de TPM para adicionar segurança aprimorada ao Windows ao longo do tempo, aplicando-a no Windows 11. É por isso que o Windows 11 requer hardware com suporte ao TPM 2.0.

O TPM mantém as chaves e certificados para gerenciar assinaturas digitais para que ferramentas como o serviço de integridade de memória do Windows possam ser executadas em um ambiente virtualizado reforçado usando VMs protegidas pelo Hyper-V em execução no hipervisor Krypton. Com a integridade da memória, os drivers e binários do modo kernel são verificados quanto a assinaturas válidas antes de serem executados; o código não assinado é bloqueado antes que possa comprometer seu PC.

VBS Enclaves: Segurança Aprimorada para Dados Confidenciais

A Microsoft recentemente estendeu seu modelo de segurança baseado em virtualização para o que ela chama de VBS Enclaves. Se você já viu a implementação de computação confidencial no Windows Server ou no Azure, estará familiarizado com o conceito de enclaves, usando o conjunto de instruções SGX da Intel para bloquear áreas de memória, usando-as como um ambiente de execução confiável. Essa abordagem requer processadores específicos, com a última geração de SGX limitada ao hardware Xeon empresarial.

Os VBS Enclaves oferecem uma abordagem semelhante para proteger a memória, mas sem exigir hardware específico. Isso permite que a Microsoft forneça enclaves seguros em hardware Intel, AMD e Arm. Como resultado, o Recall só será executado em memória confiável sob o controle do hipervisor Krypton, com chaves de criptografia gerenciadas pelo TPM do seu PC e com acesso controlado pelo Windows Hello para garantir a presença do usuário.

Colocar um ambiente de execução confiável em um PC é útil para mais do que proteger a IA. Ele protege dados sensíveis, adicionando um novo nível de proteção além de em repouso e em movimento: em uso. Embora exija mais trabalho para definir e usar um VBS Enclave, vale a pena ter mais segurança com apenas impacto limitado no desempenho.

Funcionamento dos VBS Enclaves

Com as ferramentas de integridade de memória do Windows 11, um VBS Enclave usa o hipervisor integral do Windows para criar uma nova área isolada e de alto privilégio da memória do sistema: Virtual Trust Level 1. A maior parte do seu código, e o próprio Windows, continua a ser executado no Virtual Trust Level 0. O VTL 1 é usado por uma versão segura do kernel do Windows, com seu próprio modo de usuário isolado. É aqui que seu VBS Enclave é executado, como parte de um aplicativo que parece cruzar o limite entre as duas zonas. Na realidade, você está separando o enclave VTL 1 e usando canais seguros para se comunicar com ele do restante do seu aplicativo no VTL 0.

Usando VBS Enclaves em Seus Aplicativos

Então, como você cria e usa VBS Enclaves? Primeiro, você precisará do Windows 11 ou Windows Server 2019 ou posterior, com VBS habilitado. Você pode fazer isso a partir da ferramenta de segurança do Windows, por meio de uma Política de Grupo ou com o Intune para controlá-lo via MDM. Faz parte do serviço Memory Integrity, então você realmente deve habilitá-lo em todos os dispositivos suportados para ajudar a reduzir os riscos de segurança, mesmo que não planeje usar VBS Enclaves em seu código.

A melhor maneira de pensar nisso é como uma forma de usar armazenamento criptografado com segurança. Então, por exemplo, se você estiver usando um banco de dados para armazenar dados confidenciais, você pode usar código em execução em um enclave para processar e consultar esses dados, passando os resultados para o resto do seu aplicativo. Você está encapsulando dados em um ambiente seguro com apenas acesso essencial permitido. Nenhuma outra parte do seu sistema tem acesso às chaves de descriptografia, então os dados no disco permanecem seguros.

O código em execução no ambiente VTL 1 deve ser assinado pela Microsoft, com uma transferência de nível de SO entre as duas zonas de confiança que redefine os registros da CPU para reduzir o risco de transferência de estado entre modos de usuário relativamente inseguros e seu VBS Enclave. Usar um VBS Enclave é, naturalmente, mais caro computacionalmente, e as operações levam mais tempo para serem executadas (embora ainda sejam apenas microssegundos).

VBS Enclaves são DLLs e precisam de um aplicativo host para serem executados. Você está limitado a um subconjunto das APIs C++ de nível de sistema Windows disponíveis, com uma lista de APIs Universal C Runtime disponíveis listadas na documentação de desenvolvimento. Outras APIs suportadas estão no VBS Enclave Runtime (Vertdll) e na biblioteca criptográfica Bcrypt.

Começando com um Enclave de Amostra

A Microsoft fornece um aplicativo de exemplo útil que ilustra o ciclo de vida de um aplicativo VBS Enclave, mostrando como chamar funções de enclave do aplicativo host. Funções externas precisam ser exportadas explicitamente — e somente essas funções podem ser chamadas pelo host. Compilar um enclave precisa de configuração específica no vinculador, garantindo que as bibliotecas certas sejam incluídas e que a DLL resultante seja instrumentada corretamente. Outros recursos garantem que o VBS Enclave esteja protegido contra ataques por meio de DLLs de plataforma forjadas.

Uma vez compilado, seu código deve ser assinado. Uma assinatura VBS Enclave requer três EKUs (Extended Key Usage) específicos: um para assinatura de código, um para o enclave e um para o autor. Na produção, você pode usar o próprio serviço Trusted Signing da Microsoft, que oferece um perfil para assinar enclaves. Essa abordagem permite automatizar a assinatura com o Azure CLI.

Considerações Finais

Há alguns pontos importantes a considerar ao escrever código que usa VBS Enclaves. Eles podem ser carregados por qualquer aplicativo em execução no PC host, então você precisa escrever código no enclave que trate explicitamente qualquer coisa fora do enclave como não confiável.

A mesma tecnologia é usada para o recurso Always Encrypted do Azure SQL e do SQL Server. Essa abordagem garante que apenas usuários autorizados tenham acesso a dados confidenciais. As operações T-SQL podem cruzar o limite do enclave seguro usando consultas confidenciais em um canal TLS interno. As operações ocorrem dentro do enclave, permitindo que os dados subjacentes permaneçam sempre criptografados.

Os Enclaves VBS são necessariamente complexos, com restrições significativas sobre DLLs padrão. Sem essas restrições, porém, eles seriam tão seguros quanto uma DLL padrão. Ao bloquear o código em um nível de biblioteca e cabeçalho para executar em um ambiente de execução confiável, você está reduzindo significativamente o risco de vazamento de dados, seja deliberada ou acidentalmente.

Embora leve uma fração a mais e exija alguns recursos extras do sistema, se você estiver trabalhando com informações confidenciais, é uma troca que vale a pena fazer. Usar VBS Enclaves e armazenamento criptografado deve ser essencial onde quer que você esteja usando informações pessoalmente identificáveis, seja um histórico de Recall indexado por vetor de um usuário, informações de pagamento armazenadas ou registros de saúde.

Se houver algum risco associado aos dados, então você realmente precisa de uma razão convincente para não usar essa tecnologia. Quando se trata de dados sensíveis, VBS Enclaves deve ser a escolha padrão.

Conteúdo Relacionado

O Rails 8 sempre foi um divisor de águas...
Na era do declínio do império dos Estados Unidos...
Os aplicativos da Web são uma pedra fundamental da...
O mundo da tecnologia tem estado agitado com discussões...
Os desenvolvedores Java enfrentam uma variedade de erros relacionados...
Com várias décadas de experiência, adoro criar aplicativos corporativos...
A escalabilidade é um fator crítico quando se trata...
Ao trabalhar em um projeto de código aberto no...
A Inteligência Artificial (IA) tem se tornado cada vez...
A maioria das organizações enfrenta desafios ao se adaptar...
Quando nós, desenvolvedores, encontramos alguns bugs em nossos logs,...
A cibersegurança é um tópico cada vez mais importante...
A experiência do desenvolvedor (DX) é um tópico cada...
Ao relatar estatísticas resumidas para resultados de testes de...
Explorando as Engrenagens do Kernel Semântico Falei um pouco...
Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.