Instâncias Blindadas

Instâncias blindadas aumentam a segurança do firmware em hosts bare metal e máquinas virtuais (VMs) para defender-se contra software malicioso no nível da inicialização.

Como as Instâncias Blindadas Funcionam

As instâncias blindadas usam a combinação de Inicialização Segura, Inicialização Medida e o Trusted Platform Module para aumentar a segurança do firmware em suas instâncias.

Sistemas Operacionais Semelhantes ao Linux e UNIX

  • A Inicialização Segura e o Módulo de Plataforma Confiável (TPM) estão disponíveis em todas as instâncias bare metal e de VM suportadas.
  • A Inicialização Medida só está disponível em instâncias de VM. Se você quiser usar a Inicialização Medida em uma instância bare metal, poderá usar uma solução de código-fonte aberto.
  • Em instâncias bare metal, você pode ativar a Inicialização Segura e o TPM juntos ou de forma independente.
  • Em instâncias de VM, você pode ativar:
    • Somente inicialização segura.
    • TPM e inicialização de medida juntos.
    • Inicialização segura com TPM e inicialização de medida juntos.

Sistemas Operacionais Windows

  • Para formas de VM, a Inicialização Segura, a Inicialização Medida e o TPM devem ser usados juntos. Portanto, quando você ativa um dos três recursos, os outros dois também são ativados.
  • As instâncias blindadas suportam o Windows Defender Credential Guard ao executar uma das seguintes versões do sistema operacional: Windows Server 2016 ou Windows Server 2019.

Inicialização Segura

A Inicialização Segura é um recurso da especificação UEFI (Unified Extensible Firmware Interface) que impede que carregadores de inicialização e sistemas operacionais não autorizados sejam inicializados. A Inicialização Segura valida que a assinatura do firmware assinado está correta antes de inicializar a fim de evitar que rootkits, bootkits e softwares não autorizados sejam executados antes do carregamento do sistema operacional. Componentes de inicialização que não são assinados corretamente não podem ser executados.

Rootkits são malwares de nível inferior que são executados no modo kernel. Os bootkits substituem o carregador de inicialização do sistema e as inicializações do sistema pelo bootkit, em vez do carregador de inicialização. Rootkits e bootkits têm os mesmos privilégios que o sistema operacional e podem capturar funções como pressionamento de teclas e acessos locais. Eles podem usar essas informações para fazer transferências de arquivo não autorizadas e comprometer o sistema operacional.

Inicialização Medida

A Inicialização Medida é complementar à Inicialização Segura. Para oferecer a segurança mais forte, ative a Inicialização Medida e a Inicialização Segura.

A Inicialização Segura garante que cada componente do processo de inicialização tenha uma assinatura que esteja na lista de assinaturas válidas. Os componentes assinados podem incorporar assinaturas adicionais para fornecer uma cadeia de confiança. A Inicialização Medida permite que você rastreie as medidas de inicialização para entender qual firmware você tem e quando ele muda. Quando os componentes forem atualizados ou reconfigurados (por exemplo, durante uma atualização do sistema operacional), as medidas relevantes serão alteradas. Além disso, algumas dessas medidas serão impactadas pela forma e pelo tamanho da instância. Embora seja possível comparar essas medições com um conjunto de medições conhecidas, no momento o OCI não gera nem salva medições conhecidas. No entanto, as medidas podem ser usadas para certificar que o firmware OVMF UEFI não foi alterado desde que a instância foi implantada. Isso é particularmente valioso porque os certificados que criam a raiz da confiança para a Inicialização Segura UEFI estão contidos no firmware OVMF UEFI. Essas medições se refletem na PCR 0 e PCR 2, que são as únicas PCRs que atualmente acionam uma mudança de cor do escudo.

A Inicialização Medida aumenta a segurança da inicialização armazenando medidas de componentes de inicialização, como carregadores de inicialização, drivers e sistemas operacionais. Na primeira vez que você inicializa uma instância blindada, a Inicialização Medida usa as medidas iniciais para criar uma linha de base. As medições de linha de base também são conhecidas como medidas confiáveis.

Após as medições iniciais serem realizadas, quando o sistema é inicializado, os novos dados de inicialização são comparados com a medição de linha de base para verificar se cada inicialização é idêntica. A comparação de medições garante que o sistema operacional seja iniciado em um ambiente de pré-inicialização limpo. A Inicialização Medida usa um Módulo de Plataforma Confiável (TPM) para armazenar suas medidas de forma segura.

Módulo de Plataforma Confiável

O Módulo de Plataforma Confiável (TPM) é um chip de segurança especializado usado pela Inicialização Medida para armazenar as medidas de inicialização.

As medidas feitas pela Inicialização Medida são armazenadas nos Registros de Configuração de Plataforma (PCRs) dentro do TPM. PCR é um local de memória no TPM usado para manter um valor que resume todos os resultados de medição que foram apresentados a ele na ordem em que foram apresentados. O Windows Defender Credential Guard usa o TPM para proteger chaves de criptografia VBS (Virtualization-Based Security).

Formas e Imagens Suportadas

Formas Suportadas

Você pode usar as seguintes formas para criar instâncias blindadas:

Observação

  • Em sistemas operacionais Linux e UNIX, a Inicialização Medida só está disponível em instâncias de VM.
  • As instâncias blindadas que usam o Windows Server 2019 não suportam as formas BM.Standard2.52 e BM.DenseIO2.52.
  • Não há suporte para o Credential Guard em formas bare metal.
  • Série VM.Standard2
  • VM.Standard3.Flex
  • VM.Standard.E3.Flex
  • VM.Standard.E4.Flex
  • VM.Optimized3.Flex
  • BM.Standard2.52
  • BM.Standard.E3.128
  • BM.DenseIO2.52
Imagens de Plataforma Suportadas

As instâncias blindadas são suportadas nas seguintes imagens de plataforma:

  • Oracle Linux 7.x
  • Oracle Linux 8.x
  • CentOS 7.x
  • Ubuntu 18.04
  • Ubuntu 20.04
  • Windows Server 2016 (somente VMs)
  • Windows Server 2019 (somente VMs)

Limitações e Considerações

Lembre-se das seguintes informações:

  • As instâncias blindadas não suportam migração ao vivo ou migração de reinicialização. Consulte Migrando Instâncias Blindadas para obter mais detalhes.
  • Se você ativar o TPM de hardware em uma instância bare metal, a instância não poderá ser migrada porque o TPM de hardware não é migrável.
  • Não há suporte para imagens personalizadas.
  • Não há suporte para a computação confidencial.
  • Não há suporte para a atualização de Bancos de Dados de Assinaturas Proibidas (DBX) em instâncias de VM blindadas. Um DBX mantém um banco de dados de inicialização seguro de assinaturas que não estão autorizadas a serem executadas na plataforma. A aplicação de atualizações do DBX em uma instância de VM blindada pode impedir a inicialização da instância. Para atualizar o DBX, crie uma nova instância de VM blindada com uma imagem que inclua as atualizações do DBX.
  • Quando você encerra uma instância, todas as Chaves do Proprietário da Máquina (MOK) são excluídas. Se você tiver usado um kernel assinado por uma MOK para inicializar e a instância tiver sido encerrada, ao criar uma nova instância com a Inicialização Segura, será necessário usar um kernel que seja inicializado por uma chave de banco de dados segura UEFI padrão. Depois que a instância for inicializada, adicione as Chaves do Proprietário da Máquina e, em seguida, reinicialize no kernel assinado pela MOK.
  • Quando você cria uma instância blindada usando o Linux 7.x e depois reinicializa a instância, os valores do PCR podem mudar, fazendo com que o escudo vermelho apareça. Consulte Os valores de PCR mudam após a reinicialização no Linux 7.x.
  • Quando você edita uma instância blindada, somente o nome da instância pode ser alterado. Você não pode alterar a forma da instância depois que ela é iniciada e não pode alterar as definições de migração.

Usando Instâncias Blindadas

Ao criar uma instância, você especifica se ela é blindada.

Para criar uma instância blindada
Para ativar o Windows Defender Credential Guard
Para editar uma instância blindada
Para interromper uma instância blindada

Como Trabalhar com Medidas Confiáveis

A Inicialização Medida aumenta a segurança da inicialização armazenando as medidas de componentes de inicialização, como carregadores de inicialização, drivers e sistemas operacionais. Após as medições iniciais serem realizadas, quando o sistema é inicializado, os novos dados de inicialização são comparados com a medição de linha de base para verificar se cada inicialização é idêntica. As medições de linha de base são conhecidas como medidas confiáveis.

Download de Valores de PCR

Você pode fazer download das medidas confiáveis e dos valores do Registro de Configuração de Plataforma (PCR) para sua instância. O PCR é um local da memória no TPM que armazena as medidas confiáveis.

Para fazer download de valores de PCR
  1. Abra o menu de navegação e clique em Compute. No serviço Compute, clique em Instâncias.
  2. Clique na instância em que você está interessado.
  3. Na página Detalhes da instância, abra a guia Instância blindada.
  4. Em Registro de Configuração de Plataforma (PCR), clique em Copiar valores de PCR. Os valores de PCR são copiados para a área de transferência. Cole-os no arquivo de sua escolha.

Redefinindo Medidas Confiáveis

Se você atualizar seu sistema operacional, poderá ser necessário criar novas medidas confiáveis. Siga estas etapas para redefinir as medidas confiáveis de uma instância.

Para redefinir medidas confiáveis
  1. Abra o menu de navegação e clique em Compute. No serviço Compute, clique em Instâncias.
  2. Clique na instância em que você está interessado.
  3. Na página Detalhes da instância, abra a guia Instância blindada.
  4. Em Registro de Configuração de Plataforma (PCR), clique em Redefinir medidas confiáveis. Confirme quando solicitado.

Migrando Instâncias Blindadas

Para obter informações gerais sobre migração de instâncias, consulte Live, Reboot e Migração Manual: Movendo uma Instância de Computação para um Novo Host. Quando a instância é migrada para um novo hardware, as chaves de Inicialização Segura e as medidas de inicialização são retomadas na nova instância.

Observação

Você não pode migrar uma instância não blindada para uma instância blindada.

As instâncias blindadas têm as seguintes limitações na migração de instâncias.

Instâncias de VM

  • As instâncias blindadas não suportam migração ao vivo ou migração de reinicialização. Se você precisar migrar uma instância blindada, migre manualmente a instância.
  • Se você modificou as variáveis de inicialização segura UEFI, a migração pode não ser possível, porque as alterações não são preservadas durante a migração.
  • Se você tiver uma instância de VM que use o TPM e migrar a instância, os dados do TPM não serão mantidos durante a migração. A nova instância terá novos valores de PCR.
  • Se você tiver o Windows Defender Credential Guard ativado, não haverá suporte para a migração da instância.

Instâncias Bare Metal

  • As instâncias blindadas não suportam migração ao vivo ou migração de reinicialização. Se você precisar migrar uma instância blindada, migre manualmente a instância.
  • Se você modificou as variáveis de inicialização segura UEFI, a migração pode não ser possível, porque as alterações não são preservadas durante a migração.
  • Se você ativar o TPM de hardware em uma instância bare metal, a instância não poderá ser migrada porque o TPM de hardware não é migrável.
  • Se você armazenar seus próprios segredos em um TPM físico em uma instância bare metal, o Oracle Cloud Infrastructure não terá uma cópia dos dados no TPM. Depois de migrar a instância e reiniciá-la de um estado interrompido, você precisará redefinir seu software para trabalhar com o novo TPM físico.

Diagnosticando e Solucionando Falhas na Validação

Se a validação da Inicialização Segura falhar, você não poderá conectar-se via SSH na sua instância ou a instância não será iniciada. Se a validação da Inicialização Medida falhar, a página Detalhes da Instância exibirá um escudo vermelho.

Em caso de falha na Inicialização Segura, você poderá encontrar mais detalhes sobre a causa da falha nos dados da console serial. Se quiser solucionar problemas de falhas, não encerre a instância. Observe o OCID da instância e capture os arquivos de log da console serial.

Após uma inicialização bem-sucedida, uma mensagem semelhante à seguinte aparecerá nos dados do histórico da console:

SB_EVENT: { "Secure_Boot_Overall_Status" : 0, "status" : "Pass", "msg" : "SB_Event on Exit Boot Services" }

Se você tiver a Inicialização Segura ativada e a assinatura do firmware assinado não estiver correta, a instância não será iniciada. Se a Inicialização Segura falhar porque a imagem não está assinada ou é inválida, uma mensagem semelhante à seguinte aparecerá nos dados do histórico da console:

SB_EVENT: { "status": "Fail", "msg": "The EFI executable failed to load.
It's not signed, or the signature (or hash) did not match entries in DB", "EFI_Image_Type" : "FromOpROM", "EFI_Image_Path":
 
"PciRoot(0x0)/Pci(0x2,0x0)/Offset(0x10A00,0x245FF)",
 
"SB_Variable_Match" : "NO_CERT_MATCH" }

Se a Inicialização Segura falhar porque um kernel não suportado foi carregado, escolha um kernel suportado e tente novamente. Se um kernel não suportado tiver sido carregado, você não poderá conectar-se via SSH na sua instância e uma mensagem semelhante à seguinte aparecerá nos dados do histórico da console:

SB_EVENT: { "status": "Pass", "msg": "The EFI executable loaded successfully", "EFI_Image_Type" : "FromFixedMedia", "EFI_Image_Path" : "PciRoot(0x0)/Pci(0x12,0x7)/Pci(0x0 ... 2000)//EFI/redhat/shimx64.efi", "SB_Variable_Match" : "DB_CERT_MATCH", "CertSubject" : "Microsoft Corporation UEFI CA 2011", "ImageDigest" : "DD35B574D149AA48E3611FFCC336ACD76FDE79AD817B081FE5CC093789B92E90" }
error:
../../grub-core/loader/i386/efi/linux.c:215:(hd0,gpt2)/vmlinuz-5.14.0-1.el8uek.
rc2.x86_64 has invalid signature.
error: ../../grub-core/loader/i386/efi/linux.c:94:you need to load the kernel
first.

Se você tiver a Inicialização Medida ativada e a sequência de inicialização não estiver correta, a instância será inicializada, mas um escudo vermelho será exibido na página Detalhes da Instância. Se você tiver a Inicialização Medida ativada e novos valores de PCR tiverem sido adicionados, a instância será inicializada e um escudo amarelo será exibido na página Detalhes da Instância. Se você obtiver uma falha de Inicialização Medida e os valores do PCR estiverem corretos ou se novos valores tiverem sido adicionados, será possível redefinir as medidas confiáveis.