Atestado de VM confidencial

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

Teste de integridade baseado na 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 Processor TSM baseado em hardware Ambiente de hardware e firmware
Módulo Intel TDX TSM baseado em hardware Ambiente de hardware e firmware

Solicitar um relatório de atestado

É possível solicitar relatórios de comprovação 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 registro 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 escrever 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 atestado do vTPM de uma instância de VM confidencial e enviá-la para o serviço de atestado do Google Cloud 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.

A comprovação do Google Cloud só pode ser usada 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 vTPM Remote Attestation on Confidential Virtual Machine.

Comprovação baseada em GPU

A declaração da GPU envolve a verificação do driver e/ou do dispositivo da GPU.

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 da 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 declaração de dispositivos de GPU NVIDIA.

Atestado do dispositivo de GPU NVIDIA

Além da comprovação do driver de GPU, você pode comprovar ainda mais os dispositivos de GPU NVIDIA. A declaraçã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 comprovação do dispositivo GPU NVIDIA, primeiro instale a biblioteca nvtrust da NVIDIA e use-a para comprovaçã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

Com a declaração de dispositivo de GPU local, é possível realizar o processo de declaração diretamente na instância de VM e conferir os resultados localmente para verificar a integridade da GPU.

Para realizar a comprovaçã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, o que geralmente é necessário para acessar dados ou recursos sensíveis.

Para instruções detalhadas, consulte o SDK de comprovação da NVIDIA (em inglês) e o serviço de comprovação remota da NVIDIA (NRAS) (em inglês).