Partage via


Sécurité des extensions

Cet article décrit les principes fondamentaux des extensions de machine virtuelle pour les serveurs avec Azure Arc et détaille la façon dont les paramètres d’extension peuvent être personnalisés.

Principes de base de l’extension

Les extensions de machine virtuelle pour les serveurs avec Azure Arc sont des modules complémentaires facultatifs qui activent d’autres fonctionnalités, telles que la surveillance, la gestion des correctifs et l’exécution de scripts. Les extensions sont publiées par Microsoft et des tiers sélectionnés sur la Place de marché Azure et stockées dans des comptes de stockage gérés par Microsoft. Toutes les extensions sont analysées pour détecter les logiciels malveillants dans le cadre du processus de publication. Les extensions pour les serveurs avec Azure Arc sont identiques à celles disponibles pour les machines virtuelles Azure, ce qui garantit la cohérence entre vos environnements d’exploitation.

Les extensions sont téléchargées directement à partir du stockage Azure (*.blob.core.windows.net) au moment où elles sont installées ou mises à niveau, sauf si vous avez configuré des points de terminaison privés. Les comptes de stockage changent régulièrement et ne peuvent pas être prédits à l’avance. Lorsque des points de terminaison privés sont utilisés, les extensions sont transmises via l'URL régionale du service Azure Arc.

Un fichier catalogue signé numériquement est téléchargé séparément du package d’extension et utilisé pour vérifier l’intégrité de chaque extension avant l’ouverture ou l’exécution du package d’extension. Si le fichier ZIP téléchargé pour l’extension ne correspond pas au contenu du fichier catalogue, l’opération d’extension est abandonnée.

Les extensions peuvent prendre des paramètres pour personnaliser ou configurer l’installation, telles que des URL proxy ou des clés API pour connecter un agent de surveillance à son service cloud. Les paramètres d’extension sont disponibles en deux versions : les paramètres réguliers et les paramètres protégés. Les paramètres protégés ne sont pas conservés dans Azure et sont chiffrés au repos sur votre ordinateur local.

Toutes les opérations d’extension proviennent d’Azure par le biais d’un appel d’API, de l’interface CLI, de PowerShell ou d’une action de Portail. Cette conception garantit que toute action d'installation, de mise à jour ou de mise à niveau d'une extension sur un serveur est enregistrée dans le journal d'activité Azure. L’agent Azure Connected Machine permet aux extensions d’être supprimées localement à des fins de dépannage et de nettoyage. Toutefois, si l’extension est supprimée localement et que le service s’attend toujours à ce que l’extension soit installée, elle sera réinstallée la prochaine fois que le gestionnaire d’extensions se synchronise avec Azure.

Exécution des scripts

Le gestionnaire d’extensions peut être utilisé pour exécuter des scripts sur des machines à l’aide de l’extension de script personnalisé ou de Run Command. Par défaut, ces scripts s’exécutent dans le contexte utilisateur du gestionnaire d’extensions : système local sur Windows ou racine sur Linux, ce qui signifie que ces scripts auront un accès illimité à l’ordinateur. Si vous n’avez pas l’intention d’utiliser ces fonctionnalités, vous pouvez les bloquer à l’aide d’une liste d'autorisation ou d’une liste de blocage. Un exemple est fourni dans la section suivante.

Contrôles de sécurité de l’agent local

À compter de la version 1.16 de l’agent, vous avez la possibilité de limiter les extensions pouvant être installées sur votre serveur et de désactiver la configuration Invité. Ces contrôles peuvent être utiles lors de la connexion de serveurs à Azure à des fins uniques, telles que la collecte des journaux d’événements, sans permettre à d’autres fonctionnalités de gestion d’être utilisées sur le serveur.

Ces contrôles de sécurité peuvent uniquement être configurés en exécutant une commande sur le serveur lui-même et ne peuvent pas être modifiées à partir d’Azure. Cette approche préserve l’intention de l’administrateur du serveur lors de l’activation de scénarios de gestion à distance avec Azure Arc, mais elle signifie également que la modification du paramètre s’avère plus difficile si vous décidez par la suite de le modifier. Cette fonctionnalité est destinée aux serveurs sensibles (par exemple, les contrôleurs de domaine Active Directory, les serveurs qui gèrent les données de paiement et les serveurs soumis à des mesures strictes de contrôle des modifications). Dans la plupart des autres cas, il n’est pas nécessaire de modifier ces paramètres.

Listes d’autorisation et listes de blocage

L’agent Azure Connected Machine prend en charge une liste d'autorisation et une liste de blocage pour restreindre les extensions qui peuvent être installées sur votre machine. Les listes d’autorisation sont exclusives, ce qui signifie que seules les extensions spécifiques que vous incluez dans la liste peuvent être installées. Les listes de blocage sont exclusives, ce qui signifie que tout ce qui ne fait pas partie de ces extensions peut être installé. Les listes d’autorisation sont préférables aux listes de blocage, car elles bloquent intrinsèquement les nouvelles extensions qui deviennent disponibles à l’avenir. Les listes d'autorisation et les listes de blocage sont configurées localement pour chaque serveur. Cela garantit que personne, même un utilisateur disposant d’autorisations Propriétaire ou Administrateur général dans Azure, ne peut passer outre vos règles de sécurité en essayant d'installer une extension non autorisée. Si quelqu'un tente d'installer une extension non autorisée, le gestionnaire d'extension refusera de l'installer et signalera le rapport d'installation de l'extension comme un échec à Azure. Les listes d'autorisation et les listes de blocage peuvent être configurées à tout moment après l'installation de l'agent, y compris avant que l'agent ne soit connecté à Azure.

Si aucune liste d'autorisation ou de blocage n'est configurée sur l'agent, toutes les extensions sont autorisées.

L’option la plus sûre consiste à autoriser explicitement les extensions que vous prévoyez d’installer. Toute extension qui ne figure pas dans la liste d’autorisation est automatiquement bloquée. Pour configurer l’agent Azure Connected Machine pour autoriser uniquement l’agent Azure Monitor pour Linux, exécutez la commande suivante sur chaque serveur :

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"

Voici un exemple de liste de blocage qui bloque toutes les extensions capables d'exécuter des scripts arbitraires :

azcmagent config set extensions.blocklist “Microsoft.Cplat.Core/RunCommandHandlerWindows, Microsoft.Cplat.Core/RunCommandHandlerLinux,Microsoft.Compute/CustomScriptExtension,Microsoft.Azure.Extensions/CustomScript,Microsoft.Azure.Automation.HybridWorker/HybridWorkerForWindows,Microsoft.Azure.Automation.HybridWorkerForLinux,Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent, Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux”

Spécifiez les extensions avec leur serveur de publication et leur type, séparées par une barre oblique /. Consultez la liste des extensions les plus courantes dans la documentation ou listez les extensions de machine virtuelle déjà installées sur votre serveur dans le portail, Azure PowerShell ou Azure CLI.

La table décrit le comportement lors de l’exécution d’une opération d’extension sur un agent sur lequel la liste verte ou la liste de blocs est configurée.

Opération Dans la liste d’autorisation Dans la liste de refus Dans la liste d’autorisation et la liste de refus Dans aucune liste, alors qu’une liste d’autorisation est configurée
Installer l’extension Autorisé Blocage Bloqué Blocage
Mettre à jour (reconfigurer) l’extension Autorisé Blocage Bloqué Blocage
Mettre à niveau l’extension Autorisé Blocage Bloqué Blocage
Supprimer l’extension Autorisé(e) Autorisé Autorisé Autorisé

Important

Si une extension est déjà installée sur votre serveur avant de configurer une liste verte ou une liste de blocs, elle ne sera pas automatiquement supprimée. Il vous incombe de supprimer l’extension d’Azure pour la supprimer entièrement de la machine. Les demandes de suppression sont toujours acceptées pour satisfaire ce scénario. Une fois supprimés, la liste verte et la liste de blocs déterminent s’il faut autoriser ou non les tentatives d’installation futures.

À compter de l’agent version 1.35, il existe une valeur de liste verte spéciale Allow/None, qui indique au gestionnaire d’extensions d’exécuter, mais pas d’autoriser l’installation des extensions. Il s’agit de la configuration recommandée lors de l’utilisation d’Azure Arc pour fournir des mises à jour de sécurité étendues (ESU) Windows Server 2012 sans avoir l’intention d’utiliser d’autres extensions.

azcmagent config set extensions.allowlist "Allow/None"

Les stratégies Azure peuvent également être utilisées pour restreindre les extensions qui peuvent être installées. Les stratégies Azure ont l’avantage d’être configurables dans le cloud et de ne pas nécessiter de modification sur chaque serveur individuel si vous devez modifier la liste des extensions approuvées. Cependant, toute personne autorisée à modifier les affectations de stratégies peut annuler ou supprimer cette protection. Si vous choisissez d’utiliser des stratégies Azure pour restreindre les extensions, vérifiez quels comptes de votre organisation ont l’autorisation de modifier les attributions de stratégie et que les mesures de contrôle des modifications appropriées sont en place.

Bonnes pratiques pour les ordinateurs verrouillés

Lors de la configuration de l’agent Azure Connected Machine avec un ensemble réduit de fonctionnalités, il est important de prendre en compte les mécanismes que quelqu’un peut utiliser pour supprimer ces restrictions et implémenter des contrôles appropriés. Toute personne capable d’exécuter des commandes en tant qu’administrateur ou utilisateur racine sur le serveur peut modifier la configuration de l’agent Azure Connected Machine. Les extensions et les stratégies de configuration invité s’exécutent dans des contextes privilégiés sur votre serveur, et, par conséquent, peuvent modifier la configuration de l’agent. Si vous appliquez des contrôles de sécurité d’agent local pour verrouiller l’agent, Microsoft recommande les bonnes pratiques suivantes pour vous assurer que seuls les administrateurs de serveur locaux peuvent mettre à jour la configuration de l’agent :

  • Utilisez des listes d’autorisation pour les extensions au lieu de listes de refus dans la mesure du possible.
  • N’incluez pas l’extension de script personnalisé dans la liste d’autorisation pour empêcher l’exécution de scripts arbitraires susceptibles de modifier la configuration de l’agent.
  • Désactivez la configuration Invité pour empêcher l’utilisation de stratégies de configuration Invité personnalisées susceptibles de modifier la configuration de l’agent.

Exemple de configuration pour les scénarios de monitoring et de sécurité

Il est courant d’utiliser Azure Arc pour superviser des serveurs avec Azure Monitor et Microsoft Sentinel, et les sécuriser avec Microsoft Defender pour le cloud. Cette section contient des exemples de verrouillage de l’agent pour prendre uniquement en charge les scénarios de surveillance et de sécurité.

Agent Azure Monitor uniquement

Sur vos serveurs Windows, exécutez les commandes suivantes dans une console de commandes avec élévation de privilèges :

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false

Sur vos serveurs Linux, exécutez les commandes suivantes :

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false

Log Analytics et Dependency Agent (Insights de machine virtuelle Azure Monitor) uniquement

Cette configuration concerne les agents Log Analytics hérités et Dependency Agent.

Sur vos serveurs Windows, exécutez les commandes suivantes dans une console avec élévation de privilèges :

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false

Sur vos serveurs Linux, exécutez les commandes suivantes :

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
sudo azcmagent config set guestconfiguration.enabled false

Monitoring et sécurité

Microsoft Defender pour Cloud déploie des extensions sur votre serveur pour identifier les logiciels vulnérables sur votre serveur et activer Microsoft Defender pour point de terminaison (s’il est configuré). Microsoft Defender pour le cloud utilise également la configuration Invité pour sa fonctionnalité de conformité réglementaire. Étant donné qu’une affectation de configuration Invité personnalisée peut être utilisée pour annuler les limitations de l’agent, vous devez évaluer avec soin si vous avez besoin de la fonctionnalité de conformité réglementaire et, par conséquent, d’activer la configuration Invité sur la machine.

Sur vos serveurs Windows, exécutez les commandes suivantes dans une console de commandes avec élévation de privilèges :

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true

Sur vos serveurs Linux, exécutez les commandes suivantes :

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true

Modes d’agent

Un moyen plus simple de configurer des contrôles de sécurité locaux pour la surveillance et les scénarios de sécurité consiste à utiliser le mode monitor, disponible avec l’agent version 1.18 et plus récente. Les modes représentent des configurations prédéfinies de la liste d’autorisation des extensions et de l’agent de configuration, gérées par Microsoft. À mesure que de nouvelles extensions deviennent disponibles pour permettre des scénarios de surveillance, Microsoft met à jour la liste d’autorisation et la configuration de l’agent pour inclure ou exclure les nouvelles fonctionnalités, selon les besoins.

Vous pouvez choisir entre deux modes :

  1. full - mode par défaut. Active toutes les fonctionnalités de l’agent.
  2. monitor - mode restreint qui désactive l’agent de stratégie de configuration invité et autorise uniquement l’utilisation d’extensions liées à la surveillance et à la sécurité.

Pour activer le mode monitor, exécutez la commande suivante :

azcmagent config set config.mode monitor

Vous pouvez vérifier le mode actuel de l’agent et les extensions autorisées avec la commande suivante :

azcmagent config list

En mode monitor, vous ne pouvez pas modifier la liste d’autorisation ou la liste de refus des extensions. Si vous devez modifier l’une de ces listes, passez l’agent en mode full et spécifiez vos propres listes d’autorisation et de refus.

Pour passer l’agent en mode full, exécutez la commande suivante :

azcmagent config set config.mode full

Désactivation du gestionnaire d’extensions

Si vous n’avez pas besoin d’utiliser des extensions avec Azure Arc, vous pouvez également désactiver entièrement le gestionnaire d’extensions. Vous pouvez désactiver le gestionnaire d'extensions à l'aide de la commande suivante (exécutée localement sur chaque machine) :

azcmagent config set extensions.enabled false

La désactivation du gestionnaire d’extensions ne supprime aucune extension déjà installée sur votre serveur. Les extensions hébergées dans leurs propres services Windows ou Linux, tels que l’agent Log Analytics, peuvent continuer à s’exécuter même si le gestionnaire d’extensions est désactivé. Les autres extensions hébergées par le gestionnaire d’extensions lui-même, comme l’agent Azure Monitor, ne s’exécutent pas si le gestionnaire d’extensions est désactivé. Vous devez supprimer toutes les extensions avant de désactiver le gestionnaire d’extensions pour vous assurer qu’aucune extension ne continue à s’exécuter sur le serveur.