Az - Azure Network

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge HackTricks AWS)!

Autres façons de soutenir HackTricks :

Informations de base

Les réseaux au sein d'Azure fonctionnent comme une partie intégrante de sa plateforme de cloud computing, permettant la connexion et la communication entre divers services et ressources Azure. L'architecture réseau dans Azure est conçue pour être hautement évolutive, sécurisée et personnalisable.

Au cœur de tout cela, Azure fournit un réseau virtuel (VNet) qui permet aux utilisateurs de créer des réseaux isolés au sein du cloud Azure. Au sein de ces VNets, des ressources telles que des machines virtuelles, des applications et des bases de données peuvent être hébergées et gérées en toute sécurité. Le réseau dans Azure prend en charge à la fois la communication au sein du cloud (entre les services Azure) et la connexion à des réseaux externes et à Internet.

La sécurité est un aspect critique du réseau Azure, avec divers outils et services disponibles pour protéger les données, gérer l'accès et garantir la conformité. Ces mesures de sécurité comprennent des pare-feu, des groupes de sécurité réseau et des capacités de chiffrement, permettant un haut niveau de contrôle sur le trafic et l'accès.

Dans l'ensemble, les capacités réseau d'Azure sont conçues pour offrir une flexibilité, permettant aux utilisateurs de créer un environnement réseau adapté à leurs besoins d'application et de charge de travail spécifiques, tout en mettant fortement l'accent sur la sécurité et la fiabilité.

Réseau virtuel (VNET) & Sous-réseaux

Un VNet dans Azure est essentiellement une représentation de votre propre réseau dans le cloud. Il s'agit d'une isolation logique du cloud Azure dédiée à votre abonnement. Un VNet vous permet de provisionner et de gérer des réseaux privés virtuels (VPN) dans Azure et peut être utilisé pour héberger et gérer plusieurs types de ressources Azure, telles que des Machines Virtuelles (VM), des bases de données et des services d'application.

Les VNets vous offrent un contrôle total sur vos paramètres réseau, y compris les plages d'adresses IP, la création de sous-réseaux, les tables de routage et les passerelles réseau.

Un sous-réseau est une plage d'adresses IP dans votre VNet. Vous pouvez diviser un VNet en plusieurs sous-réseaux pour des raisons d'organisation et de sécurité. Chaque sous-réseau dans un VNet peut être utilisé pour isoler et regrouper des ressources selon votre architecture réseau et d'application.

De plus, les sous-réseaux vous permettent de segmenter votre VNet en un ou plusieurs sous-réseaux, fournissant une plage d'adresses IP que les ressources peuvent utiliser.

Exemple

  • Supposons que vous ayez un VNet nommé MyVNet avec une plage d'adresses IP de 10.0.0.0/16. Vous pouvez créer un sous-réseau au sein de ce VNet, disons Sous-réseau-1, avec une plage d'adresses IP de 10.0.0.0/24 pour héberger vos serveurs web. Un autre sous-réseau, Sous-réseau-2 avec une plage de 10.0.1.0/24, pourrait être utilisé pour vos serveurs de base de données. Cette segmentation permet une gestion efficace et des contrôles de sécurité au sein du réseau.

Énumération

Pour lister tous les VNets et sous-réseaux dans un compte Azure, vous pouvez utiliser l'Interface de Ligne de Commande Azure (CLI). Voici les étapes :

# List VNets
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table

# List subnets of a VNet
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, addressPrefix:addressPrefix}" -o table

Groupes de sécurité réseau (NSG)

Dans Azure, un groupe de sécurité réseau (NSG) sert principalement à filtrer le trafic réseau à la fois vers et depuis les ressources Azure au sein d'un réseau virtuel Azure (VNet). Il contient un ensemble de règles de sécurité qui dictent méticuleusement le flux du trafic réseau.

Les aspects clés des NSG comprennent :

  • Contrôle du trafic : Chaque NSG contient des règles qui sont essentielles pour autoriser ou bloquer le trafic réseau entrant et sortant associé à diverses ressources Azure.

  • Composants des règles : Les règles au sein d'un NSG sont très spécifiques, filtrant le trafic en fonction de critères tels que l'adresse IP source/destination, le port et le protocole. Cette spécificité permet une gestion granulaire du trafic réseau.

  • Amélioration de la sécurité : En veillant à ce que seul le trafic autorisé puisse entrer ou sortir de vos ressources Azure, les NSG jouent un rôle crucial dans le renforcement de la posture de sécurité de votre infrastructure réseau.

Exemple

  • Imaginez que vous ayez un NSG nommé MonNSG appliqué à un sous-réseau ou à une machine virtuelle spécifique au sein de votre VNet. Vous pouvez créer des règles telles que :

  • Une règle entrante autorisant le trafic HTTP (port 80) depuis n'importe quelle source vers vos serveurs web.

  • Une règle sortante autorisant uniquement le trafic SQL (port 1433) vers une plage d'adresses IP de destination spécifique.

Énumération

# List NSGs
az network nsg list --query "[].{name:name, location:location}" -o table

# Get NSG rules
az network nsg rule list --nsg-name <NSGName> --resource-group <ResourceGroupName> --query "[].{name:name, priority:priority, direction:direction, access:access, protocol:protocol, sourceAddressPrefix:sourceAddressPrefix, destinationAddressPrefix:destinationAddressPrefix, sourcePortRange:sourcePortRange, destinationPortRange:destinationPortRange}" -o table

Pare-feu Azure

Le pare-feu Azure est un service de sécurité réseau géré basé sur le cloud qui protège vos ressources du Réseau virtuel Azure. C'est un pare-feu entièrement étatique en tant que service avec des fonctionnalités intégrées de haute disponibilité et de scalabilité.

Le pare-feu Azure offre des fonctionnalités plus avancées que les NSG, notamment le filtrage au niveau de l'application, le filtrage au niveau du réseau, le filtrage basé sur l'intelligence des menaces et l'intégration avec Azure Monitor pour le journalisation et l'analyse. Il peut filtrer le trafic sortant, entrant, de point à point, VPN et ExpressRoute. Les règles du pare-feu peuvent être créées en fonction du FQDN (Fully Qualified Domain Name), des adresses IP et des ports.

Différences entre le pare-feu Azure et les NSG

  1. Portée :

  • NSG : Fonctionne au niveau du sous-réseau ou de l'interface réseau. Il est destiné à fournir un filtrage de base du trafic entrant et sortant des interfaces réseau (NIC), des VM ou des sous-réseaux.

  • Pare-feu Azure : Fonctionne au niveau du VNet, offrant une portée de protection plus large. Il est conçu pour sécuriser vos ressources du réseau virtuel et gérer le trafic entrant et sortant du VNet.

  1. Capacités :

  • NSG : Fournit des capacités de filtrage de base basées sur l'adresse IP, le port et le protocole. Il ne prend pas en charge les fonctionnalités avancées telles que l'inspection au niveau de l'application ou l'intelligence des menaces.

  • Pare-feu Azure : Offre des fonctionnalités avancées telles que le filtrage du trafic au niveau de l'application (niveau 7), le filtrage basé sur l'intelligence des menaces, le filtrage du trafic réseau, et plus encore. Il prend également en charge plusieurs adresses IP publiques.

  1. Cas d'utilisation :

  • NSG : Idéal pour le filtrage de base du trafic au niveau du réseau.

  • Pare-feu Azure : Adapté à des scénarios de filtrage plus complexes nécessitant un contrôle au niveau de l'application, la journalisation et l'intelligence des menaces.

  1. Gestion et surveillance :

  • NSG : Offre une journalisation de base et une intégration avec Azure Monitor.

  • Pare-feu Azure : Fournit des capacités avancées de journalisation et d'analyse via Azure Monitor, essentielles pour comprendre la nature et le schéma du trafic.

Énumération

# List Azure Firewalls
az network firewall list --query "[].{name:name, location:location, subnet:subnet, publicIp:publicIp}" -o table

# Get network rules of a firewall
az network firewall network-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get application rules of a firewall
az network firewall application-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

# Get nat rules of a firewall
az network firewall nat-rule collection list --firewall-name <FirewallName> --resource-group <ResourceGroupName> --query "[].{name:name, rules:rules}" -o table

Appareil Virtuel de Réseau (NVA)

Un Appareil Virtuel de Réseau (NVA) dans Azure est un appareil virtuel qui effectue des fonctions réseau au sein d'un réseau virtuel. Les NVA sont généralement utilisés pour des fonctions réseau qui ne sont pas nativement disponibles dans Azure ou lorsque plus de personnalisation est requise. Ce sont essentiellement des VM qui exécutent des applications ou des services réseau, tels que des pare-feu, des optimiseurs WAN ou des équilibreurs de charge.

Les NVA sont utilisés pour des tâches de routage complexe, de sécurité et de gestion du trafic réseau. Ils peuvent être déployés à partir du Marketplace Azure, où de nombreux fournisseurs tiers proposent leurs appareils prêts à être intégrés dans des environnements Azure.

Exemple

  • Une organisation peut déployer un NVA dans Azure pour créer une solution de pare-feu personnalisée. Ce NVA pourrait exécuter un logiciel de pare-feu tiers, offrant des fonctionnalités avancées telles que la détection d'intrusions, l'inspection de paquets ou la connectivité VPN. Le NVA peut être configuré pour inspecter et filtrer le trafic le traversant, garantissant la mise en place de mesures de sécurité renforcées conformément aux politiques de l'organisation.

Énumération

# Usually NVAs are named or tagged in a way to distinguish them from other VMs
az vm list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# For a specific VM identified as an NVA, list its network interfaces
az vm nic list --vm-name <VMName> --resource-group <ResourceGroupName> --query "[].{id:id}" -o table

Tables de routage Azure et Routes définies par l'utilisateur (UDR)

Les Tables de routage Azure sont une fonctionnalité au sein de Microsoft Azure qui permet de contrôler le routage du trafic réseau au sein des Réseaux Virtuels Azure (VNets). Essentiellement, elles définissent comment les paquets sont transmis entre les sous-réseaux au sein des VNets, entre les VNets, ou vers des réseaux externes. Chaque table de routage contient un ensemble de règles, appelées routes, qui spécifient comment les paquets doivent être routés en fonction de leurs adresses IP de destination.

Les Routes définies par l'utilisateur (UDR) dans Azure sont des routes personnalisées que vous créez au sein des Tables de routage Azure pour contrôler le flux du trafic réseau au sein et entre les Réseaux Virtuels Azure (VNets), et vers des connexions externes. Les UDR vous donnent la flexibilité de diriger le trafic réseau selon vos besoins spécifiques, en remplaçant les décisions de routage par défaut d'Azure.

Ces routes sont particulièrement utiles pour les scénarios où vous devez router le trafic via un appareil virtuel, imposer un chemin spécifique pour des raisons de sécurité ou de conformité aux politiques, ou intégrer des réseaux sur site.

Exemple

  • Supposons que vous ayez déployé un Appareil Virtuel de Réseau (NVA) pour inspecter le trafic entre les sous-réseaux au sein d'un VNet. Vous pouvez créer une UDR qui dirige tout le trafic d'un sous-réseau vers un autre sous-réseau à travers le NVA. Cette UDR garantit que le NVA inspecte le trafic à des fins de sécurité avant d'atteindre sa destination.

Énumération

# List Route Tables
az network route-table list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List UDRs for a table
az network route-table route list --route-table-name <RouteTableName> --resource-group <ResourceGroupName> --query "[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}" -o table

Azure Private Link est un service dans Azure qui permet l'accès privé aux services Azure en veillant à ce que le trafic entre votre réseau virtuel Azure (VNet) et le service circule entièrement dans le réseau principal d'Azure de Microsoft. Il intègre efficacement le service dans votre VNet. Cette configuration renforce la sécurité en ne exposant pas les données à l'internet public.

Private Link peut être utilisé avec divers services Azure, tels que le stockage Azure, la base de données Azure SQL et les services personnalisés partagés via Private Link. Il offre un moyen sécurisé de consommer des services depuis votre propre VNet ou même depuis différentes souscriptions Azure.

Les groupes de sécurité réseau (NSG) ne s'appliquent pas aux points de terminaison privés, ce qui signifie clairement qu'associer un NSG à un sous-réseau contenant le Private Link n'aura aucun effet.

Exemple

  • Considérez un scénario où vous avez une base de données Azure SQL à laquelle vous souhaitez accéder de manière sécurisée depuis votre VNet. Normalement, cela impliquerait de traverser l'internet public. Avec Private Link, vous pouvez créer un point de terminaison privé dans votre VNet qui se connecte directement au service de base de données Azure SQL. Ce point de terminaison fait apparaître la base de données comme faisant partie de votre propre VNet, accessible via une adresse IP privée, garantissant ainsi un accès sécurisé et privé.

Énumération

# List Private Link Services
z network private-link-service list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List Private Endpoints
az network private-endpoint list --query "[].{name:name, location:location, resourceGroup:resourceGroup, privateLinkServiceConnections:privateLinkServiceConnections}" -o table

Points de terminaison de service Azure

Les points de terminaison de service Azure étendent l'espace d'adressage privé de votre réseau virtuel et l'identité de votre VNet aux services Azure via une connexion directe. En activant les points de terminaison de service, les ressources de votre VNet peuvent se connecter de manière sécurisée aux services Azure, tels que le stockage Azure et la base de données SQL Azure, en utilisant le réseau central d'Azure. Cela garantit que le trafic de la VNet vers le service Azure reste au sein du réseau Azure, offrant ainsi un chemin plus sécurisé et fiable.

Exemple

  • Par exemple, un compte Azure Storage est accessible par défaut via Internet. En activant un point de terminaison de service pour Azure Storage au sein de votre VNet, vous pouvez vous assurer que seul le trafic de votre VNet peut accéder au compte de stockage. Le pare-feu du compte de stockage peut ensuite être configuré pour n'accepter le trafic que de votre VNet.

Énumération

# List Virtual Networks with Service Endpoints
az network vnet list --query "[].{name:name, location:location, serviceEndpoints:serviceEndpoints}" -o table

# List Subnets with Service Endpoints
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, serviceEndpoints:serviceEndpoints}" -o table

Différences entre les points de terminaison de service et les liens privés

Microsoft recommande l'utilisation des Liens Privés dans la documentation:\

Points de terminaison de service :

  • Le trafic de votre VNet vers le service Azure passe par le réseau principal de Microsoft Azure, contournant l'internet public.

  • Le point de terminaison est une connexion directe au service Azure et ne fournit pas d'IP privée pour le service au sein du VNet.

  • Le service lui-même reste accessible via son point de terminaison public depuis l'extérieur de votre VNet, sauf si vous configurez le pare-feu du service pour bloquer un tel trafic.

  • Il s'agit d'une relation un à un entre le sous-réseau et le service Azure.

  • Moins cher que les Liens Privés.

Liens Privés :

  • Private Link mappe les services Azure dans votre VNet via un point de terminaison privé, qui est une interface réseau avec une adresse IP privée au sein de votre VNet.

  • Le service Azure est accessible en utilisant cette adresse IP privée, le faisant apparaître comme faisant partie de votre réseau.

  • Les services connectés via Private Link ne peuvent être accessibles que depuis votre VNet ou les réseaux connectés ; il n'y a pas d'accès à l'internet public pour le service.

  • Il permet une connexion sécurisée aux services Azure ou à vos propres services hébergés dans Azure, ainsi qu'une connexion à des services partagés par d'autres.

  • Il offre un contrôle d'accès plus granulaire via un point de terminaison privé dans votre VNet, par opposition à un contrôle d'accès plus large au niveau du sous-réseau avec les points de terminaison de service.

En résumé, bien que les Points de terminaison de service et les Liens Privés offrent une connectivité sécurisée aux services Azure, les Liens Privés offrent un niveau plus élevé d'isolation et de sécurité en garantissant que les services sont accessibles de manière privée sans les exposer à l'internet public. Les Points de terminaison de service, en revanche, sont plus faciles à configurer pour les cas généraux où un accès simple et sécurisé aux services Azure est requis sans besoin d'une IP privée dans le VNet.

Azure Front Door (AFD) & AFD WAF

Azure Front Door est un point d'entrée évolutif et sécurisé pour la livraison rapide de vos applications web mondiales. Il combine divers services tels que l'équilibrage de charge global, l'accélération de site, le déchargement SSL et les capacités de pare-feu d'application web (WAF) en un seul service. Azure Front Door offre un routage intelligent basé sur la localisation du bord la plus proche de l'utilisateur, garantissant des performances et une fiabilité optimales. De plus, il propose un routage basé sur les URL, l'hébergement de plusieurs sites, l'affinité de session et la sécurité de la couche applicative.

Azure Front Door WAF est conçu pour protéger les applications web contre les attaques basées sur le web sans modification du code en arrière-plan. Il inclut des règles personnalisées et des ensembles de règles gérés pour se protéger contre des menaces telles que les injections SQL, les scripts entre sites et autres attaques courantes.

Exemple

  • Imaginez que vous avez une application distribuée mondialement avec des utilisateurs partout dans le monde. Vous pouvez utiliser Azure Front Door pour router les demandes des utilisateurs vers le centre de données régional le plus proche hébergeant votre application, réduisant ainsi la latence, améliorant l'expérience utilisateur et la protégeant des attaques web avec les capacités WAF. Si une région particulière rencontre une panne, Azure Front Door peut automatiquement rediriger le trafic vers le meilleur emplacement suivant, assurant une haute disponibilité.

Énumération

# List Azure Front Door Instances
az network front-door list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

# List Front Door WAF Policies
az network front-door waf-policy list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table

Azure Application Gateway et Azure Application Gateway WAF

Azure Application Gateway est un équilibreur de charge de trafic web qui vous permet de gérer le trafic vers vos applications web. Il offre un équilibrage de charge de couche 7, une terminaison SSL et des capacités de pare-feu d'application web (WAF) dans le contrôleur de livraison d'application (ADC) en tant que service. Les fonctionnalités clés incluent le routage basé sur l'URL, l'affinité de session basée sur les cookies et le déchargement de la couche de sockets sécurisée (SSL), qui sont cruciaux pour les applications nécessitant des capacités d'équilibrage de charge complexes telles que le routage global et le routage basé sur le chemin.

Exemple

  • Considérez un scénario où vous avez un site web de commerce électronique qui comprend plusieurs sous-domaines pour différentes fonctions, comme les comptes utilisateurs et le traitement des paiements. Azure Application Gateway peut router le trafic vers les serveurs web appropriés en fonction du chemin de l'URL. Par exemple, le trafic vers exemple.com/comptes pourrait être dirigé vers le service des comptes utilisateurs, et le trafic vers exemple.com/paiement pourrait être dirigé vers le service de traitement des paiements. Et protéger votre site web contre les attaques en utilisant les capacités du WAF.

Énumération

# List the Web Application Firewall configurations for your Application Gateways
az network application-gateway waf-config list --gateway-name <AppGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, firewallMode:firewallMode, ruleSetType:ruleSetType, ruleSetVersion:ruleSetVersion}" -o table

Azure Hub, Spoke & VNet Peering

VNet Peering est une fonctionnalité de réseau dans Azure qui permet à différents réseaux virtuels (VNets) d'être connectés directement et de manière transparente. Grâce au VNet peering, les ressources dans un VNet peuvent communiquer avec les ressources dans un autre VNet en utilisant des adresses IP privées, comme s'ils étaient dans le même réseau. Le VNet Peering peut également être utilisé avec des réseaux sur site en configurant un VPN site à site ou Azure ExpressRoute.

Azure Hub and Spoke est une topologie de réseau utilisée dans Azure pour gérer et organiser le trafic réseau. Le "hub" est un point central qui contrôle et route le trafic entre différents "spokes". Le hub contient généralement des services partagés tels que des appliances virtuelles réseau (NVAs), la passerelle VPN Azure, le pare-feu Azure ou Azure Bastion. Les "spokes" sont des VNets qui hébergent des charges de travail et se connectent au hub en utilisant le VNet peering, leur permettant de tirer parti des services partagés dans le hub. Ce modèle favorise une disposition réseau claire, réduisant la complexité en centralisant les services communs que plusieurs charges de travail à travers différents VNets peuvent utiliser.

Le VNET pairing n'est pas transitif dans Azure, ce qui signifie que si le spoke 1 est connecté au spoke 2 et que le spoke 2 est connecté au spoke 3, alors le spoke 1 ne peut pas parler directement au spoke 3.

Exemples

  • Imaginez une entreprise avec des départements séparés tels que Ventes, RH et Développement, chacun avec son propre VNet (les spokes). Ces VNets ont besoin d'accéder à des ressources partagées telles qu'une base de données centrale, un pare-feu et une passerelle Internet, qui sont tous situés dans un autre VNet (le hub). En utilisant le modèle Hub and Spoke, chaque département peut se connecter de manière sécurisée aux ressources partagées via le VNet du hub sans exposer ces ressources à Internet public ou créer une structure réseau complexe avec de nombreuses connexions.

Énumération

# List all VNets in your subscription
az network vnet list --query "[].{name:name, location:location, addressSpace:addressSpace}" -o table

# List VNet peering connections for a given VNet
az network vnet peering list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, peeringState:peeringState, remoteVnetId:remoteVnetId}" -o table

# List Shared Resources (e.g., Azure Firewall) in the Hub
az network firewall list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

VPN de site à site

Un VPN de site à site dans Azure vous permet de connecter votre réseau sur site à votre réseau virtuel Azure (VNet), permettant aux ressources telles que les VM dans Azure d'apparaître comme si elles étaient sur votre réseau local. Cette connexion est établie via un passerelle VPN qui chiffre le trafic entre les deux réseaux.

Exemple

  • Une entreprise avec son siège principal situé à New York dispose d'un centre de données sur site qui doit se connecter de manière sécurisée à son VNet dans Azure, qui héberge ses charges de travail virtualisées. En configurant un VPN de site à site, l'entreprise peut garantir une connectivité chiffrée entre les serveurs sur site et les VM Azure, permettant aux ressources d'être accessibles de manière sécurisée dans les deux environnements comme s'ils étaient sur le même réseau local.

Énumération

# List VPN Gateways
az network vnet-gateway list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table

# List VPN Connections
az network vpn-connection list --gateway-name <VpnGatewayName> --resource-group <ResourceGroupName> --query "[].{name:name, connectionType:connectionType, connectionStatus:connectionStatus}" -o table

Azure ExpressRoute

Azure ExpressRoute est un service qui fournit une connexion privée, dédiée et haut débit entre votre infrastructure sur site et les centres de données Azure. Cette connexion est établie via un fournisseur de connectivité, contournant l'internet public et offrant plus de fiabilité, des vitesses plus rapides, des latences plus faibles et une sécurité plus élevée que les connexions internet classiques.

Exemple

  • Une société multinationale nécessite une connexion constante et fiable à ses services Azure en raison du volume élevé de données et du besoin de débit élevé. La société opte pour Azure ExpressRoute pour connecter directement son centre de données sur site à Azure, facilitant les transferts de données à grande échelle, tels que les sauvegardes quotidiennes et l'analyse de données en temps réel, avec une confidentialité et une vitesse améliorées.

Énumération

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Dernière mise à jour