Arranque medido e atestado de anfitrião

Este artigo descreve como a Microsoft garante a integridade e a segurança dos hosts por meio da inicialização medida e do atestado de host.

Arranque medido

O Trusted Platform Module (TPM) é um componente de auditoria inviolável e criptograficamente seguro com firmware fornecido por um terceiro confiável. O log de configuração de inicialização contém medições em cadeia de hash registradas em seus Registros de Configuração de Plataforma (PCR) quando o host passou pela última vez pela sequência de inicialização. A figura a seguir mostra esse processo de gravação. Adicionar incrementalmente uma medição adicionada anteriormente a um hash ao hash de medicação seguinte e executar o algoritmo hash na união concretiza a cadeia de hash.

Diagrama que mostra a cadeia de hash do Host Attestation Service.

O atestado é realizado quando um host fornece prova de seu estado de configuração usando seu log de configuração de inicialização (TCGLog). A falsificação de um log de inicialização é difícil porque o TPM não expõe seus valores de PCR além das operações de leitura e extensão. Além disso, as credenciais fornecidas pelo Serviço de Atestado de Host são seladas para valores PCR específicos. A utilização da cadeia de hash torna computacionalmente inviável falsificar ou revelar as credenciais fora da banda.

Serviço de Atestado de Anfitrião

O Serviço de Atestado de Host é uma medida preventiva que verifica se as máquinas host são confiáveis antes de terem permissão para interagir com dados ou cargas de trabalho do cliente. O Serviço de Atestado do Host verifica validando uma declaração de conformidade (prova verificável da conformidade do host) enviada por cada host em relação a uma política de atestado (definição do estado seguro). A integridade deste sistema é assegurada por uma raiz de confiança fornecida por um TPM.

O Serviço de Atestado de Host está presente em cada cluster do Azure em um ambiente bloqueado especializado. O ambiente bloqueado inclui outros serviços de gatekeeper que participam do protocolo de inicialização da máquina host. Uma infraestrutura de chave pública (PKI) atua como intermediário para validar a proveniência dos pedidos de atestado e como um emissor de identidade (dependente de um atestado de anfitrião bem-sucedido). As credenciais de pós-atestado emitidas para o anfitrião que atesta são seladas à sua identidade. Somente o host solicitante pode deslacrar as credenciais e aproveitá-las para obter permissões incrementais. Isso previne contra ataques man-in-the middle e spoofing.

Se um host do Azure chegar de fábrica com uma configuração incorreta de segurança ou for adulterado no datacenter, seu TCGLog conterá indicadores de comprometimento sinalizados pelo Serviço de Atestado de Host no próximo atestado, o que causará uma falha de atestado. As falhas de atestado impedem que a frota do Azure confie no host infrator. Essa prevenção bloqueia efetivamente todas as comunicações de e para o host e aciona um fluxo de trabalho de incidentes. A investigação e uma análise post-mortem detalhada são conduzidas para determinar as causas profundas e quaisquer potenciais indícios de comprometimento. Só depois de concluída a análise é que um anfitrião é remediado e tem a oportunidade de se juntar à frota do Azure e assumir cargas de trabalho de clientes.

A seguir está uma arquitetura de alto nível do serviço de atestado de host:

Diagrama que mostra a arquitetura do Serviço de Atestado de Host.

Medições de atestado

Seguem-se exemplos das muitas medições captadas hoje.

Chaves de Inicialização Segura e Inicialização Segura

Ao validar que o banco de dados de assinaturas e os resumos do banco de dados de assinaturas revogadas estão corretos, o Serviço de Atestado de Host garante que o agente cliente considere o software certo confiável. Ao validar as assinaturas do banco de dados de chaves de registro de chave pública e da chave de plataforma pública, o Serviço de Atestado de Host confirma que apenas as partes confiáveis têm permissão para modificar as definições de qual software é considerado confiável. Por fim, ao garantir que a inicialização segura esteja ativa, o Serviço de Atestado de Host valida que essas definições estão sendo impostas.

Controles de depuração

Os depuradores são ferramentas poderosas para desenvolvedores. No entanto, o acesso irrestrito à memória e outros comandos de depuração pode enfraquecer a proteção de dados e a integridade do sistema se for dado a uma parte não confiável. O Serviço de Atestado de Host garante que qualquer tipo de depuração seja desabilitado na inicialização em máquinas de produção.

Integridade do código

A Inicialização Segura UEFI garante que apenas software confiável de baixo nível possa ser executado durante a sequência de inicialização. As mesmas verificações, no entanto, também devem ser aplicadas no ambiente pós-inicialização para drivers e outros executáveis com acesso ao modo kernel. Para esse fim, uma política de integridade de código (CI) é usada para definir quais drivers, binários e outros executáveis são considerados confiáveis, especificando assinaturas válidas e inválidas. Estas políticas são aplicadas. As violações da política geram alertas para a equipe de resposta a incidentes de segurança para investigação.

Próximos passos

Para saber mais sobre o que fazemos para promover a integridade e a segurança da plataforma, consulte: