Inicialização medida e atestado do host
Este artigo descreve como a Microsoft garante a integridade e a segurança dos hosts por meio do atestado medido de inicialização e host.
Inicialização medida
O TPM (Trusted Platform Module) é um componente de auditoria criptograficamente seguro e de prova de adulteração com o firmware fornecido por terceiros confiáveis. O log de configuração de inicialização contém medidas de cadeia de hash registradas nos PCR (Registros de Configuração de Plataforma) quando o host passou por uma sequência de inicialização pela última vez. A figura a seguir mostra o processo de gravação. Adicionar, de forma incremental, uma medição codificada anteriormente em hash ao hash da próxima medição e executar o algoritmo de hash na união realiza o encadeamento do hash.
O atestado é realizado quando um host fornece uma prova do estado de configuração usando o 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 lacradas para valores de PCR específicos. O uso de encadeamento de hash torna impraticável, em termos computacionais, falsificar ou deslacrar as credenciais fora de banda.
Serviço do atestado de host
O serviço de atestado de host é uma medida preventiva que verifica se as máquinas host são confiáveis antes que elas tenham permissão para interagir com os dados do cliente ou cargas de trabalho. O serviço de atestado de host verifica validando uma instruçã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 de segurança). A integridade desse sistema é garantida 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 de máquina host. Uma PKI (infraestrutura de chave pública) atua como um intermediário para validar a comprovação de solicitações de atestado e como um emissor de identidade (contingente após o atestado de host bem-sucedido). As credenciais pós-atestado emitidas para o host de atestado têm a identidade lacrada. Somente o host solicitante pode desselar as credenciais e aproveitá-las para obter permissões incrementais. Isso evita ataques man-in-the-middle e de falsificação.
Se um host do Azure chegar da fábrica com uma configuração incorreta de segurança ou for violado 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 incorreto. Essa prevenção bloqueia efetivamente todas as comunicações de e para o host e dispara um fluxo de trabalho de incidentes. A investigação e uma análise detalhada do post-mortem são realizadas para determinar as causas raiz e as possíveis indicações de comprometimento. Só depois que a análise é concluída, o host é corrigido e tem a oportunidade de ingressar na frota do Azure e realizar cargas de trabalho do cliente.
Confira a seguir uma arquitetura de alto nível do serviço de atestado de host:
Medidas de atestado
Confira a seguir exemplos de muitas medições capturadas hoje.
Inicialização Segura e chaves de Inicialização Segura
Ao validar que os resumos do banco de dados de assinatura e das assinaturas revogadas estão corretos, o Serviço de Atestado de Host garante que o agente cliente considere o software certo como confiável. Ao validar as assinaturas do banco de dados da chave de registro de chave pública e da chave de plataforma pública, o Serviço de Atestado de Host confirma que somente 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 de irrestrito à memória e a outros comandos de depuração poderia enfraquecer a proteção de dados e a integridade do sistema, se fornecido a uma parte não confiável. O Serviço de Atestado de Host garante que qualquer tipo de depuração esteja desabilitado na inicialização em máquinas de produção.
Integridade de código
A Inicialização Segura de UEFI garante que apenas softwares confiáveis de nível baixo possam ser executados durante a sequência de inicialização. No entanto, as mesmas verificações também devem ser aplicadas no ambiente de pós-inicialização a drivers e a outros executáveis com acesso de modo kernel. Para esse fim, uma política de CI (integridade de código) é usada para definir quais drivers, binários e outros executáveis são considerados confiáveis, especificando assinaturas válidas e inválidas. Essas políticas são impostas. Violações de política geram alertas para a equipe de resposta a incidentes de segurança para investigação.
Próximas etapas
Para saber mais sobre o que fazemos para aumentar a integridade e a segurança da plataforma, confira: