Atestado de VM confidencial

O atestado de uma instância de VM confidencial é o processo de aumentar a confiança de que a instância é legítima e está operando em um estado esperado. É uma ferramenta vital para validar se a carga de trabalho está sendo executada em um ambiente de execução confiável (TEE, na sigla em inglês).

Atestação baseada em CPU

Os relatórios de atestado são a evidência de que sua VM está sendo executada em um TEE. Eles são gerados pela instância de VM confidencial e, dependendo da tecnologia de computação confidencial usada, são assinados por um vTPM baseado em software ou por um módulo de segurança confiável (TSM) dedicado e baseado em hardware. Os relatórios de atestado contêm medições relacionadas à atividade do carregador de inicialização, à configuração de hardware, à configuração de firmware e a outros eventos registrados no momento da inicialização que ajudam a validar o estado e a identidade da instância de VM confidencial.

O tipo de relatório de atestado que você pode solicitar depende da tecnologia de computação confidencial usada pela sua instância de VM confidencial.

Origem da assinatura Tipo Cobertura do relatório Tecnologia de computação confidencial
SEV SEV-SNP Intel TDX
vTPM gerenciado pelo Google vTPM baseada em software Atividade do carregador de inicialização, integridade do kernel
AMD Secure Processor1 TSM baseado em hardware Ambiente de hardware e firmware
Módulo Intel TDX TSM baseado em hardware Ambiente de hardware e firmware2

1. O processador seguro da AMD é um recurso compartilhado disponível para todos os hosts no servidor físico em que ele está presente. Um host pode limitar o acesso de convidados ao processador seguro, e as atualizações de firmware do processador seguro (consideradas eventos do host) podem acontecer a qualquer momento.

2. O componente de inicialização inicial (o firmware) para instâncias de VM confidencial do TDX é medido na medição do domínio de confiança (MRTD, na sigla em inglês), enquanto o restante da cadeia de inicialização é medido nos registros de medição de tempo de execução (RTMR, na sigla em inglês), ancorando todas as medições no hardware. Os usuários podem estender o registro RTMR[3] com medições do espaço do usuário.

Solicitar um relatório de atestado

É possível solicitar relatórios de atestado do vTPM gerenciado pelo Google, do processador seguro da AMD e do módulo TDX da Intel com as seguintes ferramentas:

  • Go-TPM

  • Ferramentas Go-TPM (a versão 0.4.4 ou mais recente é necessária para compatibilidade com AMD SEV-SNP e Intel TDX)

O evento GceNonHostInfo no log de eventos de atestado do vTPM mostra qual tecnologia de computação confidencial está em uso. As ferramentas Go-TPM podem solicitar um relatório de atestado do AMD Secure Processor se o AMD SEV-SNP for usado ou do módulo Intel TDX se o Intel TDX for usado.

Somente para relatórios de atestado de hardware, é possível enviar um desafio criptográfico para o TSM com as seguintes ferramentas:

  • Para AMD SEV-SNP, use SEV Guest. Os certificados de chave de endosso de chip de versão (VCEK) são armazenados em cache na VM em vez de serem solicitados diretamente do sistema de distribuição de chaves (KDS) da AMD.

  • Para o Intel TDX, use TDX Guest.

Intel TDX no Ubuntu

Para imagens do Ubuntu no kernel 1016 e mais recentes, o módulo tdx_guest está no pacote linux-modules-extra.

Para instalar o pacote linux-modules-extra, execute o seguinte comando:

sudo apt-get install linux-modules-extra-gcp

Se você tiver problemas ao instalar linux-modules-extra-gcp, atualize o kernel executando o seguinte comando:

sudo apt-get upgrade

É necessário reiniciar ou carregar manualmente o módulo para que as mudanças entrem em vigor. Para carregar o módulo manualmente, execute este comando:

sudo modprobe tdx_guest

Verificar relatórios de atestado com o Google Cloud Attestation

Se o modelo de confiança permitir, em vez de gravar e executar um verificador de atestado, use o Google Cloud Attestation. Isso envolve o uso de ferramentas Go-TPM para recuperar uma cotação de atestação do vTPM de uma instância de VM confidencial e enviá-la ao Google Cloud Attestation para verificação. Se a cotação passar na verificação, o Google Cloud Attestation vai retornar um token com informações da VM que você pode comparar com sua própria política para confirmar se a VM é confiável ou não.

O Google Cloud Attestation só pode ser usado com instâncias de VMs confidenciais SEV da AMD.

Para um exemplo de ponta a ponta de como trabalhar com o Google Cloud Attestation, consulte o codelab Atestado remoto do vTPM em máquinas virtuais confidenciais.

Atestação baseada em GPU

A atestação da GPU envolve a verificação do driver, do dispositivo ou de ambos da GPU.

Problemas conhecidos

A atestação da GPU pode falhar, informando um registro de medição incompatível no índice 9. O Google e a NVIDIA estão trabalhando em uma correção.

Para contornar o problema, faça uma parada e reinicialização completas da VM confidencial. Reiniciar a VM no SO convidado dela não corrige o problema.

Atestado do driver da GPU

Para garantir um atestado robusto, ative a Inicialização segura ao criar sua instância de VM confidencial.

A Inicialização segura permite o carregamento apenas de drivers de GPU assinados pela distribuição. Essa verificação é essencial para confirmar que o driver de GPU foi lançado e fornecido oficialmente pela NVIDIA. Um driver oficial é importante porque estabelece uma sessão segura do Security Protocol and Data Model (SPDM) com dispositivos de GPU e serve como raiz de confiança para a atestação de dispositivos de GPU NVIDIA.

Atestado do dispositivo de GPU NVIDIA

Além da atestação do driver de GPU, você pode atestar ainda mais os dispositivos de GPU NVIDIA. A atestação do dispositivo GPU NVIDIA verifica o BIOS de vídeo (VBIOS) em execução na GPU. Isso permite identificar versões de software da NVIDIA e avaliar a presença de possíveis vulnerabilidades.

Para realizar a atestação do dispositivo GPU NVIDIA, primeiro instale a biblioteca nvtrust NVIDIA e use-a para atestação local ou remota.

API_LINK="https://api.github.com/repos/NVIDIA/nvtrust/tags"
LATEST_VER="$(curl -s "${API_LINK}" | jq -r '..name')"
DOWNLOAD_LINK="https://github.com/NVIDIA/nvtrust/archive/refs/tags/${LATEST_VER}.tar.gz"
echo "Downloading nvtrust version ${LATEST_VER}"
curl -L "${DOWNLOAD_LINK}" -o nvtrust.tar.gz
mkdir github_nvtrust
tar xvf nvtrust.tar.gz -C github_nvtrust
cd github_nvtrust/nvtrust-${LATEST_VER:1}
python3 -m venv./prodtest
source./prodtest/bin/activate

Atestação local do dispositivo de GPU

A atestação de dispositivo GPU local permite realizar o processo de atestação diretamente na instância de VM e conferir os resultados localmente para verificar a integridade da GPU.

Para realizar a atestação do dispositivo de GPU local, instale a ferramenta de verificação local. Para instruções detalhadas, consulte Verificador.

Atestado remoto de dispositivo GPU

A declaração remota de dispositivos GPU usa o NVIDIA Remote Attestation Service (NRAS) para verificar a integridade da sua GPU. Esse processo resulta em um token de atestado assinado pela NVIDIA. Esse token pode ser apresentado a terceiros para demonstrar a autenticidade e a integridade da sua GPU, geralmente necessárias para acessar dados ou recursos sensíveis.

Para instruções detalhadas, consulte o SDK de atestação da NVIDIA e o serviço de atestação remota da NVIDIA (NRAS).