Partager via


Sécurité des extensions pour les serveurs avec Azure Arc

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 prises en charge 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) à mesure qu’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 abandonne.

Les extensions peuvent prendre des paramètres pour personnaliser ou configurer l’installation, telles que des URL proxy ou des clés API qui connectent un agent de surveillance à son service cloud. Les paramètres d’extension se répartissent en deux catégories : les paramètres normaux 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 via un appel d’API, l’interface CLI, PowerShell ou l’action du portail Azure. Cette conception garantit que toute action permettant d’installer, de mettre à jour ou de mettre à niveau une extension sur un serveur est journalisée dans le journal d’activité Azure Monitor. 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’ordinateur dispose de cette extension, l’extension est 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 ont 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. Par exemple, sauf si vous envisagez d’utiliser l’extension Script personnalisé pour l’exécution de code à distance, vous devez désactiver son utilisation, car elle peut être utilisée par des attaquants pour exécuter à distance des commandes qui déploient du code malveillant.

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

Vous pouvez éventuellement limiter les extensions qui peuvent être installées sur votre serveur et désactiver Guest Configuration. 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é ne peuvent être configurés qu’en exécutant une commande sur le serveur lui-même, et ils ne peuvent pas être modifiés à partir d’Azure. Cette approche conserve l’intention de l’administrateur du serveur lors de l’activation de scénarios de gestion à distance avec Azure Arc, mais cela signifie également qu’il est plus difficile de modifier ces options ultérieurement. Ces contrôles sont destinés aux serveurs sensibles tels que 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’extensions refuse de l’installer et marque le rapport d’installation de l’extension comme un échec sur Azure.

Les listes d’autorisation et les listes de blocs peuvent être configurées à tout moment après l’installation de l’agent, notamment avant la connexion de l’agent à 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. Par exemple, 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"

Par exemple, cette commande bloque les extensions qui ont la capacité 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 les détails des extensions les plus courantes dans la documentation.

Vous pouvez répertorier les extensions de machine virtuelle déjà installées sur votre serveur dans le portail, Azure PowerShell ou Azure CLI.

Le tableau décrit le comportement des opérations d'extension sur un agent ayant une liste d'autorisation ou une liste de blocage configurée.

Operation Dans la liste d’autorisation Dans la liste de refus Dans la liste d’autorisation et la liste de refus N'est dans aucune liste, mais une liste d'autorisation est configurée
Installer l’extension Allowed Blocked Blocked Blocked
Mettre à jour (reconfigurer) l’extension Allowed Blocked Blocked Blocked
Mettre à niveau l’extension Allowed Blocked Blocked Blocked
Supprimer l’extension Allowed Allowed Allowed Allowed

Important

Si une extension est déjà installée sur votre serveur avant de configurer une liste d'autorisation ou une liste de blocage, elle n'est pas 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ées, les listes d'autorisation et de blocage déterminent s’il faut autoriser ou non les tentatives d’installation futures.

La valeur Allow/None allowlist indique au gestionnaire d’extensions de s’exécuter, mais n’autorise pas l’installation des extensions. Cette valeur est 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"

Azure Policy

Une autre option permettant de restreindre les extensions pouvant être installées consiste à utiliser Azure Policy. Les stratégies ont l’avantage d’être configurables dans le cloud. Par conséquent, une modification sur chaque serveur individuel n’est pas nécessaire 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 Azure Policy pour restreindre les extensions, vérifiez quels comptes de votre organisation disposent de l’autorisation de modifier les attributions de stratégie et que les mesures de contrôle des modifications appropriées sont en place.

Mode moniteur de l’agent

Par défaut, l’agent Connected Machine s’exécute en mode complet, ce qui permet à toutes les extensions d’être installées et utilisées (sauf si elles sont restreintes par les listes d’autorisation, les listes de blocs ou Azure Policy). Un moyen simple de configurer des contrôles de sécurité locaux pour les scénarios de surveillance et de sécurité consiste à activer le mode moniteur pour l’agent Connected Machine.

Lorsque l’agent est en mode moniteur, seules les extensions liées à la surveillance et à la sécurité, telles que l’agent Azure Monitor et Microsoft Defender pour cloud, peuvent être déployées. L’agent bloque les extensions susceptibles de modifier la configuration système ou d’exécuter des scripts arbitraires et désactive l’agent de stratégie de configuration invité.

À mesure que de nouvelles extensions sont disponibles, Microsoft met à jour la liste d'autorisation du mode moniteur. Vous pouvez consulter la liste actuelle des extensions autorisées en exécutant azcmagent config list.

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 de surveillance, vous ne pouvez pas modifier la liste d'autorisation de l'extension ou la liste de blocage. Si vous devez modifier l'une ou l'autre des listes, repassez l'agent en mode complet et spécifiez votre propre liste d'autorisation et liste de blocage au lieu d'utiliser le mode moniteur.

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

azcmagent config set config.mode full

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’autorisez pas l’extension de script personnalisé, sauf si vous en avez besoin à des fins spécifiques.
  • 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 surveiller vos serveurs avec Azure Monitor et Microsoft Sentinel, et de les sécuriser avec Microsoft Defender pour 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 les 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 les serveurs Linux, exécutez les commandes suivantes :

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
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 attribution Guest Configuration personnalisée peut être utilisée pour annuler les limitations de l’agent, vous devez évaluer soigneusement si vous avez besoin de la fonctionnalité de conformité réglementaire et, par conséquent, Guest Configuration à activer sur l’ordinateur.

Sur les 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 les 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

Désactiver le 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 azcmagent config set commande (exécuter localement sur chaque ordinateur) :

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, comme l’agent Log Analytics hérité, 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, telles que l’agent Azure Monitor, ne s’exécutent pas si le gestionnaire d’extensions est désactivé. Pour vous assurer qu’aucune extension ne continue à s’exécuter sur le serveur, supprimez toutes les extensions avant de désactiver le gestionnaire d’extensions.