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:
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).