Az - Azure Network

Impara l'hacking di AWS da zero a eroe con htARTE (Esperto Red Team di HackTricks su AWS)!

Altri modi per supportare HackTricks:

Informazioni di Base

Le reti all'interno di Azure funzionano come parte integrante della sua piattaforma di cloud computing, consentendo la connessione e la comunicazione tra vari servizi e risorse di Azure. L'architettura di rete in Azure è progettata per essere altamente scalabile, sicura e personalizzabile.

Al suo nucleo, Azure fornisce una rete virtuale (VNet) che consente agli utenti di creare reti isolate all'interno del cloud di Azure. All'interno di queste VNets, risorse come macchine virtuali, applicazioni e database possono essere ospitate e gestite in modo sicuro. La rete in Azure supporta sia la comunicazione all'interno del cloud (tra i servizi di Azure) che la connessione a reti esterne e a Internet.

La sicurezza è un aspetto critico della rete Azure, con vari strumenti e servizi disponibili per proteggere i dati, gestire l'accesso e garantire la conformità. Queste misure di sicurezza includono firewall, gruppi di sicurezza di rete e capacità di crittografia, consentendo un elevato controllo sul traffico e sull'accesso.

Nel complesso, le capacità di rete di Azure sono progettate per offrire flessibilità, consentendo agli utenti di creare un ambiente di rete che soddisfi le specifiche esigenze delle proprie applicazioni e carichi di lavoro, mantenendo un forte emphasis sulla sicurezza e l'affidabilità.

Rete Virtuale (VNET) e Sottoreti

Una VNet in Azure è essenzialmente una rappresentazione della tua rete nel cloud. Si tratta di un'isolazione logica del cloud di Azure dedicata al tuo abbonamento. Una VNet ti consente di creare e gestire reti private virtuali (VPN) in Azure e può essere utilizzata per ospitare e gestire vari tipi di risorse di Azure, come macchine virtuali (VM), database e servizi applicativi.

Le VNets ti forniscono controllo completo sulle impostazioni di rete, inclusi intervalli di indirizzi IP, creazione di sottoreti, tabelle di route e gateway di rete.

Una sottorete è un intervallo di indirizzi IP nella tua VNet. Puoi dividere una VNet in più sottoreti per organizzazione e sicurezza. Ogni sottorete in una VNet può essere utilizzata per isolare e raggruppare risorse in base alla tua architettura di rete e applicazioni.

Inoltre, le sottoreti ti consentono di segmentare la tua VNet in una o più sottoreti, fornendo un intervallo di indirizzi IP che le risorse possono utilizzare.

Esempio

  • Supponiamo di avere una VNet chiamata MyVNet con un intervallo di indirizzi IP di 10.0.0.0/16. Puoi creare una sottorete all'interno di questa VNet, diciamo Subnet-1, con un intervallo di indirizzi IP di 10.0.0.0/24 per ospitare i tuoi server web. Un'altra sottorete, Subnet-2 con un intervallo di 10.0.1.0/24, potrebbe essere utilizzata per i tuoi server di database. Questa segmentazione consente una gestione efficiente e controlli di sicurezza all'interno della rete.

Enumerazione

Per elencare tutte le VNets e le sottoreti in un account Azure, è possibile utilizzare l'Interfaccia della riga di comando di Azure (CLI). Ecco i passaggi:

# 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

Gruppi di sicurezza di rete (NSG)

In Azure, un Network Security Group (NSG) svolge la funzione principale di filtrare il traffico di rete sia verso che da risorse Azure all'interno di una Rete Virtuale Azure (VNet). Contiene un insieme di regole di sicurezza che dettano attentamente il flusso del traffico di rete.

Gli aspetti chiave di NSG includono:

  • Controllo del traffico: Ogni NSG contiene regole che sono fondamentali nel permettere o ostacolare il traffico di rete in entrata e in uscita associato a varie risorse Azure.

  • Componenti delle regole: Le regole all'interno di un NSG sono molto specifiche, filtrano il traffico in base a criteri come indirizzo IP di origine/destinazione, porta e protocollo. Questa specificità consente una gestione dettagliata del traffico di rete.

  • Potenziamento della sicurezza: Assicurando che solo il traffico autorizzato possa entrare o uscire dalle risorse Azure, gli NSG svolgono un ruolo cruciale nel rafforzare la postura di sicurezza dell'infrastruttura di rete.

Esempio

  • Immagina di avere un NSG chiamato MyNSG applicato a un subnet o a una specifica macchina virtuale all'interno della tua VNet. Puoi creare regole come:

  • Una regola in entrata che permette il traffico HTTP (porta 80) da qualsiasi origine ai tuoi server web.

  • Una regola in uscita che permette solo il traffico SQL (porta 1433) a un determinato intervallo di indirizzi IP di destinazione.

Enumerazione

# 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

Azure Firewall

Azure Firewall è un servizio di sicurezza di rete gestito basato su cloud che protegge le risorse della tua Rete Virtuale Azure. È un firewall completamente stateful come servizio con funzionalità di disponibilità elevata e scalabilità integrate.

Azure Firewall fornisce funzionalità più avanzate rispetto agli NSG, tra cui filtraggio a livello di applicazione, filtraggio a livello di rete, filtraggio basato su intelligence sulle minacce e integrazione con Azure Monitor per il logging e le analisi. Può filtrare il traffico in uscita, in entrata, da spoke a spoke, VPN e ExpressRoute. Le regole del firewall possono essere create in base a FQDN (Fully Qualified Domain Name), indirizzi IP e porte.

Differenze tra Azure Firewall e NSG

  1. Ambito:

  • NSG: Funziona a livello di subnet o interfaccia di rete. È progettato per fornire un filtraggio di base del traffico in entrata e in uscita dalle interfacce di rete (NIC), dalle VM o dalle subnet.

  • Azure Firewall: Opera a livello di VNet, offrendo un ambito di protezione più ampio. È progettato per proteggere le risorse della tua rete virtuale e gestire il traffico in entrata e in uscita dalla VNet.

  1. Capacità:

  • NSG: Fornisce funzionalità di filtraggio di base basate su indirizzo IP, porta e protocollo. Non supporta funzionalità avanzate come l'ispezione a livello di applicazione o l'intelligenza sulle minacce.

  • Azure Firewall: Offre funzionalità avanzate come il filtraggio del traffico a livello di applicazione (Livello 7), il filtraggio basato su intelligence sulle minacce, il filtraggio del traffico di rete e altro ancora. Supporta anche più indirizzi IP pubblici.

  1. Casi d'uso:

  • NSG: Ideale per il filtraggio di base del traffico a livello di rete.

  • Azure Firewall: Adatto per scenari di filtraggio più complessi in cui è necessario il controllo a livello di applicazione, il logging e l'intelligenza sulle minacce.

  1. Gestione e Monitoraggio:

  • NSG: Offre logging di base e integrazione con Azure Monitor.

  • Azure Firewall: Fornisce funzionalità avanzate di logging e analisi tramite Azure Monitor, essenziali per comprendere la natura e il pattern del traffico.

Enumerazione

# 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

Network Virtual Appliance (NVA)

Un'applicazione virtuale di rete (NVA) in Azure è un'applicazione virtuale che esegue funzioni di rete all'interno di una rete virtuale. Le NVA sono tipicamente utilizzate per funzioni di rete che non sono nativamente disponibili in Azure o quando è richiesta una maggiore personalizzazione. Sono essenzialmente VM che eseguono applicazioni o servizi di rete, come firewall, ottimizzatori WAN o bilanciatori di carico.

Le NVA sono utilizzate per compiti di routing complessi, sicurezza e gestione del traffico di rete. Possono essere distribuite da Marketplace di Azure, dove molti fornitori di terze parti offrono le proprie applicazioni pronte per l'integrazione negli ambienti Azure.

Esempio

  • Un'organizzazione può distribuire un NVA in Azure per creare una soluzione firewall personalizzata. Questo NVA potrebbe eseguire un software firewall di terze parti, fornendo funzionalità avanzate come rilevamento delle intrusioni, ispezione dei pacchetti o connettività VPN. L'NVA può essere configurato per ispezionare e filtrare il traffico che lo attraversa, garantendo che siano in atto misure di sicurezza avanzate secondo le politiche dell'organizzazione.

Enumerazione

# 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

Tabelle di routing di Azure e Route definite dall'utente (UDR)

Le Tabelle di routing di Azure sono una funzionalità all'interno di Microsoft Azure che permette il controllo del routing del traffico di rete all'interno delle Reti Virtuali di Azure (VNets). Fondamentalmente, definiscono come i pacchetti vengono inoltrati tra subnet all'interno delle VNets, tra le VNets o verso reti esterne. Ogni tabella di routing contiene un insieme di regole, note come route, che specificano come i pacchetti dovrebbero essere instradati in base ai loro indirizzi IP di destinazione.

Le Route definite dall'utente (UDR) in Azure sono route personalizzate che crei all'interno delle Tabelle di routing di Azure per controllare il flusso del traffico di rete all'interno e tra le Reti Virtuali di Azure (VNets) e verso connessioni esterne. Le UDR ti danno la flessibilità di indirizzare il traffico di rete secondo i tuoi requisiti specifici, sovrascrivendo le decisioni di routing predefinite di Azure.

Queste route sono particolarmente utili per scenari in cui è necessario instradare il traffico attraverso un'applicazione virtuale, imporre un percorso specifico per motivi di sicurezza o conformità alle normative, o integrarsi con reti locali.

Esempio

  • Supponiamo tu abbia implementato un Dispositivo Virtuale di Rete (NVA) per ispezionare il traffico tra le subnet all'interno di una VNet. Puoi creare una UDR che indirizzi tutto il traffico da una subnet a un'altra subnet affinché passi attraverso l'NVA. Questa UDR garantisce che l'NVA ispezioni il traffico per motivi di sicurezza prima di raggiungere la sua destinazione.

Enumerazione

# 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 è un servizio in Azure che consente l'accesso privato ai servizi Azure garantendo che il traffico tra la tua rete virtuale Azure (VNet) e il servizio viaggi interamente all'interno della rete principale di Azure di Microsoft. Porta efficacemente il servizio nella tua VNet. Questa configurazione migliora la sicurezza non esponendo i dati a Internet pubblico.

Private Link può essere utilizzato con vari servizi Azure, come Azure Storage, Azure SQL Database e servizi personalizzati condivisi tramite Private Link. Fornisce un modo sicuro per consumare servizi all'interno della propria VNet o anche da diverse sottoscrizioni Azure.

Gli NSG non si applicano agli endpoint privati, il che significa chiaramente che associare un NSG a un subnet che contiene il Private Link non avrà alcun effetto.

Esempio

  • Considera uno scenario in cui hai un Azure SQL Database a cui desideri accedere in modo sicuro dalla tua VNet. Normalmente, questo potrebbe comportare il transito su Internet pubblico. Con Private Link, puoi creare un endpoint privato nella tua VNet che si connette direttamente al servizio Azure SQL Database. Questo endpoint fa apparire il database come se facesse parte della tua stessa VNet, accessibile tramite un indirizzo IP privato, garantendo così un accesso sicuro e privato.

Enumerazione

# 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

Punti di servizio di Azure

I punti di servizio di Azure estendono lo spazio degli indirizzi privati della tua rete virtuale e l'identità della tua VNet ai servizi di Azure tramite una connessione diretta. Abilitando i punti di servizio, le risorse nella tua VNet possono connettersi in modo sicuro ai servizi di Azure, come Azure Storage e Azure SQL Database, utilizzando la rete principale di Azure. Ciò garantisce che il traffico dalla VNet al servizio di Azure rimanga all'interno della rete di Azure, offrendo un percorso più sicuro e affidabile.

Esempio

  • Ad esempio, un account Azure Storage è di default accessibile tramite internet pubblico. Abilitando un punto di servizio per Azure Storage all'interno della tua VNet, puoi garantire che solo il traffico dalla tua VNet possa accedere all'account di archiviazione. Il firewall dell'account di archiviazione può quindi essere configurato per accettare solo il traffico dalla tua VNet.

Enumerazione

# 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

Microsoft raccomanda l'uso dei Link Privati nella documentazione:\

Endpoint di Servizio:

  • Il traffico dal tuo VNet al servizio Azure viaggia sulla rete principale di Microsoft Azure, evitando l'uso di internet pubblico.

  • L'endpoint è una connessione diretta al servizio Azure e non fornisce un IP privato per il servizio all'interno del VNet.

  • Il servizio stesso è ancora accessibile tramite il suo endpoint pubblico da fuori il tuo VNet a meno che tu non configuri il firewall del servizio per bloccare tale traffico.

  • Si tratta di una relazione uno a uno tra il subnet e il servizio Azure.

  • Meno costoso rispetto ai Link Privati.

Link Privati:

  • Il Link Privato mappa i servizi Azure nel tuo VNet tramite un endpoint privato, che è un'interfaccia di rete con un indirizzo IP privato all'interno del tuo VNet.

  • Il servizio Azure è accessibile utilizzando questo indirizzo IP privato, facendo apparire come se facesse parte della tua rete.

  • I servizi connessi tramite Link Privati possono essere accessibili solo dal tuo VNet o dalle reti collegate; non c'è accesso a internet pubblico per il servizio.

  • Consente una connessione sicura ai servizi Azure o ai tuoi servizi ospitati in Azure, nonché una connessione ai servizi condivisi da altri.

  • Fornisce un controllo degli accessi più granulare tramite un endpoint privato nel tuo VNet, rispetto a un controllo degli accessi più ampio a livello di subnet con gli endpoint di servizio.

In sintesi, mentre sia gli Endpoint di Servizio che i Link Privati forniscono una connettività sicura ai servizi Azure, i Link Privati offrono un livello più elevato di isolamento e sicurezza garantendo che i servizi siano accessibili privatamente senza esporli a internet pubblico. Gli Endpoint di Servizio, d'altra parte, sono più facili da configurare per casi generali in cui è richiesto un accesso semplice e sicuro ai servizi Azure senza la necessità di un IP privato nel VNet.

Azure Front Door (AFD) & AFD WAF

Azure Front Door è un punto di ingresso scalabile e sicuro per la consegna rapida delle tue applicazioni web globali. Combina vari servizi come il bilanciamento del carico globale, l'accelerazione del sito, lo scarico SSL e le capacità del Web Application Firewall (WAF) in un unico servizio. Azure Front Door fornisce un instradamento intelligente basato sulla posizione del bordo più vicina all'utente, garantendo prestazioni e affidabilità ottimali. Inoltre, offre instradamento basato su URL, hosting di più siti, affinità di sessione e sicurezza a livello di applicazione.

Azure Front Door WAF è progettato per proteggere le applicazioni web dagli attacchi basati sul web senza modifiche al codice di backend. Include regole personalizzate e set di regole gestite per proteggere contro minacce come l'SQL injection, il cross-site scripting e altri attacchi comuni.

Esempio

  • Immagina di avere un'applicazione distribuita globalmente con utenti in tutto il mondo. Puoi utilizzare Azure Front Door per instradare le richieste degli utenti al data center regionale più vicino che ospita la tua applicazione, riducendo così la latenza, migliorando l'esperienza dell'utente e difendendola dagli attacchi web con le capacità del WAF. Se una particolare regione subisce un'interruzione, Azure Front Door può automaticamente instradare il traffico verso la posizione successiva migliore, garantendo un'elevata disponibilità.

Enumerazione

# 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 e Azure Application Gateway WAF

Azure Application Gateway è un bilanciatore del carico del traffico web che ti consente di gestire il traffico verso le tue applicazioni web. Offre bilanciamento del carico di livello 7, terminazione SSL e capacità di firewall delle applicazioni web (WAF) nel Controller di distribuzione delle applicazioni (ADC) come servizio. Le funzionalità chiave includono il routing basato su URL, l'affinità della sessione basata su cookie e lo scarico del livello di sicurezza dei socket (SSL), che sono cruciali per le applicazioni che richiedono capacità di bilanciamento del carico complesse come il routing globale e il routing basato su percorsi.

Esempio

  • Considera uno scenario in cui hai un sito web di e-commerce che include più sottodomini per funzioni diverse, come account utente e elaborazione dei pagamenti. Azure Application Gateway può instradare il traffico ai server web appropriati in base al percorso dell'URL. Ad esempio, il traffico verso esempio.com/account potrebbe essere indirizzato al servizio degli account utente e il traffico verso esempio.com/pagamento potrebbe essere indirizzato al servizio di elaborazione dei pagamenti. E proteggere il tuo sito web da attacchi utilizzando le capacità del WAF.

Enumerazione

# 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 è una funzionalità di rete in Azure che consente a diversi Virtual Network (VNets) di essere collegati direttamente e senza soluzione di continuità. Attraverso il VNet peering, le risorse in un VNet possono comunicare con le risorse in un altro VNet utilizzando indirizzi IP privati, come se fossero nella stessa rete. Il VNet Peering può essere utilizzato anche con reti locali configurando una VPN sito-sito o Azure ExpressRoute.

Azure Hub e Spoke è una topologia di rete utilizzata in Azure per gestire e organizzare il traffico di rete. Il "hub" è un punto centrale che controlla e instrada il traffico tra diversi "spoke". L'hub contiene tipicamente servizi condivisi come dispositivi virtuali di rete (NVAs), Azure VPN Gateway, Azure Firewall o Azure Bastion. Gli "spoke" sono VNets che ospitano carichi di lavoro e si connettono all'hub utilizzando il VNet peering, consentendo loro di sfruttare i servizi condivisi all'interno dell'hub. Questo modello favorisce una disposizione pulita della rete, riducendo la complessità centralizzando i servizi comuni che più carichi di lavoro in diversi VNets possono utilizzare.

Il VNET pairing non è transitivo in Azure, il che significa che se lo spoke 1 è connesso allo spoke 2 e lo spoke 2 è connesso allo spoke 3, allora lo spoke 1 non può parlare direttamente con lo spoke 3.

Esempi

  • Immagina un'azienda con dipartimenti separati come Vendite, HR e Sviluppo, ciascuno con il proprio VNet (gli spoke). Questi VNets richiedono accesso a risorse condivise come un database centrale, un firewall e un gateway internet, che sono tutti situati in un altro VNet (l'hub). Utilizzando il modello Hub e Spoke, ogni dipartimento può connettersi in modo sicuro alle risorse condivise attraverso l'hub VNet senza esporre tali risorse a Internet pubblico o creare una struttura di rete complessa con numerose connessioni.

Enumerazione

# 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 Sito-Sito

Un VPN Sito-Sito in Azure ti permette di connettere la tua rete locale alla tua Rete Virtuale Azure (VNet), consentendo alle risorse come le VM all'interno di Azure di apparire come se fossero nella tua rete locale. Questa connessione è stabilita attraverso un gateway VPN che crittografa il traffico tra le due reti.

Esempio

  • Un'azienda con il suo ufficio principale a New York ha un data center in loco che deve connettersi in modo sicuro alla sua VNet in Azure, che ospita i suoi carichi di lavoro virtualizzati. Configurando un VPN Sito-Sito, l'azienda può garantire una connettività crittografata tra i server in loco e le VM di Azure, consentendo alle risorse di essere accessibili in modo sicuro in entrambi gli ambienti come se fossero nella stessa rete locale.

Enumerazione

# 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 è un servizio che fornisce una connessione privata, dedicata e ad alta velocità tra la tua infrastruttura on-premises e i data center di Azure. Questa connessione avviene tramite un fornitore di connettività, evitando l'uso dell'internet pubblica e offrendo maggiore affidabilità, velocità più elevate, latenze inferiori e una sicurezza superiore rispetto alle connessioni internet tipiche.

Esempio

  • Una società multinazionale necessita di una connessione coerente e affidabile ai suoi servizi Azure a causa dell'alto volume di dati e della necessità di un'elevata larghezza di banda. L'azienda opta per Azure ExpressRoute per connettere direttamente il proprio data center on-premises ad Azure, facilitando trasferimenti di dati su larga scala, come backup giornalieri e analisi dei dati in tempo reale, con maggiore privacy e velocità.

Enumerazione

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
Impara l'hacking su AWS da zero a eroe con htARTE (Esperto Red Team di HackTricks su AWS)!

Altri modi per supportare HackTricks:

Last updated