Compartilhar via


MSP (Protocolo de Segurança de Metadados)

O MSP (Protocolo de Segurança de Metadados) é um recurso nas Máquinas Virtuais do Azure e nos serviços de Conjuntos de Dimensionamento de Máquinas Virtuais do Azure. Ele aprimora a segurança do Serviço de Metadados da Instância do Azure e dos serviços WireServer . Esses serviços estão disponíveis em VMs (máquinas virtuais) de iaaS (infraestrutura como serviço) do Azure ou conjuntos de dimensionamento de máquinas virtuais em 169.254.169.254 e 168.63.129.16, respectivamente.

As organizações usam o Serviço de Metadados de Instância e o WireServer para fornecer metadados e inicializar credenciais de VM. Como resultado, os agentes de ameaça frequentemente têm como alvo esses serviços. Vetores comuns incluem ataques de delegado confusos contra cargas de trabalho no convidado e escapes de área restrita. Esses vetores são particularmente preocupantes para cargas de trabalho hospedadas em nome de terceiros, onde código não confiável é carregado na VM.

Com os serviços de metadados, o limite de confiança é a própria VM. Qualquer software no convidado está autorizado a solicitar segredos do Serviço de Metadados de Instância e do WireServer. Os proprietários de VM são responsáveis por restringir cuidadosamente todos os softwares executados dentro da VM e garantir que os atores externos não possam exfiltrar dados. Na prática, a complexidade do problema leva a erros em escala, que, por sua vez, levam a explorações.

Embora existam inúmeras estratégias de defesa em profundidade, fornecer segredos sobre uma API HTTP não autenticada traz risco inerente. Em todo o setor, essa classe de vulnerabilidades afetou centenas de empresas, afetou milhões de pessoas e causou perdas financeiras em centenas de milhões de dólares.

O MSP fecha as vulnerabilidades mais comuns:

  • Abordando a causa raiz desses ataques.
  • Apresentando conceitos de autenticação e autorização fortes aos serviços de metadados de nuvem.

Compatibilidade

O MSP tem suporte em VMs iaaS do Azure e conjuntos de dimensionamento de máquinas virtuais que executam esses sistemas operacionais:

  • Windows 10 ou posterior (x64)
  • Windows Server 2019 (x64)
  • Windows Server 2022 (x64)
  • Windows Server 2025 (x64)
  • Mariner 2.0 (x64, ARM64)
  • Azure Linux (Mariner 3.0) (x64, ARM64)
  • Ubuntu 20.04+ (x64, ARM64)

No momento, não há suporte para os seguintes itens:

  • Red Hat Enterprise Linux 9+
  • Rocky Linux 9+
  • SUSE Linux Enterprise Server 15 SP4+
  • Discos efêmeros
  • Compatibilidade com o Backup do Azure
  • ARM64

Segurança aprimorada

O Agente Proxy Convidado (GPA) reforça a proteção contra esses tipos de ataques:

  • Limitando o acesso de metadados a um subconjunto da VM (aplicando o princípio do acesso menos privilegiado).

  • Alternar de um modelo aberto padrão para um modelo fechado padrão .

    Por exemplo, com a virtualização aninhada, uma VM L2 configurada incorretamente que tem acesso ao vNIC da VM L1 pode se comunicar com um serviço de metadados como se fosse a L1. Com o GPA, um L2 configurado incorretamente não poderia mais obter acesso, pois não seria possível autenticar com o serviço.

No momento do provisionamento, o serviço de metadados estabelece um delegado confiável no convidado (o GPA). Um segredo de longa duração é negociado para se autenticar no representante confiável. O delegado deve endossar todas as solicitações para o serviço de metadados usando um HMAC (código de autenticação de mensagem baseado em hash). O HMAC estabelece uma relação de confiança ponto a ponto com autenticação robusta.

O GPA usa eBPF para interceptar solicitações HTTP para o serviço de metadados. O eBPF permite que o GPA verifique a identidade do software convidado que fez a solicitação. O GPA usa eBPF para interceptar solicitações sem exigir um módulo de kernel extra. O GPA usa essas informações para comparar a identidade do cliente com uma lista de permissões definida como parte do modelo de VM no ARM (Azure Resource Manager). Em seguida, o GPA endossa as solicitações adicionando um cabeçalho de assinatura. Portanto, você pode habilitar o recurso MSP em cargas de trabalho existentes sem causar alterações significativas.

Por padrão, os níveis de autorização existentes são impostos:

  • O Serviço de Metadados de Instância está aberto a todos os usuários.
  • WireServer é somente para root/administrador.

Atualmente, essa restrição é realizada com regras de firewall no hóspede. Esse ainda é um mecanismo de abertura padrão. Se essa regra puder ser desabilitada ou ignorada por qualquer motivo, o serviço de metadados ainda aceitará a solicitação. O mecanismo de autorização habilitado aqui é fechado por padrão. Contornar a interceptação mal-intencionada ou por erro não concede acesso ao serviço de metadados.

Você pode definir uma configuração avançada de autorização (isto é, autorizar processos específicos dentro do sistema e usuários a acessar apenas endpoints específicos) criando uma lista de permissão personalizada com semântica de RBAC (controle de acesso baseado em função).

Aviso

Observe que, no Windows, os usuários podem habilitar o GuestProxyAgent (GPA) a partir de um modelo ARM. No entanto, no Linux, é um processo de duas etapas. A VM/VMSS é provisionada primeiro e só então o GPA pode ser configurado.