Virtualização no Coração da Computação Confidencial da Microsoft

Virtualização no Coração da Computação Confidencial da Microsoft

No coração da Microsoft, nas atualizações mais recentes do sistema operacional, na nuvem e no local, está a virtualização. Ao isolar instâncias operacionais umas das outras no mesmo hardware, a virtualização impulsionou as ofertas de infraestrutura de alta densidade e plataforma como serviço do Azure, bem como melhorou a segurança do desktop no Windows 11. A virtualização também é a tecnologia na raiz dos serviços de computação confidenciais da Microsoft, oferecendo uma maneira de trabalhar com dados criptografados de forma segura, garantindo proteção no armazenamento, em movimento e em operação.

Aninhar ambientes virtuais criptografados

Aninhar ambientes virtuais criptografados em cima de hipervisores tradicionais funciona bem o suficiente, embora limite as funções do sistema operacional acessíveis dentro de um ambiente de execução confiável. É aqui que entra uma abordagem alternativa à virtualização, o que a Microsoft está chamando de "paravisor". Ela se baseia no conceito de paravirtualização, que fornece mais links entre o host e os ambientes virtualizados.

Essa abordagem exige que o sistema operacional cliente esteja ciente da virtualização, com um conjunto definido de APIs e drivers que podem usar essas APIs quando necessário. Ela permite que o sistema operacional cliente manipule computação isolada, e o sistema operacional host compartilhe E/S e outros serviços comuns entre os processos host e virtualizados.

Paravisores para Computação Confidencial

Se você estiver usando os recursos de segurança baseados em virtualização no Windows, estará usando uma VM que suporta paravirtualização. Isso garante que as operações protegidas tenham a mesma prioridade e acesso de hardware que suas contrapartes não protegidas, evitando gargalos de desempenho e dando aos usuários a mesma experiência, estejam eles dentro ou fora dos limites de confiança de um processo protegido.

Ferramentas como a plataforma Confidential Computing do Azure dependem de paravisores. Eles não precisam de atualizações do sistema operacional toda vez que há uma atualização no serviço de virtualização subjacente. Seu código continuará em execução conforme o novo hardware for implantado e novos recursos forem habilitados.

Definição de Paravisor

A definição de paravisor da Microsoft é uma maneira útil de pensar sobre eles: eles são um ambiente de execução que é executado dentro de uma VM convidada, mas com privilégios mais altos do que a VM, e eles fornecem serviços para essa VM.

Usar um paravisor para computação confidencial reduz o risco geral, pois não requer uma versão especial de um SO convidado projetado para rodar em um ambiente de execução confiável. Se você não tinha um paravisor, seu SO convidado precisa ser "iluminado" com código adicional para dar suporte à execução em um ambiente de computação confidencial.

OpenHCL: O Paravisor de Código Aberto da Microsoft

Tudo isso mudou com o anúncio de uma nova versão de código aberto, OpenHCL. Ele está sendo desenvolvido no GitHub, onde você pode adicionar suas próprias contribuições (se assinar o contrato de licença de contribuidor padrão da Microsoft). Ele foi projetado para rodar na maioria das plataformas comuns, incluindo Linux e macOS, e funciona com os próprios hipervisores da Microsoft, a estrutura Hypervisor da Apple e KVM. Isso inclui ambientes x64 e Arm64.

A nova arquitetura paravisor da Microsoft é relativamente simples. Ela funciona com seu hipervisor existente para fornecer uma camada de abstração do hardware subjacente, com um sistema operacional host que fornece suporte para ferramentas de gerenciamento e armazenamento. Dentro de uma VM habilitada para OpenHCL há um pequeno kernel Linux que suporta drivers de dispositivo. Acima disso, há um ambiente OpenVMM que suporta o sistema operacional convidado.

Construindo um Ambiente de Teste

Executar o OpenHCL em um ambiente de teste é relativamente descomplicado. Você pode construir seus próprios binários em um sistema de desenvolvimento Linux (você pode usar o WSL2). Alternativamente, você pode baixar um binário pré-construído no formato Independent Guest Virtual Machine (IGVM). Por enquanto, o OpenHCL não é suportado e se destina apenas ao uso em ambientes de desenvolvimento e teste.

Depois de ter uma cópia, você pode usar o Hyper-V ou o OpenVMM para experimentá-lo. Executar no Windows com o Hyper-V é o mais próximo que você chegará de como a Microsoft o usa no Azure, executando sobre o próprio sistema operacional host derivado do Windows do Azure. O suporte ao OpenHCL no Windows é muito novo, então você só pode usar a versão mais recente do Windows 11, 24H2.

Gerenciando a VM OpenHCL

Depois que você tiver uma VM em execução dentro do OpenHCL, você pode começar a usar a ferramenta OpenVMM para adicionar recursos à sua VM. No centro das ferramentas de gerenciamento está uma CLI que fornece maneiras de gerenciar discos e portas, bem como ajustar as vCPUs e a memória disponíveis. Outras opções incluem um console serial para trabalhar com o sistema operacional convidado e acesso VNC a um console gráfico.

O Futuro da Computação Confidencial

Uma frase interessante na postagem do blog que anunciou que o OpenHCL fala sobre "avançar em direção ao fechamento das lacunas de recursos de VMs confidenciais". Quando você considera que o OpenHCL oferece suporte a VMs padrão e confidenciais, fica claro que o objetivo final da Microsoft para VMs no Azure é que todas as VMs hospedadas sejam VMs confidenciais, mantendo sua computação tão segura quanto seus dados e fazendo com que toda a computação aconteça em espaços confiáveis.

Esse futuro não acontecerá da noite para o dia; ainda há muito a ser feito para garantir que VMs seguras tenham o mesmo acesso a dispositivos e serviços de nível de SO que suas contrapartes não seguras, bem como o mesmo desempenho. Podemos ver o início desse movimento com a chegada deste novo paravisor aberto e com enclaves VBS no Windows e no requisito do Windows 11 para armazenamento confiável baseado em hardware para chaves de criptografia.

Executar tudo no seu PC, na nuvem e no local em VMs seguras pode parecer absurdo hoje em dia, mas ferramentas como OpenHCL são a chave para um mundo mais seguro e protegido, onde a execução confiável está em todos os lugares. Estamos no início de uma longa jornada, mas é possível usar esta primeira versão pública e seu repositório GitHub para ter uma ideia de para onde estamos indo.

Conteúdo Relacionado

A Google acaba de anunciar o lançamento da versão...
O Rails 8 sempre foi um divisor de águas...
O mundo do trabalho está passando por uma transformação...
Na era do declínio do império dos Estados Unidos...
Os aplicativos da Web são uma pedra fundamental da...
Hoje em dia, muitos testadores de desempenho com muitos...
A explosão de interesse em IA, particularmente IA generativa,...
O mundo da tecnologia tem estado agitado com discussões...
Pontos quânticos (QDs) são partículas semicondutoras em nanoescala caracterizadas...
Estamos prontos para dar uma olhada nas cartas do...
Hackers norte-coreanos, incluindo o infame Lazarus Group, podem começar...
O Sensecap Watcher é um pequeno aparelho com câmera,...
Nos dias atuais, a acessibilidade digital é um tema...
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...
Voltar para o blog

Deixe um comentário

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