Translated ['', 'src/pentesting-cloud/azure-security/az-services/vms/az-

This commit is contained in:
Translator
2026-01-21 21:36:41 +00:00
parent a9f13c1520
commit 3e6299e6a9
@@ -1,28 +1,28 @@
# Az - Azure Network
# Az - Rede Azure
{{#include ../../../../banners/hacktricks-training.md}}
## Informações Básicas
Azure fornece **redes virtuais (VNet)** que permitem aos usuários criar **redes isoladas** dentro da nuvem Azure. Dentro dessas VNets, recursos como máquinas virtuais, aplicativos, bancos de dados... podem ser hospedados e gerenciados de forma segura. A rede no Azure suporta tanto a comunicação dentro da nuvem (entre serviços Azure) quanto a conexão com redes externas e a internet.\
Além disso, é possível **conectar** VNets com outras VNets e com redes locais.
Azure fornece **virtual networks (VNet)** que permitem aos usuários criar **redes isoladas** dentro da nuvem Azure. Dentro dessas VNets, recursos como máquinas virtuais, aplicações, bancos de dados... podem ser hospedados e gerenciados com segurança. O networking no Azure suporta tanto a comunicação dentro da nuvem (entre serviços Azure) quanto a conexão com redes externas e a internet.\
Além disso, é possível **conectar** VNets com outras VNets e com redes on-premises.
## Rede Virtual (VNET) e Sub-redes
## Rede Virtual (VNet) & Sub-redes
Uma Rede Virtual do Azure (VNet) é uma representação da sua própria rede na nuvem, proporcionando **isolamento lógico** dentro do ambiente Azure dedicado à sua assinatura. VNets permitem que você provisiona e gerencie redes privadas virtuais (VPNs) no Azure, hospedando recursos como Máquinas Virtuais (VMs), bancos de dados e serviços de aplicativos. Elas oferecem **controle total sobre as configurações de rede**, incluindo faixas de endereços IP, criação de sub-redes, tabelas de roteamento e gateways de rede.
Uma Azure Virtual Network (VNet) é a representação da sua própria rede na nuvem, fornecendo **isolamento lógico** dentro do ambiente Azure dedicado à sua assinatura. VNets permitem provisionar e gerenciar virtual private networks (VPNs) no Azure, hospedando recursos como Virtual Machines (VMs), bancos de dados e application services. Elas oferecem **controle total sobre as configurações de rede**, incluindo intervalos de endereços IP, criação de subnets, route tables e network gateways.
**Sub-redes** são subdivisões dentro de uma VNet, definidas por faixas de **endereços IP** específicas. Ao segmentar uma VNet em várias sub-redes, você pode organizar e proteger recursos de acordo com sua arquitetura de rede.\
Por padrão, todas as sub-redes dentro da mesma Rede Virtual do Azure (VNet) **podem se comunicar entre si** sem restrições.
**Subnets** são subdivisões dentro de uma VNet, definidas por **intervalos de endereços IP** específicos. Ao segmentar uma VNet em múltiplas subnets, você pode organizar e proteger recursos de acordo com sua arquitetura de rede.\
Por padrão, todas as subnets dentro da mesma Azure Virtual Network (VNet) **podem se comunicar entre si** sem quaisquer restrições.
**Exemplo:**
- `MyVNet` com uma faixa de endereços IP de 10.0.0.0/16.
- **Sub-rede-1:** 10.0.0.0/24 para servidores web.
- **Sub-rede-2:** 10.0.1.0/24 para servidores de banco de dados.
- `MyVNet` with an IP address range of 10.0.0.0/16.
- **Subnet-1:** 10.0.0.0/24 for web servers.
- **Subnet-2:** 10.0.1.0/24 for database servers.
### Enumeração
Para listar todas as VNets e sub-redes em uma conta Azure, você pode usar a Interface de Linha de Comando do Azure (CLI). Aqui estão os passos:
Para listar todas as VNets e subnets em uma conta Azure, você pode usar o Azure Command-Line Interface (CLI). Siga estes passos:
{{#tabs }}
{{#tab name="az cli" }}
@@ -47,16 +47,16 @@ Select-Object Name, AddressPrefix
{{#endtab }}
{{#endtabs }}
## Grupos de Segurança de Rede (NSG)
## Network Security Groups (NSG)
Um **Grupo de Segurança de Rede (NSG)** filtra o tráfego de rede tanto para quanto de recursos do Azure dentro de uma Rede Virtual do Azure (VNet). Ele abriga um conjunto de **regras de segurança** que podem indicar **quais portas abrir para tráfego de entrada e saída** por porta de origem, IP de origem, destino da porta e é possível atribuir uma prioridade (quanto menor o número da prioridade, maior a prioridade).
Um **Network Security Group (NSG)** filtra o tráfego de rede de entrada e saída dos recursos do Azure dentro de uma Azure Virtual Network (VNet). Ele contém um conjunto de **regras de segurança** que podem indicar **quais portas abrir para tráfego inbound e outbound** por porta de origem, IP de origem, porta de destino, e é possível atribuir uma prioridade (quanto menor o número da prioridade, maior a prioridade).
Os NSGs podem ser associados a **sub-redes e NICs.**
NSGs podem ser associadas a **subnets e NICs.**
**Exemplo de regras:**
**Exemplos de regras:**
- Uma regra de entrada permitindo tráfego HTTP (porta 80) de qualquer origem para seus servidores web.
- Uma regra de saída permitindo apenas tráfego SQL (porta 1433) para um intervalo específico de endereços IP de destino.
- Uma regra inbound permitindo tráfego HTTP (porta 80) de qualquer origem para seus servidores web.
- Uma regra outbound permitindo apenas tráfego SQL (porta 1433) para uma faixa específica de endereços IP de destino.
### Enumeração
@@ -71,7 +71,7 @@ az network nsg show --name <nsg-name>
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
# Get NICs and subnets using this NSG
az network nsg show --name MyLowCostVM-nsg --resource-group Resource_Group_1 --query "{subnets: subnets, networkInterfaces: networkInterfaces}"
az network nsg show --name <NSGName> --resource-group <ResourceGroupName> --query "{subnets: subnets, networkInterfaces: networkInterfaces}"
```
{{#endtab }}
{{#tab name="PowerShell" }}
@@ -81,32 +81,35 @@ Get-AzNetworkSecurityGroup | Select-Object Name, Location
Get-AzNetworkSecurityGroup -Name <NSGName> -ResourceGroupName <ResourceGroupName>
# Get NSG rules
(Get-AzNetworkSecurityGroup -ResourceGroupName <NSGName> -Name <ResourceGroupName>).SecurityRules
Get-AzNetworkSecurityGroup -Name <NSGName> -ResourceGroupName <ResourceGroupName> |
Select-Object -ExpandProperty SecurityRules |
Select-Object Name, Priority, Direction, Access, Protocol, SourceAddressPrefix, DestinationAddressPrefix, SourcePortRange, DestinationPortRange
# Get NICs and subnets using this NSG
(Get-AzNetworkSecurityGroup -Name <NSGName> -ResourceGroupName <ResourceGroupName>).Subnets
(Get-AzNetworkSecurityGroup -Name <NSGName> -ResourceGroupName <ResourceGroupName>).NetworkInterfaces
```
{{#endtab }}
{{#endtabs }}
## Azure Firewall
Azure Firewall é um **serviço de segurança de rede gerenciado** no Azure que protege recursos em nuvem inspecionando e controlando o tráfego. É um **firewall com estado** que filtra o tráfego com base em regras para as Camadas 3 a 7, suportando comunicação tanto **dentro do Azure** (tráfego leste-oeste) quanto **para/de redes externas** (tráfego norte-sul). Implantado no **nível da Rede Virtual (VNet)**, fornece proteção centralizada para todas as sub-redes na VNet. O Azure Firewall escala automaticamente para lidar com as demandas de tráfego e garante alta disponibilidade sem exigir configuração manual.
Azure Firewall é um **firewall gerenciado e stateful** que filtra tráfego (L3L7) para fluxos leste-oeste e norte-sul. Implantado no **nível do VNet**, centraliza a inspeção de todas as subnets e autoescala para disponibilidade.
Está disponível em três SKUs**Básico**, **Padrão** e **Premium**, cada um adaptado para necessidades específicas dos clientes:
Available SKUs: **Basic**, **Standard**, and **Premium**:
| Critério/Recurso | Opção 1 | Opção 2 | Opção 3 |
| Criteria/Feature | Option 1 | Option 2 | Option 3 |
| ------------------------------ | ------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------- |
| **Caso de Uso Recomendado** | Pequenas/Médias Empresas (PMEs) com necessidades limitadas | Uso geral em empresas, filtragem de Camadas 37 | Ambientes altamente sensíveis (por exemplo, processamento de pagamentos) |
| **Desempenho** | Até 250 Mbps de throughput | Até 30 Gbps de throughput | Até 100 Gbps de throughput |
| **Inteligência de Ameaças** | Apenas alertas | Alertas e bloqueio (IPs/domínios maliciosos) | Alertas e bloqueio (inteligência de ameaças avançada) |
| **Filtragem L3L7** | Filtragem básica | Filtragem com estado entre protocolos | Filtragem com estado com inspeção avançada |
| **Proteção Avançada contra Ameaças** | Não disponível | Filtragem baseada em inteligência de ameaças | Inclui Sistema de Detecção e Prevenção de Intrusões (IDPS) |
| **Inspeção TLS** | Não disponível | Não disponível | Suporta terminação TLS de entrada/saída |
| **Disponibilidade** | Backend fixo (2 VMs) | Escalonamento automático | Escalonamento automático |
| **Facilidade de Gerenciamento** | Controles básicos | Gerenciado via Firewall Manager | Gerenciado via Firewall Manager |
| **Recommended Use Case** | Pequenas/Médias Empresas (SMBs) com necessidades limitadas | Uso empresarial geral, filtragem Layer 37 | Ambientes altamente sensíveis (por exemplo, processamento de pagamentos) |
| **Performance** | Até 250 Mbps de throughput | Até 30 Gbps de throughput | Até 100 Gbps de throughput |
| **Threat Intelligence** | Apenas alertas | Alertas e bloqueio (IPs/domínios maliciosos) | Alertas e bloqueio (inteligência avançada de ameaças) |
| **L3L7 Filtering** | Filtragem básica | Filtragem stateful entre protocolos | Filtragem stateful com inspeção avançada |
| **Advanced Threat Protection** | Não disponível | Filtragem baseada em inteligência de ameaças | Inclui Sistema de Detecção e Prevenção de Intrusões (IDPS) |
| **TLS Inspection** | Não disponível | Não disponível | Suporta terminação TLS de entrada/saída |
| **Availability** | Backend fixo (2 VMs) | Autoescala | Autoescala |
| **Ease of Management** | Controles básicos | Gerenciado via Firewall Manager | Gerenciado via Firewall Manager |
### Enumeração
### Enumeration
{{#tabs }}
{{#tab name="az cli" }}
@@ -141,11 +144,16 @@ Get-AzFirewall
{{#endtab }}
{{#endtabs }}
## Tabelas de Roteamento do Azure
## Azure Tabelas de Rota
As **Tabelas de Roteamento** do Azure são usadas para controlar o roteamento do tráfego de rede dentro de uma sub-rede. Elas definem regras que especificam como os pacotes devem ser encaminhados, seja para recursos do Azure, para a internet ou para um próximo salto específico, como um Appliance Virtual ou Firewall do Azure. Você pode associar uma tabela de roteamento a uma **sub-rede**, e todos os recursos dentro dessa sub-rede seguirão as rotas na tabela.
Azure **Tabelas de Rota (UDR)** permitem substituir o roteamento padrão definindo prefixos de destino (por exemplo, `10.0.0.0/16` ou `0.0.0.0/0`) e um próximo salto (Virtual Network, Internet, Virtual Network Gateway, or Virtual Appliance).
**Exemplo:** Se uma sub-rede hospeda recursos que precisam rotear o tráfego de saída através de um Appliance Virtual de Rede (NVA) para inspeção, você pode criar uma **rota** em uma tabela de roteamento para redirecionar todo o tráfego (por exemplo, `0.0.0.0/0`) para o endereço IP privado do NVA como o próximo salto.
> As rotas são aplicadas no nível da sub-rede; todas as VMs nessa sub-rede seguem a tabela.
**Exemplo:**
- Para tráfego destinado à Internet, use o padrão `0.0.0.0/0` com **Internet** como próximo salto.
- Para inspecionar tráfego de saída, roteie `0.0.0.0/0` para um IP de Network Virtual Appliance (NVA).
### **Enumeração**
@@ -155,8 +163,11 @@ As **Tabelas de Roteamento** do Azure são usadas para controlar o roteamento do
# List Route Tables
az network route-table list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table
# List routes 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
# List routes for a table (summary)
az network route-table route list --resource-group <ResourceGroupName> --route-table-name <RouteTableName> --query "[].{name:name, addressPrefix:addressPrefix, nextHopType:nextHopType, nextHopIpAddress:nextHopIpAddress}" -o table
# List routes for a table (full)
az network route-table route list --resource-group <ResourceGroupName> --route-table-name <RouteTableName>
```
{{#endtab }}
{{#tab name="PowerShell" }}
@@ -172,16 +183,16 @@ Get-AzRouteTable
## Azure Private Link
Azure Private Link é um serviço no Azure que **permite acesso privado aos serviços do Azure** garantindo que **o tráfego entre sua rede virtual do Azure (VNet) e o serviço viaje inteiramente dentro da rede backbone do Azure da Microsoft**. Ele efetivamente traz o serviço para sua VNet. Essa configuração aumenta a segurança ao não expor os dados à internet pública.
Azure Private Link é um serviço da Azure que **habilita acesso privado a serviços do Azure** ao garantir que **o tráfego entre sua virtual network (VNet) do Azure e o serviço circule inteiramente pela backbone da Azure da Microsoft**. Ele efetivamente traz o serviço para dentro da sua VNet. Essa configuração aumenta a segurança por não expor os dados à internet pública.
Private Link pode ser usado com vários serviços do Azure, como Azure Storage, Azure SQL Database e serviços personalizados compartilhados via Private Link. Ele fornece uma maneira segura de consumir serviços de dentro de sua própria VNet ou até mesmo de diferentes assinaturas do Azure.
Private Link pode ser usado com vários serviços do Azure, como Azure Storage, Azure SQL Database e serviços customizados compartilhados via Private Link. Ele fornece uma maneira segura de consumir serviços a partir da sua própria VNet ou mesmo de diferentes subscriptions do Azure.
> [!CAUTION]
> NSGs não se aplicam a endpoints privados, o que significa claramente que associar um NSG a uma sub-rede que contém o Private Link não terá efeito.
> NSGs do not apply to private endpoints, which clearly means that associating an NSG with a subnet that contains the Private Link will have no effect.
**Exemplo:**
**Example:**
Considere um cenário onde você tem um **Azure SQL Database que deseja acessar de forma segura a partir de sua VNet**. Normalmente, isso poderia envolver a travessia da internet pública. Com o Private Link, você pode criar um **endpoint privado em sua VNet** que se conecta diretamente ao serviço Azure SQL Database. Esse endpoint faz com que o banco de dados pareça parte de sua própria VNet, acessível via um endereço IP privado, garantindo assim acesso seguro e privado.
Considere um cenário onde você tem um **Azure SQL Database que deseja acessar de forma segura a partir da sua VNet**. Normalmente, isso poderia envolver atravessar a internet pública. Com o Private Link, você pode criar um **private endpoint na sua VNet** que se conecta diretamente ao serviço Azure SQL Database. Esse endpoint faz com que o banco de dados pareça ser parte da sua própria VNet, acessível via um endereço IP privado, garantindo assim acesso seguro e privado.
### **Enumeração**
@@ -206,13 +217,60 @@ Get-AzPrivateEndpoint | Select-Object Name, Location, ResourceGroupName, Private
{{#endtab }}
{{#endtabs }}
## Pontos de Extremidade do Serviço Azure
### DNS OverDoS via service Private DNS zone links
Os Pontos de Extremidade do Serviço Azure estendem o espaço de endereço privado da sua rede virtual e a identidade da sua VNet para serviços Azure por meio de uma conexão direta. Ao habilitar os pontos de extremidade de serviço, **recursos na sua VNet podem se conectar com segurança a serviços Azure**, como Azure Storage e Azure SQL Database, usando a rede backbone do Azure. Isso garante que o **tráfego da VNet para o serviço Azure permaneça dentro da rede Azure**, proporcionando um caminho mais seguro e confiável.
When a VNet has a **Virtual Network Link** to a **service Private DNS zone** (e.g., `privatelink.blob.core.windows.net`), Azure **forces hostname resolution** for Private Link registered resources of that service type through the zone. If the zone **lacks the required `A` record** for a resource that workloads still access via its public endpoint, DNS resolution returns **NXDOMAIN** and clients never reach the public IP, causing an **availability DoS** without touching the resource itself.
**Fluxo de abuso (control-plane DoS):**
1. Obter RBAC que permita criar **Private Endpoints** ou modificar **Private DNS zone links**.
2. Criar um Private Endpoint para o mesmo tipo de serviço em outra VNet (o Azure cria automaticamente a service Private DNS zone e a liga a essa VNet).
3. Vincular essa **service Private DNS zone** à VNet da vítima.
4. Como a VNet da vítima agora **força a resolução via a Private DNS zone** e nenhum registro `A` existe para o recurso alvo nessa zone, a resolução de nomes falha e o workload não consegue alcançar o endpoint (ainda público). Isso se aplica a qualquer serviço suportado por Private Link (storage, Key Vault, ACR, Cosmos DB, Function Apps, OpenAI, etc.).
**Descoberta em escala (Azure Resource Graph):**
- VNETs linked to the blob Private DNS zone (forced resolution for PL-registered blob endpoints):
```kusto
resources
| where type == "microsoft.network/privatednszones/virtualnetworklinks"
| extend
zone = tostring(split(id, "/virtualNetworkLinks")[0]),
vnetId = tostring(properties.virtualNetwork.id)
| join kind=inner (
resources
| where type == "microsoft.network/privatednszones"
| where name == "privatelink.blob.core.windows.net"
| project zoneId = id
) on $left.zone == $right.zoneId
| project vnetId
```
- Storage accounts acessíveis por endpoint público mas **sem** Private Endpoint connections (provavelmente vão quebrar se o link acima for adicionado):
```kusto
Resources
| where type == "microsoft.storage/storageaccounts"
| extend publicNetworkAccess = properties.publicNetworkAccess
| extend defaultAction = properties.networkAcls.defaultAction
| extend vnetRules = properties.networkAcls.virtualNetworkRules
| extend ipRules = properties.networkAcls.ipRules
| extend privateEndpoints = properties.privateEndpointConnections
| where publicNetworkAccess == "Enabled"
| where defaultAction == "Deny"
| where (isnull(privateEndpoints) or array_length(privateEndpoints) == 0)
| extend allowedVnets = iif(isnull(vnetRules), 0, array_length(vnetRules))
| extend allowedIps = iif(isnull(ipRules), 0, array_length(ipRules))
| where allowedVnets > 0 or allowedIps > 0
| project id, name, vnetRules, ipRules
```
## Azure Service Endpoints
Azure Service Endpoints estendem o espaço de endereços privados da sua rede virtual e a identidade da sua VNet para Azure services por meio de uma conexão direta. Ao habilitar Service Endpoints, **recursos na sua VNet podem conectar-se com segurança a Azure services**, como Azure Storage e Azure SQL Database, pela Azure backbone network. Isso é particularmente útil quando combinado com Network Security Groups (NSGs) para controle granular de tráfego.
**Exemplo:**
Por exemplo, uma conta de **Azure Storage** por padrão é acessível pela internet pública. Ao habilitar um **ponto de extremidade de serviço para Azure Storage dentro da sua VNet**, você pode garantir que apenas o tráfego da sua VNet possa acessar a conta de armazenamento. O firewall da conta de armazenamento pode então ser configurado para aceitar tráfego apenas da sua VNet.
- Com uma **Storage** Account e Service Endpoint **habilitados** em uma VNet, é possível permitir tráfego de entrada **apenas de uma VNet no storage account firewall**, forçando uma **conexão segura** sem precisar de acesso por IP público para o serviço de storage.
Service Endpoints **não exigem endereços IP privados** para os serviços e, em vez disso, dependem do Azure backbone para conectividade segura. Eles são **mais fáceis de configurar** em comparação com Private Links, mas **não fornecem o mesmo nível de isolamento e granularidade** que Private Links.
### **Enumeração**
@@ -223,7 +281,10 @@ Por exemplo, uma conta de **Azure Storage** por padrão é acessível pela inter
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
az network vnet subnet list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, serviceEndpoints:serviceEndpoints}"
# List Service Endpoints for a Subnet
az network vnet subnet show --resource-group <ResourceGroupName> --vnet-name <VNetName> --name <SubnetName> --query "serviceEndpoints"
```
{{#endtab }}
{{#tab name="PowerShell" }}
@@ -237,58 +298,72 @@ Get-AzVirtualNetwork
{{#endtab }}
{{#endtabs }}
### Diferenças Entre Endpoints de Serviço e Links Privados
### Diferenças Entre Service Endpoints e Private Links
A Microsoft recomenda o uso de Links Privados na [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vnet-integration-for-azure-services#compare-private-endpoints-and-service-endpoints):
Microsoft recomenda o uso de Private Links na [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vnet-integration-for-azure-services#compare-private-endpoints-and-service-endpoints):
<figure><img src="../../../../images/image (25).png" alt=""><figcaption></figcaption></figure>
**Endpoints de Serviço:**
**Service Endpoints:**
- O tráfego da sua VNet para o serviço Azure viaja pela rede backbone da Microsoft Azure, contornando a internet pública.
- O tráfego da sua VNet para o serviço Azure trafega pela rede backbone da Microsoft Azure, contornando a internet pública.
- O endpoint é uma conexão direta ao serviço Azure e não fornece um IP privado para o serviço dentro da VNet.
- O serviço em si ainda é acessível através de seu endpoint público de fora da sua VNet, a menos que você configure o firewall do serviço para bloquear esse tráfego.
- É uma relação um-para-um entre a sub-rede e o serviço Azure.
- Menos caro do que Links Privados.
- O próprio serviço ainda é acessível pelo seu endpoint público fora da sua VNet, a menos que você configure o firewall do serviço para bloquear esse tráfego.
- É uma relação um-para-um entre a subnet e o serviço Azure.
- Menos caro do que Private Links.
**Links Privados:**
**Private Links:**
- O Link Privado mapeia serviços Azure na sua VNet através de um endpoint privado, que é uma interface de rede com um endereço IP privado dentro da sua VNet.
- O serviço Azure é acessado usando este endereço IP privado, fazendo parecer que é parte da sua rede.
- Serviços conectados via Link Privado podem ser acessados apenas da sua VNet ou redes conectadas; não há acesso à internet pública ao serviço.
- Ele permite uma conexão segura a serviços Azure ou seus próprios serviços hospedados no Azure, bem como uma conexão a serviços compartilhados por outros.
- Proporciona um controle de acesso mais granular através de um endpoint privado na sua VNet, em oposição ao controle de acesso mais amplo no nível da sub-rede com endpoints de serviço.
- Private Link mapeia serviços Azure na sua VNet através de um private endpoint, que é uma interface de rede com um endereço IP privado dentro da sua VNet.
- O serviço Azure é acessado usando esse endereço IP privado, fazendo com que ele pareça parte da sua rede.
- Serviços conectados via Private Link podem ser acessados apenas a partir da sua VNet ou redes conectadas; não há acesso pela internet pública ao serviço.
- Isso possibilita uma conexão segura a serviços Azure ou aos seus próprios serviços hospedados em Azure, assim como conexão a serviços compartilhados por terceiros.
- Fornece um controle de acesso mais granular através de um private endpoint na sua VNet, ao contrário do controle de acesso mais amplo no nível de subnet com service endpoints.
Em resumo, enquanto ambos os Endpoints de Serviço e Links Privados fornecem conectividade segura a serviços Azure, **Links Privados oferecem um nível mais alto de isolamento e segurança, garantindo que os serviços sejam acessados de forma privada sem expô-los à internet pública**. Os Endpoints de Serviço, por outro lado, são mais fáceis de configurar para casos gerais onde é necessário um acesso simples e seguro aos serviços Azure sem a necessidade de um IP privado na VNet.
Em resumo, embora tanto Service Endpoints quanto Private Links forneçam conectividade segura aos serviços Azure, **Private Links oferecem um nível maior de isolamento e segurança ao garantir que os serviços sejam acessados de forma privada sem expô-los à internet pública**. Service Endpoints, por outro lado, são mais fáceis de configurar para casos gerais onde é necessário um acesso simples e seguro aos serviços Azure sem a necessidade de um IP privado na VNet.
## Azure Front Door (AFD) & AFD WAF
**Azure Front Door** é um ponto de entrada escalável e seguro para **entrega rápida** de suas aplicações web globais. Ele **combina** vários serviços como balanceamento de carga global, aceleração de site, descarregamento de SSL e capacidades de Firewall de Aplicação Web (WAF) em um único serviço. O Azure Front Door fornece roteamento inteligente com base na **localização de borda mais próxima do usuário**, garantindo desempenho e confiabilidade ideais. Além disso, oferece roteamento baseado em URL, hospedagem em múltiplos sites, afinidade de sessão e segurança em nível de aplicação.
**Azure Front Door** é um ponto de entrada escalável e seguro para a **entrega rápida** das suas aplicações web globais. Ele **combina** vários serviços como **aceleração de aplicações, SSL offloading e segurança na camada de aplicação** (por meio do Web Application Firewall - WAF). É construído com base no conceito de edge POP (Point of Presence) ao redor do mundo para aproximar suas aplicações dos seus usuários.
**Azure Front Door WAF** é projetado para **proteger aplicações web contra ataques baseados na web** sem modificação do código de back-end. Inclui regras personalizadas e conjuntos de regras gerenciadas para proteger contra ameaças como injeção SQL, script entre sites e outros ataques comuns.
> Azure Front Door fornece uma rede globalmente distribuída de edge locations para **rotear e acelerar** o tráfego de entrada para suas aplicações web (no Azure ou em outros lugares), melhorar o desempenho e aprimorar a segurança.
**Exemplo:**
Imagine que você tem uma aplicação distribuída globalmente com usuários em todo o mundo. Você pode usar o Azure Front Door para **rotear solicitações de usuários para o data center regional mais próximo** que hospeda sua aplicação, reduzindo assim a latência, melhorando a experiência do usuário e **defendendo-a contra ataques web com as capacidades do WAF**. Se uma região específica sofrer uma interrupção, o Azure Front Door pode automaticamente redirecionar o tráfego para a próxima melhor localização, garantindo alta disponibilidade.
- Para uma plataforma de e-commerce global com usuários em todo o mundo, **Azure Front Door pode armazenar em cache conteúdo estático em edge locations** e oferecer **SSL offloading**, reduzindo a latência e proporcionando uma experiência de usuário mais responsiva. Além disso, ele fornece **WAF** para proteger suas aplicações contra vulnerabilidades web comuns (como SQL injection ou XSS).
### Enumeração
Azure Front Door também oferece **balanceamento de carga inteligente** ao rotear o tráfego para o backend disponível mais próximo com base em sondas de integridade e latência, garantindo desempenho e disponibilidade consistentes. Ao integrar o **WAF**, ajuda a proteger contra ameaças web comuns.
### **Enumeração**
{{#tabs }}
{{#tab name="az cli" }}
```bash
# List Azure Front Door Instances
# List Azure Front Door profiles
az afd profile list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table
# List AFD endpoints
az afd endpoint list --profile-name <ProfileName> --resource-group <ResourceGroupName> --query "[].{name:name, hostName:hostName, state:resourceState}" -o table
# Classic Azure Front Door (v1) profiles
az network front-door list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table
# List Front Door WAF Policies
# Classic Azure Front Door WAF policies
az network front-door waf-policy list --query "[].{name:name, resourceGroup:resourceGroup, location:location}" -o table
```
{{#endtab }}
{{#tab name="PowerShell" }}
```bash
# List Azure Front Door Instances
# List Azure Front Door profiles
Get-AzFrontDoorCdnProfile | Select-Object Name, Location, ResourceGroupName
# List AFD endpoints
Get-AzFrontDoorCdnEndpoint -ProfileName <ProfileName> -ResourceGroupName <ResourceGroupName> | Select-Object Name, HostName, ResourceState
# Classic Azure Front Door (v1) profiles
Get-AzFrontDoor
# List Front Door WAF Policies
# Classic Azure Front Door WAF policies
Get-AzFrontDoorWafPolicy -Name <policyName> -ResourceGroupName <resourceGroupName>
```
{{#endtab }}
@@ -296,14 +371,14 @@ Get-AzFrontDoorWafPolicy -Name <policyName> -ResourceGroupName <resourceGroupNam
## Azure Application Gateway e Azure Application Gateway WAF
Azure Application Gateway é um **balanceador de carga de tráfego web** que permite gerenciar o tráfego para suas **aplicações** web. Ele oferece **balanceamento de carga de Camada 7, terminação SSL e capacidades de firewall de aplicação web (WAF)** no Controlador de Entrega de Aplicação (ADC) como um serviço. As principais características incluem roteamento baseado em URL, afinidade de sessão baseada em cookie e descarregamento de camada de soquete seguro (SSL), que são cruciais para aplicações que requerem capacidades complexas de balanceamento de carga, como roteamento global e roteamento baseado em caminho.
Azure Application Gateway é um **balanceador de carga de tráfego web** que permite gerenciar o tráfego para suas **aplicações web**. Oferece **balanceamento de carga na Camada 7, terminação SSL e capacidades de firewall de aplicações web (WAF)** no Application Delivery Controller (ADC) como serviço. Recursos principais incluem roteamento baseado em URL, afinidade de sessão baseada em cookies e offloading de secure sockets layer (SSL), que são cruciais para aplicações que requerem capacidades complexas de balanceamento de carga como roteamento global e roteamento baseado em caminho.
**Exemplo:**
Considere um cenário onde você tem um site de e-commerce que inclui múltiplos subdomínios para diferentes funções, como contas de usuário e processamento de pagamentos. Azure Application Gateway pode **rotear o tráfego para os servidores web apropriados com base no caminho da URL**. Por exemplo, o tráfego para `example.com/accounts` poderia ser direcionado para o serviço de contas de usuário, e o tráfego para `example.com/pay` poderia ser direcionado para o serviço de processamento de pagamentos.\
E **proteger seu site contra ataques usando as capacidades do WAF.**
Considere um cenário em que você tem um site de e-commerce que inclui múltiplos subdomínios para funções diferentes, como contas de usuário e processamento de pagamentos. Azure Application Gateway pode **rotear o tráfego para os servidores web apropriados com base no caminho da URL**. Por exemplo, o tráfego para `example.com/accounts` pode ser direcionado para o serviço de contas de usuário, e o tráfego para `example.com/pay` pode ser direcionado para o serviço de processamento de pagamentos.\
E **proteja seu site de ataques usando as capacidades do WAF.**
### **Enumeração**
### **Enumeration**
{{#tabs }}
{{#tab name="az cli" }}
@@ -320,20 +395,20 @@ az network application-gateway waf-config list --gateway-name <AppGatewayName> -
{{#endtab }}
{{#endtabs }}
## Azure Hub, Spoke e Peering de VNet
## VNet Peering & HUB and Spoke topologias
**Peering de VNet** é um recurso de rede no Azure que **permite que diferentes Redes Virtuais (VNets) sejam conectadas diretamente e de forma contínua**. Através do peering de VNet, recursos em uma VNet podem se comunicar com recursos em outra VNet usando endereços IP privados, **como se estivessem na mesma rede**.\
**O Peering de VNet também pode ser usado com redes locais** configurando uma VPN site-a-site ou Azure ExpressRoute.
### VNet Peering
**Azure Hub e Spoke** é uma topologia de rede usada no Azure para gerenciar e organizar o tráfego de rede. **O "hub" é um ponto central que controla e roteia o tráfego entre diferentes "spokes"**. O hub normalmente contém serviços compartilhados, como appliances virtuais de rede (NVAs), Azure VPN Gateway, Azure Firewall ou Azure Bastion. Os **"spokes" são VNets que hospedam cargas de trabalho e se conectam ao hub usando peering de VNet**, permitindo que aproveitem os serviços compartilhados dentro do hub. Este modelo promove um layout de rede limpo, reduzindo a complexidade ao centralizar serviços comuns que várias cargas de trabalho em diferentes VNets podem usar.
**VNet Peering** é um recurso do Azure que **permite que diferentes Redes Virtuais (Virtual Networks, VNets) sejam conectadas direta e de forma transparente**. Através do VNet Peering, recursos em um VNet podem se comunicar com recursos em outro VNet usando endereços IP privados, **como se estivessem na mesma rede**.\
**VNet Peering também pode ser usado com redes on-prem** configurando um site-to-site VPN ou Azure ExpressRoute.
> [!CAUTION] > **O peering de VNET é não transitivo no Azure**, o que significa que se o spoke 1 estiver conectado ao spoke 2 e o spoke 2 estiver conectado ao spoke 3, então o spoke 1 não pode se comunicar diretamente com o spoke 3.
**Azure Hub and Spoke** é uma arquitetura de rede que utiliza VNet peering para criar um **Hub VNet** central que se conecta a múltiplos **Spoke VNets**. O hub normalmente contém serviços compartilhados (como firewalls, DNS ou Active Directory), enquanto os spokes hospedam cargas de trabalho de aplicações. Esse desenho simplifica o gerenciamento, aumenta a segurança por meio de controles centralizados e reduz redundância.
**Exemplo:**
**Example:**
Imagine uma empresa com departamentos separados como Vendas, RH e Desenvolvimento, **cada um com sua própria VNet (os spokes)**. Essas VNets **precisam de acesso a recursos compartilhados** como um banco de dados central, um firewall e um gateway de internet, que estão todos localizados em **outra VNet (o hub)**. Usando o modelo Hub e Spoke, cada departamento pode **conectar-se de forma segura aos recursos compartilhados através da VNet do hub sem expor esses recursos à internet pública** ou criar uma estrutura de rede complexa com inúmeras conexões.
Uma grande empresa com múltiplos departamentos (Finance, HR, IT) pode criar um **Hub VNet com serviços compartilhados** como firewalls e servidores DNS. Cada departamento pode ter seu próprio Spoke VNet que se conecta ao Hub via peering. Isso permite que os departamentos se comuniquem de forma segura e utilizem serviços compartilhados sem expor seus recursos à internet pública.
### Enumeração
### **Enumeration**
{{#tabs }}
{{#tab name="az cli" }}
@@ -341,8 +416,8 @@ Imagine uma empresa com departamentos separados como Vendas, RH e Desenvolviment
# 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 VNet Peerings
az network vnet peering list --resource-group <ResourceGroupName> --vnet-name <VNetName> --query "[].{name:name, remoteVnetId:remoteVirtualNetwork.id, allowForwardedTraffic:allowForwardedTraffic, allowGatewayTransit:allowGatewayTransit}"
# List Shared Resources (e.g., Azure Firewall) in the Hub
az network firewall list --query "[].{name:name, location:location, resourceGroup:resourceGroup}" -o table
@@ -353,8 +428,8 @@ az network firewall list --query "[].{name:name, location:location, resourceGrou
# List all VNets in your subscription
Get-AzVirtualNetwork
# List VNet peering connections for a given VNet
(Get-AzVirtualNetwork -ResourceGroupName <ResourceGroupName> -Name <VNetName>).VirtualNetworkPeerings
# List VNet Peerings
Get-AzVirtualNetworkPeering -ResourceGroupName <ResourceGroupName> -VirtualNetworkName <VNetName>
# List Shared Resources (e.g., Azure Firewall) in the Hub
Get-AzFirewall
@@ -362,13 +437,13 @@ Get-AzFirewall
{{#endtab }}
{{#endtabs }}
## VPN Site-a-Site
## Site-to-Site VPN
Uma VPN Site-a-Site no Azure permite que você **conecte sua rede local à sua Rede Virtual (VNet) do Azure**, permitindo que recursos como VMs dentro do Azure apareçam como se estivessem em sua rede local. Essa conexão é estabelecida através de um **gateway VPN que criptografa o tráfego** entre as duas redes.
Uma **Site-to-Site VPN** no Azure estabelece uma conexão segura e **persistente entre sua rede on-premises e sua Azure Virtual Network (VNet)**, permitindo que recursos como VMs dentro do Azure apareçam como se estivessem na sua rede local. Essa conexão é estabelecida através de um **VPN gateway que criptografa o tráfego** entre as duas redes.
**Exemplo:**
Uma empresa com seu escritório principal localizado em Nova York possui um data center local que precisa se conectar de forma segura à sua VNet no Azure, que hospeda suas cargas de trabalho virtualizadas. Ao configurar uma **VPN Site-a-Site, a empresa pode garantir conectividade criptografada entre os servidores locais e as VMs do Azure**, permitindo que os recursos sejam acessados de forma segura em ambos os ambientes como se estivessem na mesma rede local.
Uma empresa com escritório central localizado em Nova York possui um data center on-premises que precisa se conectar de forma segura à sua VNet no Azure, que hospeda suas cargas de trabalho virtualizadas. Ao configurar uma **Site-to-Site VPN, a empresa pode garantir conectividade criptografada entre os servidores on-premises e as VMs do Azure**, permitindo que os recursos sejam acessados com segurança em ambos os ambientes como se estivessem na mesma rede local.
### **Enumeração**
@@ -395,11 +470,11 @@ Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <ResourceGroupName>
## Azure ExpressRoute
Azure ExpressRoute é um serviço que fornece uma **conexão privada, dedicada e de alta velocidade entre sua infraestrutura local e os data centers do Azure**. Essa conexão é feita através de um provedor de conectividade, contornando a internet pública e oferecendo mais confiabilidade, velocidades mais rápidas, latências mais baixas e maior segurança do que as conexões típicas da internet.
Azure ExpressRoute é um serviço que fornece uma **conexão privada, dedicada e de alta velocidade entre sua infraestrutura on-premises e os data centers do Azure**. Essa conexão é feita por meio de um provedor de conectividade, contornando a internet pública e oferecendo mais confiabilidade, velocidades maiores, latências mais baixas e maior segurança do que conexões típicas pela internet.
**Exemplo:**
Uma corporação multinacional requer uma **conexão consistente e confiável aos seus serviços do Azure devido ao alto volume de dados** e à necessidade de alta capacidade de transferência. A empresa opta pelo Azure ExpressRoute para conectar diretamente seu data center local ao Azure, facilitando transferências de dados em larga escala, como backups diários e análises de dados em tempo real, com maior privacidade e velocidade.
Uma corporação multinacional necessita de uma **conexão consistente e confiável com seus serviços Azure devido ao alto volume de dados** e à necessidade de alta taxa de transferência. A empresa opta pelo Azure ExpressRoute para conectar diretamente seu data center on-premises ao Azure, facilitando transferências de dados em grande escala, como backups diários e análises de dados em tempo real, com maior privacidade e velocidade.
### **Enumeração**
@@ -418,4 +493,10 @@ Get-AzExpressRouteCircuit
{{#endtab }}
{{#endtabs }}
## Referências
- [DNS OverDoS: Endpoints privados são privados demais?](https://unit42.paloaltonetworks.com/dos-attacks-and-azure-private-endpoint/)
- [Configuração DNS do Azure Private Endpoint](https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-dns)
- [Fallback do Private DNS para a internet](https://learn.microsoft.com/en-us/azure/dns/private-dns-fallback)
{{#include ../../../../banners/hacktricks-training.md}}