Partager via


Protocole de sécurité des métadonnées (MSP)

Le protocole MSP (Metadata Security Protocol) est une fonctionnalité des services Azure Virtual Machines et Azure Virtual Machine Scale Sets. Il améliore la sécurité des services Azure Instance Metadata Service et WireServer . Ces services sont disponibles dans les machines virtuelles Azure infrastructure as a service (IaaS) ou les groupes de machines virtuelles identiques à 169.254.169.254 et 168.63.129.16, respectivement.

Les organisations utilisent le service de métadonnées d’instance et WireServer pour fournir des métadonnées et initialiser les informations d'accès des machines virtuelles. Par conséquent, les acteurs des menaces ciblent fréquemment ces services. Les vecteurs courants incluent des attaques d’adjoint confus contre des charges de travail invitées et des échappements de bac à sable. Ces vecteurs sont particulièrement préoccupants pour les charges de travail hébergées pour le compte d'autrui, où du code non approuvé est chargé dans la machine virtuelle.

Avec les services de métadonnées, la limite d’approbation est la machine virtuelle elle-même. Tout logiciel au sein de l’invité est autorisé à demander des secrets à Instance Metadata Service et WireServer. Les propriétaires de machines virtuelles doivent isoler soigneusement les logiciels qu'ils exécutent à l'intérieur de la machine virtuelle et s'assurer que les acteurs externes ne peuvent pas exfiltrer les données. En pratique, la complexité du problème conduit à des erreurs à grande échelle, ce qui à son tour conduit à des exploits.

Bien que de nombreuses stratégies de défense en profondeur existent, la fourniture de secrets sur une API HTTP non authentifiée présente un risque inhérent. Au sein de l’industrie, cette catégorie de vulnérabilités a affecté des centaines d’entreprises, affecté des millions d’individus et causé des pertes financières dans les centaines de millions de dollars.

MSP ferme les vulnérabilités les plus courantes en :

  • Résoudre la cause racine de ces attaques.
  • Présentation des concepts d’authentification et d’autorisation forts pour les services de métadonnées cloud.

Compatibilité

MSP est pris en charge sur les machines virtuelles IaaS Azure et les jeux de machines virtuelles exécutant ces systèmes d’exploitation :

  • Windows 10 ou version ultérieure (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)

Les éléments suivants ne sont actuellement pas pris en charge :

  • Red Hat Enterprise Linux 9+
  • Rocky Linux 9+
  • SUSE Linux Enterprise Server 15 SP4+
  • Disques éphémères
  • Compatibilité avec sauvegarde Azure
  • ARM64

Sécurité renforcée

L’agent de proxy invité (GPA) se renforce contre ces types d’attaques par :

  • Limitation de l’accès aux métadonnées à un sous-ensemble de la machine virtuelle (application du principe de l’accès avec privilèges minimum).

  • Passage d’un modèle ouvert par défaut à un modèle fermé par défaut .

    Par exemple, avec la virtualisation imbriquée, une machine virtuelle L2 mal configurée qui a accès à la carte réseau virtuelle de la machine virtuelle L1 peut communiquer avec un service de métadonnées en tant que L1. Avec le GPA, un L2 mal configuré n’a plus pu accéder, car il ne serait pas en mesure de s’authentifier auprès du service.

Au moment de l’approvisionnement, le service de métadonnées établit un délégué approuvé au sein de l’invité (le GPA). Un secret de longue durée est négocié pour s’authentifier auprès du délégué approuvé. Le délégué doit approuver toutes les demandes adressées au service de métadonnées à l’aide d’un code d’authentification de message basé sur le hachage (HMAC). Le HMAC établit une relation de confiance directe avec une autorisation forte.

Le GPA utilise eBPF pour intercepter les requêtes HTTP au service de métadonnées. eBPF permet au GPA de vérifier l’identité du logiciel invité qui a effectué la demande. Le GPA utilise eBPF pour intercepter les requêtes sans nécessiter de module de noyau supplémentaire. GPA utilise ces informations pour comparer l’identité du client à une liste d'autorisation définie dans le modèle de machine virtuelle d'Azure Resource Manager (ARM). Le GPA approuve ensuite les demandes en ajoutant un en-tête de signature. Par conséquent, vous pouvez activer la fonctionnalité MSP sur les charges de travail existantes sans modifier les changements cassants.

Par défaut, les niveaux d’autorisation existants sont appliqués :

  • Le service de métadonnées d’instance est ouvert à tous les utilisateurs.
  • WireServer est root/admin uniquement.

Cette restriction est actuellement effectuée avec des règles de pare-feu dans le système invité. Il s’agit toujours d’un mécanisme ouvert par défaut. Si cette règle peut être désactivée ou ignorée pour une raison quelconque, le service de métadonnées accepte toujours la demande. Le mécanisme d’autorisation activé ici est fermé par défaut. Le contournement de l’interception malveillante ou par erreur n’accorde pas l’accès au service de métadonnées.

Vous pouvez configurer une configuration d’autorisation avancée (c’est-à-dire autoriser des processus in-invités spécifiques et des utilisateurs à accéder uniquement à des points de terminaison spécifiques) en définissant une liste d’autorisation personnalisée avec la sémantique de contrôle d’accès en fonction du rôle (RBAC).

Avertissement

Notez que sur Windows, les utilisateurs peuvent activer GuestProxyAgent (GPA) à partir d’un modèle ARM. Toutefois, dans Linux, il s’agit d’un processus en deux étapes. La machine virtuelle/VMSS est approvisionnée en premier, et seul le GPA peut être configuré.