Configuration du pare-feu Azure pour une protection réseau avancée

Configuration du pare-feu Azure pour une protection réseau avancée

08/08/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 configuration et l’utilisation du Pare-feu Azure pour une protection réseau avancée. Azure Firewall est un service de sécurité réseau géré basé sur le cloud qui fournit une protection contre les menaces de couche 4 et de couche 7 pour les ressources réseau Azure, permettant la centralisation du contrôle du réseau et la mise en œuvre de politiques de sécurité cohérentes dans les environnements cloud [1].

Présentation

Dans un paysage cloud en constante évolution, la sécurité des réseaux est un pilier fondamental pour la protection des applications et des données. Le Pare-feu Azure fournit une solution robuste pour inspecter et contrôler le trafic réseau, agissant comme un point central d’application des politiques de sécurité. Il va au-delà des groupes de sécurité réseau (NSG) de base en fournissant des fonctionnalités avancées telles que le filtrage du trafic basé sur le nom de domaine complet (FQDN), la veille sur les menaces, le système de détection et de prévention des intrusions (IDPS) et l'inspection TLS, ce qui le rend essentiel pour les architectures réseau sécurisées dans Azure, en particulier dans les modèles Hub-and-Spoke [2].

Ce guide pratique couvrira le déploiement du pare-feu Azure, la configuration des règles de réseau et d'application, l'activation de la veille sur les menaces et de l'IDPS, l'intégration avec d'autres services Azure et les meilleures pratiques en matière de gouvernance de réseau. Des instructions étape par étape, des exemples de commandes Azure CLI et des exemples seront fournis afin que le lecteur puisse mettre en œuvre et valider une stratégie de protection réseau efficace, réduisant ainsi la surface d'attaque et renforçant la cyber-résilience de son infrastructure Azure.

Pourquoi le pare-feu Azure est-il crucial pour la protection avancée du réseau ?

  • Filtrage avancé du trafic : vous permet de filtrer le trafic réseau en fonction des adresses IP, des ports, des protocoles, des noms de domaine complets et des URL, offrant un contrôle granulaire.
  • Threat Intelligence : bloque automatiquement le trafic vers et depuis les domaines malveillants connus et les adresses IP en fonction des flux Microsoft Threat Intelligence.
  • IDPS (Intrusion Detection and Prevention System) : détecte et bloque les attaques basées sur les signatures en temps réel, y compris les exploits de vulnérabilité et les logiciels malveillants.
  • Inspection TLS : décrypte le trafic TLS/SSL sortant pour inspecter les menaces cachées et appliquer les politiques de sécurité, en le chiffrant à nouveau avant de l'envoyer à la destination.
  • Déploiement centralisé : peut être déployé dans un réseau virtuel hub pour protéger plusieurs réseaux virtuels satellites, simplifiant ainsi la gestion et l'application des politiques.
  • Haute disponibilité et évolutivité : il s'agit d'un service entièrement géré, avec une haute disponibilité intégrée et une évolutivité automatique pour gérer les pics de trafic.
  • Intégration de l'écosystème Azure : s'intègre de manière transparente à Azure Monitor, Azure Sentinel et Azure Firewall Manager pour une surveillance, une analyse et une gestion centralisées.

Prérequis

Pour configurer le Pare-feu Azure pour une protection réseau avancée, 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 » ou « Contributeur » dans l'abonnement Azure, ou dans le groupe de ressources où le pare-feu et les réseaux virtuels seront déployés.
  3. Réseaux virtuels Azure (VNets) : au moins un réseau virtuel pour déployer le pare-feu Azure et idéalement une architecture Hub-and-Spoke pour la démonstration.
  4. Facultatif : machines virtuelles (VM) : machines virtuelles déployées dans des réseaux virtuels Spoke pour tester les règles de pare-feu.
  5. Azure CLI ou Azure PowerShell : outils de ligne de commande installés et configurés pour interagir avec Azure.

Étape par étape : configuration du pare-feu Azure pour une protection avancée

Déployons un pare-feu Azure et configurons ses principales fonctionnalités.

1. Préparation de l'architecture Hub-and-Spoke

Une architecture Hub-and-Spoke est une topologie de réseau courante dans Azure, dans laquelle le réseau virtuel hub contient des services partagés (tels que le pare-feu Azure) et les réseaux virtuels satellite contiennent les charges de travail. Le trafic entre les rayons et vers Internet est acheminé via le hub.

  1. Créer un groupe de ressources : créez un groupe de ressources pour toutes les ressources. bash az groupe créer --name RG-Firewall-Artigos --location eastus
  2. Créer un VNet Hub : Créez un réseau virtuel pour le hub avec un sous-réseau dédié pour le Pare-feu Azure (AzureFirewallSubnet). bash az network vnet create --name VNet-Hub --resource-group RG-Firewall-Artigos --address-prefix 10.0.0.0/16 --location eastus az network vnet subnet create --name AzureFirewallSubnet --vnet-name VNet-Hub --resource-group RG-Firewall-Articles --address-prefix 10.0.1.0/24
  3. Créer un réseau virtuel Spoke : créez un réseau virtuel pour le réseau virtuel avec un sous-réseau pour les machines virtuelles. bash az network vnet create --name VNet-Spoke --resource-group RG-Firewall-Artigos --address-prefix 10.1.0.0/16 --location eastus az network vnet subnet create --name WorkloadSubnet --vnet-name VNet-Spoke --resource-group RG-Firewall-Articles --address-prefix 10.1.1.0/24
  4. Configurer le peering de réseau virtuel : connectez le réseau virtuel hub et le réseau virtuel satellite via le peering. bash az network vnet peering create --name HubToSpoke --resource-group RG-Firewall-Articles --vnet-name VNet-Hub --remote-vnet VNet-Spoke --allow-vnet-access az network vnet peering create --name SpokeToHub --resource-group RG-Firewall-Articles --vnet-name VNet-Spoke --remote-vnet VNet-Hub --allow-vnet-access

2. Déploiement du pare-feu Azure

  1. Créer un pare-feu Azure : déployez le pare-feu Azure sur le « AzureFirewallSubnet » du réseau virtuel hub. bash az network firewall create --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --location eastus --sku Standard az network firewall ip-config create --firewall-name AzureFirewall-01 --name AzureFirewall-IP --resource-group RG-Firewall-Articles --vnet-name VNet-Hub --public-ip-address az-firewall-pip

    • Remarque : La commande az network firewall ip-config create créera automatiquement une adresse IP publique pour le pare-feu si vous fournissez un nom (par exemple az-firewall-pip).
  2. Obtenir l'adresse IP privée du pare-feu : notez l'adresse IP privée du pare-feu Azure car elle sera utilisée pour le routage. bash az network firewall show --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --query ipConfigurations[0].privateIpAddress -o tsv

3. Configuration du routage pour le pare-feu Azure

Pour que le trafic du réseau virtuel Spoke traverse le pare-feu Azure, nous devons créer une table de routage et l'associer au sous-réseau Spoke.

  1. Créer une table de routage : créez une table de routage. bash az network route-table create --name FirewallRouteTable --resource-group RG-Firewall-Artigos --location eastus
  2. Ajouter une route par défaut : ajoutez une route par défaut (0.0.0.0/0) qui dirige tout le trafic vers l'adresse IP privée du pare-feu Azure. bash # Remplacez <FIREWALL_PRIVATE_IP> par l'IP privée obtenue à l'étape précédente FIREWALL_PRIVATE_IP=$(az network firewall show --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --query ipConfigurations[0].privateIpAddress -o tsv) az network route-table route create --name DefaultRouteToFirewall --resource-group RG-Firewall-Artigos --route-table-name FirewallRouteTable --address-prefix 0.0.0.0/0 --next-hop-type VirtualAppliance --next-hop-ip-address $FIREWALL_PRIVATE_IP
  3. Associer la table de routage au sous-réseau Spoke : associez la table de routage au « WorkloadSubnet » de « VNet-Spoke ». bash az network vnet subnet update --name WorkloadSubnet --vnet-name VNet-Spoke --resource-group RG-Firewall-Articles --route-table FirewallRouteTable

4. Configuration des règles de pare-feu Azure

Le Pare-feu Azure utilise des ensembles de règles pour contrôler le trafic. Il existe trois types de règles : « Règles de réseau », « Règles d'application » et « Règles NAT ».

4.1. Règles du réseau

Contrôlez le trafic de couche 3 et de couche 4 (IP, ports, protocoles).

  1. Autoriser le trafic sortant pour DNS : essentiel pour la résolution de noms. bash az network firewall network-rule create --firewall-name AzureFirewall-01 --collection-name "Allow-DNS" --name "Allow-DNS-Outbound" --resource-group RG-Firewall-Articles --priority 100 --action Allow --source-addresses "*" --destination-addresses "*" --protocols UDP --destination-ports 53

  2. Autoriser le trafic sortant vers une adresse IP spécifique : Exemple : autoriser l'accès à un serveur de correctifs. bash az network firewall network-rule create --firewall-name AzureFirewall-01 --collection-name "Allow-Patch-Server" --name "Allow-Patch-Server-Outbound" --resource-group RG-Firewall-Articles --priority 110 --actionAutoriser --source-addresses "10.1.1.0/24" --destination-addresses "20.1.2.3" --protocols TCP --destination-ports 443

4.2. Règles de candidature

Contrôlez le trafic de couche 7 (HTTP/HTTPS) basé sur les FQDN.

  1. Autoriser l'accès aux sites Microsoft : Exemple : autoriser l'accès à « learn.microsoft.com ». bash az network firewall application-rule create --firewall-name AzureFirewall-01 --collection-name "Autoriser-Microsoft-Sites" --name "Allow-Learn-Microsoft" --resource-group RG-Firewall-Articles --priority 100 --action Allow --source-addresses "10.1.1.0/24" --protocols Http=80 Https=443 --fqdn-tags "Microsoft.Websites" --target-fqdns "learn.microsoft.com"

    • Astuce : les Fqdn-tags sont des groupes de FQDN prédéfinis par Microsoft pour les services courants.
  2. Bloquer l'accès aux sites Web malveillants : par défaut, le Pare-feu Azure bloque tout ce qui n'est pas explicitement autorisé. Cependant, vous pouvez créer des règles de refus explicites pour des noms de domaine complets spécifiques. bash az network firewall application-rule create --firewall-name AzureFirewall-01 --collection-name "Block-Malicious-Sites" --name "Block-Bad-Site" --resource-group RG-Firewall-Articles --priority 200 --action Deny --source-addresses "10.1.1.0/24" --protocols Https=443 --target-fqdns "badsite.com"

4.3. Règles NAT (traduction d'adresses réseau)

Permet de diriger le trafic entrant vers des ressources internes (DNAT - Destination NAT).

  1. Autoriser l'accès RDP externe à une VM (avec prudence !) : Exemple : Autoriser RDP à une VM à partir d'une adresse IP publique spécifique. ```bash # Créez une VM sur le WorkloadSubnet pour tester az vm create --name TestVM --resource-group RG-Firewall-Articles --image UbuntuLTS --size Standard_B1s --vnet-name VNet-Spoke --subnet WorkloadSubnet --admin-username azureuser --admin-password "P@ssw0rd12345!" --pas d'attente

    Récupérer l'IP privée de la VM

    VM_PRIVATE_IP=$(az vm show --name TestVM --resource-group RG-Firewall-Artigos --query privateIps -o tsv)

    Obtenez l'adresse IP publique du pare-feu

    FIREWALL_PUBLIC_IP=$(az network public-ip show --name az-firewall-pip --resource-group RG-Firewall-Artigos --query ipAddress -o tsv)

    Créer la règle DNAT

    az network firewall nat-rule create --firewall-name AzureFirewall-01 --collection-name "Allow-RDP-Inbound" --name "RDP-to-TestVM" --resource-group RG-Firewall-Articles --priority 100 --action Dnat --source-addresses "YOUR_PUBLIC_IP" --destination-addresses $FIREWALL_PUBLIC_IP --protocoles TCP --destination-ports 3389 --translated-address $VM_PRIVATE_IP --translated-port 3389 `` * **AVERTISSEMENT** : remplacezYOUR_PUBLIC_IP` par votre véritable adresse IP publique pour restreindre l'accès. N'utilisez pas "*" en production pour les règles DNAT.

5. Configuration d'Azure Firewall Premium (inspection IDPS et TLS)

Pour les fonctionnalités de protection avancées telles que IDPS et TLS Inspection, vous avez besoin d’Azure Firewall Premium.

  1. Mettre à niveau le SKU du pare-feu (si nécessaire) : Si vous avez créé un pare-feu standard, vous pouvez le mettre à niveau vers Premium. bash az mise à jour du pare-feu réseau --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --sku Premium

  2. Configurer l'inspection TLS : pour l'inspection TLS, vous avez besoin d'un certificat SSL/TLS émis par une autorité de certification d'entreprise ou publique, stocké dans Azure Key Vault.

    • Prérequis : Certifié dans Azure Key Vault (voir l'article précédent sur Azure Key Vault pour plus de détails).
    • Créez une politique de pare-feu et associez-la au pare-feu. bash az stratégie de pare-feu réseau créer --name FirewallPolicy-01 --resource-group RG-Firewall-Artigos --location eastus az mise à jour de la stratégie de pare-feu réseau --name FirewallPolicy-01 --resource-group RG-Firewall-Artigos --threat-intel-mode Alerte az mise à jour du pare-feu réseau --name AzureFirewall-01 --resource-group RG-Firewall-Artigos --firewall-policy FirewallPolicy-01
    • Dans le portail Azure, accédez à « Politique de pare-feu » -> Paramètres -> Inspection TLS.
    • Activez l'inspection TLS et sélectionnez le certificat racine de votre Key Vault.
  3. Configurer IDPS : IDPS est activé et configuré via la stratégie de pare-feu.

    • Dans le portail Azure, accédez à « Politique de pare-feu » -> Paramètres -> IDPS.
    • Vous pouvez configurer le mode IDPS (Alerte ou Alerte et Refuser) et créer des règles de signature IDPS personnalisées.

6. Activer l'intelligencedes menaces

Les informations sur les menaces du pare-feu Azure peuvent être configurées pour « Alerter » ou « Alerter et refuser » vers/depuis des adresses IP et des noms de domaine complets malveillants connus.

  1. Dans le portail Azure, accédez à votre pare-feu Azure (AzureFirewall-01).
  2. Dans le volet de navigation de gauche, sélectionnez Threat Intelligence.
  3. Réglez le « Mode » sur « Alerte et refus ».

Validation et tests

La validation de votre configuration de pare-feu Azure est cruciale pour garantir que les stratégies de sécurité sont appliquées correctement.

1. Tester les règles du réseau

  1. Test de connectivité DNS : à partir d'une VM sur WorkloadSubnet, essayez de résoudre un nom de domaine. Cela devrait fonctionner si la règle DNS est configurée. bash nslookup google.com

    • Résultat attendu : résolution DNS réussie.
  2. Test de blocage de port : essayez d'accéder à un port qui n'est pas autorisé pour une adresse IP externe. bash nc-vz 8.8.8.8 80

    • Résultat attendu : connexion refusée ou délai d'attente.

2. Test des règles d'application

  1. Test d'accès FQDN autorisé : à partir d'une VM sur WorkloadSubnet, essayez d'accéder à learn.microsoft.com via un navigateur.

    • Résultat attendu : accès réussi.
  2. Test de blocage FQDN : essayez d'accéder à « badsite.com » (si vous avez configuré la règle de refus pour celui-ci).

    • Résultat attendu : Accès bloqué par le pare-feu, avec un message d'erreur dans le navigateur.

3. Test des règles NAT (DNAT)

  1. À partir d'un ordinateur en dehors d'Azure (avec l'adresse IP publique que vous avez spécifiée dans la règle DNAT), essayez de vous connecter via RDP/SSH à l'adresse IP publique du pare-feu Azure sur le port 3389/22.
    • Résultat attendu : connexion réussie à la VM interne.

4. Vérification des journaux du pare-feu Azure

Les journaux du pare-feu Azure sont essentiels pour surveiller le trafic et valider les règles.

  1. Dans le portail Azure, accédez à votre pare-feu Azure (AzureFirewall-01).
  2. Dans le volet de navigation de gauche, sélectionnez Journaux.
  3. Vous pouvez utiliser Log Analytics pour interroger les journaux du pare-feu. Recherchez les événements « AzureFirewallNetworkRule » et « AzureFirewallApplicationRule » pour voir quelles règles ont été déclenchées et si le trafic a été autorisé ou refusé.

5. Test de Threat Intelligence et IDPS (Premium)

  1. Threat Intelligence : essayez d'accéder à une adresse IP ou à un nom de domaine complet connu pour être malveillant (utilisez un site de test de logiciels malveillants sécurisé tel que « test.malware.testing.com » ou une adresse IP de test de renseignements sur les menaces). Le pare-feu doit bloquer l'accès.
  2. IDPS : essayez de simuler une attaque qui serait détectée par IDPS (par exemple, utilisez un outil de test de vulnérabilité pour tenter une injection SQL sur une application Web sur la VM satellite, le cas échéant). Le Firewall doit générer une alerte et/ou bloquer le trafic.

Conseils de sécurité et bonnes pratiques

  • Modèle Hub-and-Spoke : dans la mesure du possible, utilisez le modèle Hub-and-Spoke avec le Pare-feu Azure dans le hub pour centraliser le contrôle du réseau et simplifier la gestion des stratégies.
  • Principe du moindre privilège : créez des règles de pare-feu avec le moins de privilèges possible, autorisant uniquement le trafic essentiel. Bloquez tout le trafic par défaut et autorisez explicitement tout ce qui est nécessaire.
  • Priorité des règles : comprenez l'ordre de traitement des règles (NAT > Réseau > Application) et la priorité au sein de chaque collection pour éviter les conflits et garantir que les règles souhaitées sont appliquées.
  • Threat Intelligence activé : gardez l'intelligence sur les menaces activée en mode « Alerte et refus » pour une protection automatique contre les sources malveillantes connues.
  • Azure Firewall Premium : pour les environnements qui nécessitent une protection avancée, utilisez la référence SKU Premium pour profiter de fonctionnalités telles que IDPS et TLS Inspection.
  • Inspection TLS : mettez en œuvre l'inspection TLS pour le trafic sortant afin de détecter les menaces cachées dans les sessions chiffrées, mais planifiez soigneusement la gestion des certificats.
  • Surveillance et audit : intégrez les journaux du pare-feu Azure à Azure Monitor et Azure Sentinel pour une surveillance continue, une analyse de sécurité et une réponse aux incidents.
  • Azure Firewall Manager : pour les environnements dotés de plusieurs pare-feu et de stratégies complexes, utilisez Azure Firewall Manager pour une gestion centralisée et hiérarchique des stratégies.
  • Documentation : conservez une documentation claire de vos règles de pare-feu et de la justification de chacune.

Dépannage courant

  • Blocages de circulationDe façon inattendue : vérifiez les journaux du pare-feu Azure dans Log Analytics. Ils indiqueront quelle règle (qu’il s’agisse de réseau, d’application ou de renseignements sur les menaces) a bloqué le trafic. Ajustez la règle si nécessaire.
  • Connectivité lente : si votre trafic est lent, vérifiez l'utilisation du processeur du pare-feu dans Azure Monitor. Le pare-feu atteint peut-être ses limites de performances. Pensez à faire évoluer le SKU ou à optimiser les règles.
  • Les règles NAT ne fonctionnent pas : Vérifiez que l'adresse IP publique, la destination et les ports traduits sont corrects. Assurez-vous que l'adresse IP source dans la règle NAT est correcte (si elle est restreinte). Vérifiez la VM cible pour les NSG susceptibles de bloquer le trafic.
  • Problèmes d'inspection TLS : assurez-vous que le certificat racine est correctement configuré dans Key Vault et la stratégie de pare-feu. Vérifiez que les clients font confiance à l'autorité de certification racine utilisée pour l'inspection TLS.
  • IDPS ne détecte pas les attaques : Vérifiez qu'IDPS est en mode « Alerte et refus » et que les signatures pertinentes sont activées. Assurez-vous que le trafic passe réellement par le pare-feu.
  • Routage incorrect : vérifiez la table de routage associée au sous-réseau de votre VM. Assurez-vous que la route par défaut (0.0.0.0/0) pointe vers l’adresse IP privée du pare-feu Azure.

Conclusion

Le pare-feu Azure est un outil puissant et essentiel pour établir une posture de sécurité réseau robuste dans Azure. En mettant en œuvre un filtrage avancé du trafic, des renseignements sur les menaces, une inspection IDPS et TLS, les organisations peuvent protéger leurs charges de travail contre un large éventail de cybermenaces. L’adoption d’un modèle Hub-and-Spoke avec le pare-feu Azure au centre, ainsi que l’application des meilleures pratiques et une surveillance continue, garantissent que le trafic réseau est inspecté et contrôlé efficacement. Avec ce guide pratique, les professionnels de la sécurité seront bien équipés pour configurer et gérer le pare-feu Azure, renforçant ainsi la sécurité du réseau et la résilience de leurs environnements Azure contre les dernières menaces.


Références :

[1] Microsoft Apprendre. Qu'est-ce que le Pare-feu Azure ?. Disponible sur : https://learn.microsoft.com/pt-br/azure/firewall/overview [2] Microsoft Apprendre. Présentation de l'architecture du pare-feu Azure. Disponible sur : https://learn.microsoft.com/pt-br/azure/firewall/firewall-architecture [3] Microsoft Apprendre. Fonctionnalités Premium du pare-feu Azure. Disponible sur : https://learn.microsoft.com/pt-br/azure/firewall/premium-features [4] Microsoft Apprendre. Filtrage basé sur les informations sur les menaces du pare-feu Azure. Disponible sur : https://learn.microsoft.com/pt-br/azure/firewall/threat-intel