O atestado é o processo de aumento da confiança de que uma instância de VM confidencial é legítima e opera 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).
Atestado baseado em CPU
Os relatórios de atestado são a evidência de que a VM está em execução em um TEE. Elas são geradas pela instância de VM confidencial e, dependendo da tecnologia de computação confidencial usada, são assinadas 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 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 baseado em software | Atividade do carregador de inicialização, integridade do kernel | |||
AMD Secure Processor | TSM baseada em hardware | Ambiente de hardware e firmware | |||
Módulo Intel TDX | TSM baseada em hardware | Ambiente de hardware e firmware |
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 (link em inglês)
Ferramentas do Go-TPM (a versão 0.4.4 ou mais recente é necessária para suporte ao 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 do Go-TPM podem solicitar um
relatório de atestado do processador seguro AMD se o AMD SEV-SNP for usado ou do
módulo Intel TDX se o Intel TDX for usado.
Para relatórios de atestado de hardware, envie um desafio criptográfico ao TSM com as seguintes ferramentas:
Para AMD SEV-SNP, use SEV Guest. Os certificados da chave de endosso do chip de versão (VCEK, na sigla em inglês) são armazenados em cache na VM em vez de serem solicitados diretamente do sistema de distribuição de chaves (KDS, na sigla em inglês) da AMD.
Para Intel TDX, use o 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 o 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 a Atestado do Google Cloud. Isso envolve o uso de ferramentas Go-TPM para extrair uma citação de atestado do vTPM de uma instância de VM confidencial e enviá-la para o Google Cloud Attestation para verificação. Se a citação passar pela verificação, o Google Cloud Attestation vai retornar um token com informações da VM que podem ser comparadas com sua própria política para confirmar se a VM precisa ser confiável.
A Attestation do Google Cloud só pode ser usada com instâncias de VM confidenciais da AMD SEV.
Para conferir um exemplo completo de como trabalhar com a Attestation do Google Cloud, consulte o codelab Attestation remota do vTPM em máquina virtual confidencial.
Atestado baseado em GPU
O atestado da GPU envolve a verificação do driver ou do dispositivo da GPU, ou ambos.
Atestado do driver da GPU
Para garantir uma atestação robusta, ative a Inicialização segura ao criar a 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 oficialmente lançado e fornecido pela NVIDIA. Um driver oficial é importante porque estabelece uma sessão segura de protocolo de segurança e modelo de dados (SPDM, na sigla em inglês) com dispositivos de GPU e serve como raiz de confiança para o atestado de dispositivo de GPU da NVIDIA.
Atestado de dispositivo de GPU NVIDIA
Além do atestado do driver de GPU, você pode atestar dispositivos de GPU NVIDIA. O atestado de dispositivo de GPU NVIDIA verifica o BIOS de vídeo (VBIOS, na sigla em inglês) em execução na GPU. Isso permite identificar as versões do software da NVIDIA e avaliar a presença de possíveis vulnerabilidades.
Para realizar o atestado de dispositivo de GPU NVIDIA, primeiro instale a biblioteca nvtrust
da NVIDIA e, em seguida, use-a para atestado local ou remoto.
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
Atestado de dispositivo de GPU local
O atestado de dispositivo de GPU local permite executar o processo de atestado diretamente na instância da VM e conferir os resultados localmente para verificar a integridade da GPU.
Para realizar o atestado de dispositivo de GPU local, instale a ferramenta de verificação local. Para instruções detalhadas, consulte Verificador.
Atestado remoto do dispositivo da GPU
O atestado de dispositivo de GPU remoto usa o serviço de atestado remoto da NVIDIA (NRAS, na sigla em inglês) para verificar a integridade da 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 GPU, muitas vezes necessária para acessar dados ou recursos sensíveis.
Para instruções detalhadas, consulte SDK de atestado da NVIDIA e Serviço de atestado remoto da NVIDIA (NRAS, na sigla em inglês).