Gestion de l'accès juste à temps (JIT) pour les machines virtuelles Azure

Gestion de l'accès juste à temps (JIT) pour les machines virtuelles Azure

01/10/2024

Cet article technique et pédagogique vise à guider les analystes de sécurité, les administrateurs informatiques et les ingénieurs système dans la mise en œuvre et la gestion de l'accès juste à temps (JIT) pour les machines virtuelles (VM) Azure. JIT est une fonctionnalité de sécurité fondamentale offerte par Microsoft Defender for Cloud qui aide à protéger les machines virtuelles contre les attaques par accès non autorisé, réduisant considérablement la surface d'attaque du réseau en limitant l'accès aux ports de gestion uniquement lorsque et aussi longtemps que cela est strictement nécessaire [1].

Présentation

Dans les environnements cloud, les machines virtuelles sont souvent la cible d'attaques par force brute et d'analyses de ports, en particulier celles dont les ports de gestion (tels que RDP 3389 et SSH 22) sont exposés à Internet. Garder ces ports ouverts en permanence crée une surface d’attaque inutilement importante, augmentant ainsi le risque de compromission. JIT Access résout ce problème en permettant aux équipes de sécurité de bloquer le trafic entrant vers les VM par défaut et d'ouvrir les ports de gestion uniquement à la demande, pendant une période de temps limitée et à partir d'adresses IP spécifiques. Cette approche suit le principe du moindre privilège et du Zero Trust, garantissant que l'accès n'est accordé que lorsque cela est justifié et pour la durée la plus courte possible [2].

Ce guide pratique couvrira les conditions préalables à l'activation de JIT, le processus de configuration via Microsoft Security Center, comment demander et approuver l'accès JIT, l'intégration avec les alertes de sécurité et les meilleures pratiques pour une gestion efficace. Des instructions étape par étape, des exemples de commandes et d'instructions Azure CLI seront fournis afin que le lecteur puisse implémenter et valider le JIT, renforçant ainsi la sécurité de ses machines virtuelles Azure et les protégeant contre les menaces d'accès non autorisé.

Pourquoi l'accès juste à temps (JIT) est-il crucial pour les machines virtuelles Azure ?

  • Réduction de la surface d'attaque : ferme les ports de gestion des machines virtuelles par défaut, les exposant uniquement lorsque et aussi longtemps que nécessaire, minimisant ainsi les opportunités pour les attaquants.
  • Contrôle d'accès granulaire : vous permet de spécifier quels utilisateurs peuvent demander l'accès, quels ports peuvent être ouverts, pendant combien de temps et à partir de quelles adresses IP sources.
  • Conformité : permet de répondre aux exigences de conformité qui nécessitent un contrôle strict de l'accès aux ressources critiques.
  • Visibilité et audit : fournit des journaux détaillés de toutes les demandes d'accès JIT, approbations et ouvertures/fermetures de ports, facilitant ainsi les audits et les enquêtes de sécurité.
  • Intégration avec Defender for Cloud : Entièrement intégré à Microsoft Defender for Cloud, tirant parti de ses capacités de gestion de la posture de sécurité et de protection contre les menaces.
  • Automatisation : peut être automatisé pour approuver l'accès dans des scénarios spécifiques, tels que la réponse à un incident ou les opérations de maintenance planifiées.

Prérequis

Pour implémenter JIT Access pour les machines virtuelles Azure, vous aurez besoin des éléments suivants :

  1. Abonnement Azure actif : un abonnement Azure pour créer et gérer des ressources.
  2. Accès administrateur : Un compte avec le rôle de « Propriétaire », « Contributeur » ou « Administrateur de sécurité » dans l'abonnement Azure ou dans le groupe de ressources où se trouvent les machines virtuelles.
  3. Microsoft Defender for Cloud Standard (ou Defender for Servers) : JIT est une fonctionnalité premium de Microsoft Defender for Cloud et nécessite que le plan Defender for Servers soit activé sur l'abonnement contenant les machines virtuelles [3].
  4. Machines virtuelles Azure existantes : machines virtuelles Azure que vous souhaitez protéger avec JIT. Pour ce didacticiel, nous supposerons que vous avez déjà déployé des VM.
  5. Azure CLI ou Azure PowerShell : outils de ligne de commande installés et configurés pour interagir avec Azure.

Étape par étape : activation et gestion de l'accès JIT

Configurons le JIT pour vos machines virtuelles Azure.

1. Activation du plan Defender pour les serveurs

Comme mentionné dans les prérequis, JIT nécessite que le plan Defender for Servers soit activé.

  1. Ouvrez votre navigateur et accédez au portail Azure : « https://portal.azure.com ».
  2. Connectez-vous avec un compte disposant des autorisations nécessaires.
  3. Dans le champ de recherche supérieur, tapez « Defender for Cloud » et sélectionnez-le dans les résultats.
  4. Dans le tableau de bord Defender for Cloud, sélectionnez Paramètres d'environnementet dans le volet de navigation de gauche.
  5. Sélectionnez l'abonnement Azure qui contient vos machines virtuelles.
  6. Sur la page des plans Defender, assurez-vous que le plan Defender for Servers est « Activé ». Si ce n'est pas le cas, cliquez sur « Activer » et suivez les instructions pour l'activer.

2. Activation de l'accès JIT pour les VM

Vous pouvez activer JIT pour des machines virtuelles individuelles ou pour plusieurs machines virtuelles à la fois.

  1. Dans le tableau de bord Defender pour Cloud, sélectionnez Workload Protection dans le volet de navigation de gauche.
  2. Faites défiler jusqu'à la section « Protection avancée » et cliquez sur Accès juste à temps aux VM.
  3. Sous l'onglet « Machines virtuelles », vous verrez trois sous-onglets : « Configuré », « Recommandé » et « Non configuré ».

    • « Recommandé » : répertorie les machines virtuelles que Security Center recommande de protéger avec JIT.
    • « Non configuré » : répertorie les machines virtuelles qui ne sont pas protégées JIT mais qui sont éligibles.
  4. Sélectionnez les machines virtuelles dans l'onglet « Recommandé » ou « Non configuré » pour lesquelles vous souhaitez activer JIT.

  5. Cliquez sur Activer JIT sur la VM.

  6. Configurer la stratégie JIT : pour chaque VM sélectionnée, vous pouvez configurer les options suivantes :

    • Ports : Les ports de gestion qui seront protégés (ex : 22, 3389, 5985, 5986). Vous pouvez ajouter des ports personnalisés.
    • Protocole : Le protocole de chaque port (par exemple TCP, UDP).
    • Durée maximale de la demande : La durée maximale (en heures) pendant laquelle une porte peut être ouverte après une demande approuvée. La valeur par défaut est de 3 heures.
    • Adresses IP sources approuvées : facultatives, mais fortement recommandées. Restreint l’accès à des adresses IP ou à des blocs IP spécifiques. Par défaut, il s'agit de « Any » (*), ce qui signifie que n'importe quelle adresse IP peut demander l'accès.
  7. Cliquez sur Enregistrer pour appliquer la stratégie JIT aux machines virtuelles sélectionnées.

3. Demander un accès juste à temps à une VM

Lorsqu'un utilisateur ou un administrateur doit accéder à une VM protégée par JIT, il doit demander l'accès.

  1. Dans le tableau de bord Security Center, sélectionnez Workload Protection > Just-in-Time VM Access.
  2. Dans l'onglet « Machines virtuelles », sélectionnez la VM à laquelle vous souhaitez accéder (elle devrait se trouver dans l'onglet « Configuré »).
  3. Cliquez sur Demander un accès.

  4. Dans la fenêtre « Demande d'accès », précisez :

    • Portes : les portes que vous devez ouvrir.
    • Adresse IP source : L'adresse IP publique à partir de laquelle vous vous connecterez. Vous pouvez sélectionner « Mon adresse IP » (l'adresse IP publique actuelle de votre appareil) ou « Personnalisé » pour spécifier une IP ou un CIDR.
    • Période de temps : La durée de l'accès (limitée par le « Temps maximum de demande » configuré dans la politique JIT).
    • Justification : Une brève description du motif de la demande d'accès.
  5. Cliquez sur Ouvrir les ports.

    • Remarque : Si la politique JIT nécessite une approbation, la demande sera envoyée aux approbateurs configurés avant l'ouverture des ports.

4. Approuver les demandes d'accès JIT (si configurées)

Pour les scénarios où l’approbation est requise (via Azure Logic Apps ou Azure Functions), le processus peut varier. Par défaut, JIT ouvre les ports immédiatement sur demande, sauf si une automatisation du flux de travail est configurée.

  • Conseil : Pour les workflows d'approbation, vous pouvez utiliser Azure Logic Apps pour surveiller les journaux d'audit Azure ou les événements Azure Security Center et déclencher un processus d'approbation (par exemple, envoyer un e-mail à un groupe de sécurité pour une approbation manuelle).

5. Vérification de l'état d'accès JIT

Après avoir demandé l'accès, vous pouvez vérifier le statut sur le portail.

  1. Dans le tableau de bord Security Center, sélectionnez Workload Protection > Just-in-Time VM Access.
  2. Dans l'onglet « Machines virtuelles », la VM à laquelle vous avez demandé l'accès doit afficher un statut indiquant que l'accès est « Actif » ou « En attente » (si approuvé).
  3. La colonne « Temps restant » indiquera le temps d'accès restant.

6. Désactivation de l'accès JIT (facultatif)

Si vous devez désactiver JIT pour une VM, procédez comme suit :

  1. Dans le tableau de bord Security Center, sélectionnez Workload Protection > Just-in-Time VM Access.
  2. Dans l'onglet « Machines virtuelles », sélectionnez la VM configurée.
  3. Cliquez sur Désactiver JIT sur la VM.

Validation et tests

La validation de l'efficacité de JIT Access est cruciale pour garantir que vos machines virtuelles sont protégées et que l'accès peut être accordé si nécessaire.

1. Test du bloc Det accès standard

  1. Essayez d'accéder à un port de gestion (par exemple RDP 3389 ou SSH 22) à partir d'une VM protégée par JIT sans demander l'accès JIT.
    • Résultat attendu : La connexion doit être refusée ou expirée car les ports sont fermés par défaut.

2. Test de l'accès JIT approuvé

  1. Demandez l'accès JIT à la VM et au port souhaités à l'aide de son adresse IP publique.
  2. Après approbation (ou ouverture immédiate si aucune approbation n'est configurée), essayez d'accéder à la VM via RDP ou SSH à partir de la même adresse IP publique.

    • Résultat attendu : La connexion devrait réussir.
  3. Attendez que le temps d'accès JIT expire (ou annulez manuellement l'accès).

  4. Essayez à nouveau d'accéder à la VM.
    • Résultat attendu : La connexion doit être à nouveau refusée.

3. Vérification des journaux d'audit

Toutes les opérations JIT sont enregistrées dans les journaux d'audit Azure, fournissant une trace complète de qui a demandé quoi, quand et d'où.

  1. Dans le portail Azure, accédez à votre groupe de ressources ou à une machine virtuelle spécifique.
  2. Dans le volet de navigation de gauche, sélectionnez Journal d'activité.
  3. Filtrez les événements liés à « Just-in-Time VM Access » ou « Microsoft.Security/locations/jitNetworkAccessPolicies ».
    • Vous verrez des événements tels que « Politique d'accès au réseau JIT créée », « Politique d'accès au réseau JIT demandée », « Politique d'accès au réseau JIT approuvée » (le cas échéant) et « Politique d'accès au réseau JIT fermée ».

Conseils de sécurité et bonnes pratiques

  • Principe du moindre privilège : configurez les politiques JIT pour accorder le moins de privilèges possible : les ports exacts nécessaires, pour la durée la plus courte possible et à partir des adresses IP sources les plus restreintes.
  • Restreindre les adresses IP sources : dans la mesure du possible, spécifiez les adresses IP sources dans la politique JIT et les demandes d'accès. Évitez d'utiliser « Any » (*) pour les adresses IP sources.
  • Périodes courtes : définissez le temps de demande maximum sur la période raisonnable la plus courte (par exemple 1 à 2 heures), obligeant les utilisateurs à réévaluer le besoin d'accès.
  • Surveillance et alertes : configurez des alertes dans Azure Monitor pour les demandes d'accès JIT, en particulier pour les ports critiques ou les adresses IP inattendues. Intégrez ces alertes à votre SIEM (par exemple Microsoft Sentinel).
  • Workflow Automation : pour les environnements avec des exigences d'approbation strictes, utilisez Azure Logic Apps ou Azure Functions pour créer des workflows d'approbation personnalisés pour les demandes JIT.
  • Documentation et formation : documentez clairement les politiques d'accès JIT et formez les utilisateurs sur la façon de demander l'accès et sur l'importance de suivre les meilleures pratiques de sécurité.
  • Révision périodique : examinez régulièrement les politiques JIT et les journaux d'accès pour vous assurer qu'ils restent pertinents et efficaces.
  • Combiner avec les NSG et le pare-feu Azure : JIT complète d'autres couches de sécurité réseau, telles que les groupes de sécurité réseau (NSG) et le pare-feu Azure. Utilisez-les ensemble pour une défense en profondeur.

Dépannage courant

  • Impossible d'activer JIT pour une VM : vérifiez que le plan Defender pour serveurs est activé pour l'abonnement VM. Assurez-vous que la VM n'est pas dans un état invalide ou qu'il n'y a pas de paramètres conflictuels.
  • Impossible de demander l'accès JIT : assurez-vous de disposer des autorisations nécessaires (par exemple, « Collaborateur » ou « Opérateur d'accès juste à temps à la machine virtuelle ») pour demander l'accès. Assurez-vous que la VM est configurée pour JIT et que les ports sont définis dans la stratégie.
  • Connexion refusée après demande JIT : Vérifiez que l'adresse IP source que vous avez spécifiée dans la demande JIT correspond à l'adresse IP publique de votre appareil. Confirmez que le délai n’a pas expiré. Vérifiez qu'aucun NSG ou règle de pare-feu supplémentaire ne bloque le trafic après l'ouverture du port JIT.
  • Mauvais ports ouverts : vérifiez la stratégie JIT configurée pour la VM pour vous assurer que les ports corrects sont répertoriés. Si vous utilisez Azure CLI, vérifiez les paramètres du port.
  • Alertes de sécurité d'accès JIT : enquêtez sur toutes les alertes de sécurité liées au JIT. Cela peut indiquer une tentative d'accès non autorisée ou une configuration incorrecte.
  • Performances de la VM affectées : le JIT lui-même ne devrait pas affecter les performances de la VM. En cas de problèmes, étudiez d'autres composants de la VM ou du réseau.

Conclusion

ÔLa gestion des accès juste à temps (JIT) pour les machines virtuelles Azure est une stratégie de sécurité essentielle pour protéger vos ressources cloud contre les menaces d'accès non autorisé. En fermant les ports de gestion par défaut et en les ouvrant uniquement à la demande, JIT réduit considérablement la surface d'attaque, renforce votre posture de sécurité et vous aide à répondre aux exigences de conformité. La mise en œuvre efficace du JIT, combinée aux meilleures pratiques de sécurité et à une surveillance continue, garantit que vos machines virtuelles restent sécurisées et accessibles uniquement aux utilisateurs et objectifs légitimes. Avec ce guide pratique, les professionnels de la sécurité seront bien équipés pour configurer, valider et gérer JIT Access, rendant ainsi leurs machines virtuelles Azure plus résilientes et protégées.


Références :

[1] Microsoft Apprendre. Qu'est-ce que l'accès JIT (juste à temps) à la VM ?. Disponible sur : https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-overview [2] Microsoft Apprendre. Activez l'accès juste à temps sur les VM. Disponible sur : https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-usage [3] Microsoft Apprendre. Gérez la sécurité du serveur avec Microsoft Defender pour Cloud. Disponible sur : https://learn.microsoft.com/pt-br/azure/defender-for-cloud/tutorial-enable-servers-plan [4] Microsoft Apprendre. Gérez l'accès JIT (juste à temps) à vos VM à l'aide de PowerShell. Disponible sur : https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-powershell