Az - Azure Network

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Informações Básicas

As redes dentro da Azure funcionam como parte integrante de sua plataforma de computação em nuvem, permitindo a conexão e comunicação entre vários serviços e recursos da Azure. A arquitetura de rede na Azure é projetada para ser altamente escalável, segura e personalizável.

No cerne, a Azure fornece uma rede virtual (VNet) que permite aos usuários criar redes isoladas dentro da nuvem da Azure. Dentro dessas VNets, recursos como máquinas virtuais, aplicativos e bancos de dados podem ser hospedados e gerenciados com segurança. A rede na Azure suporta tanto a comunicação dentro da nuvem (entre os serviços da Azure) quanto a conexão com redes externas e a internet.

A segurança é um aspecto crítico da rede Azure, com várias ferramentas e serviços disponíveis para proteger dados, gerenciar acesso e garantir conformidade. Essas medidas de segurança incluem firewalls, grupos de segurança de rede e capacidades de criptografia, permitindo um alto nível de controle sobre o tráfego e o acesso.

No geral, as capacidades de rede da Azure são projetadas para oferecer flexibilidade, permitindo aos usuários criar um ambiente de rede que atenda às necessidades específicas de aplicativos e cargas de trabalho, mantendo um forte foco em segurança e confiabilidade.

Rede Virtual (VNET) e Sub-redes

Uma VNet na Azure é essencialmente uma representação da sua própria rede na nuvem. É um isolamento lógico da nuvem da Azure dedicado à sua assinatura. Uma VNet permite que você provisione e gerencie redes privadas virtuais (VPNs) na Azure e pode ser usada para hospedar e gerenciar vários tipos de recursos da Azure, como Máquinas Virtuais (VMs), bancos de dados e serviços de aplicativos.

As VNets fornecem a você controle total sobre as configurações de sua rede, incluindo faixas de endereços IP, criação de sub-redes, tabelas de roteamento e gateways de rede.

Uma sub-rede é um intervalo de endereços IP em sua VNet. Você pode dividir uma VNet em várias sub-redes para organização e segurança. Cada sub-rede em uma VNet pode ser usada para isolar e agrupar recursos de acordo com a arquitetura de sua rede e aplicativo.

Além disso, as sub-redes permitem que você segmente sua VNet em uma ou mais sub-redes, fornecendo uma faixa de endereços IP que os recursos podem usar.

Exemplo

  • Suponha que você tenha uma VNet chamada MyVNet com uma faixa de endereços IP de 10.0.0.0/16. Você pode criar uma sub-rede dentro desta VNet, digamos Subnet-1, com uma faixa de endereços IP de 10.0.0.0/24 para hospedar seus servidores web. Outra sub-rede, Subnet-2 com uma faixa de 10.0.1.0/24, poderia ser usada para seus servidores de banco de dados. Essa segmentação permite um gerenciamento eficiente e controles de segurança dentro da rede.

Enumeração

Para listar todas as VNets e sub-redes em uma conta Azure, você pode usar a Interface de Linha de Comando (CLI) da Azure. Aqui estão os passos:

# 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

Firewall do Azure

O Firewall do Azure é um serviço de segurança de rede gerenciado baseado em nuvem que protege seus recursos de Rede Virtual do Azure. É um firewall totalmente stateful como serviço com recursos integrados de alta disponibilidade e escalabilidade.

O Firewall do Azure oferece recursos mais avançados do que os NSGs, incluindo filtragem em nível de aplicativo, filtragem em nível de rede, filtragem baseada em inteligência de ameaças e integração com o Azure Monitor para registro e análise. Ele pode filtrar o tráfego de saída, entrada, de spoke para spoke, VPN e ExpressRoute. As regras do firewall podem ser criadas com base em FQDN (Nome de Domínio Totalmente Qualificado), endereços IP e portas.

Diferenças entre o Firewall do Azure e os NSGs

  1. Escopo:

  • NSG: Funciona no nível de sub-rede ou interface de rede. Destina-se a fornecer filtragem básica de tráfego de entrada e saída das interfaces de rede (NIC), VMs ou sub-redes.

  • Firewall do Azure: Opera no nível do VNet, fornecendo um escopo mais amplo de proteção. Ele é projetado para proteger seus recursos de rede virtual e gerenciar o tráfego que entra e sai do VNet.

  1. Capacidades:

  • NSG: Fornece capacidades básicas de filtragem com base em endereço IP, porta e protocolo. Não suporta recursos avançados como inspeção em nível de aplicativo ou inteligência de ameaças.

  • Firewall do Azure: Oferece recursos avançados como filtragem de tráfego em nível de aplicativo (Camada 7), filtragem baseada em inteligência de ameaças, filtragem de tráfego de rede e mais. Também suporta vários endereços IP públicos.

  1. Casos de Uso:

  • NSG: Ideal para filtragem básica de tráfego em nível de rede.

  • Firewall do Azure: Adequado para cenários de filtragem mais complexos onde é necessária controle em nível de aplicativo, registro e inteligência de ameaças.

  1. Gerenciamento e Monitoramento:

  • NSG: Oferece registro básico e integração com o Azure Monitor.

  • Firewall do Azure: Fornece capacidades avançadas de registro e análise por meio do Azure Monitor, o que é essencial para entender a natureza e o padrão do tráfego.

Enumeração

# 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

Tabelas de Roteamento do Azure e Rotas Definidas pelo Usuário (UDR)

As Tabelas de Roteamento do Azure são um recurso dentro do Microsoft Azure que permite o controle do roteamento do tráfego de rede dentro das Redes Virtuais do Azure (VNets). Basicamente, elas definem como os pacotes são encaminhados entre sub-redes dentro das VNets, entre VNets ou para redes externas. Cada tabela de roteamento contém um conjunto de regras, conhecidas como rotas, que especificam como os pacotes devem ser roteados com base em seus endereços IP de destino.

As Rotas Definidas pelo Usuário (UDR) no Azure são rotas personalizadas que você cria dentro das Tabelas de Roteamento do Azure para controlar o fluxo de tráfego de rede dentro e entre as Redes Virtuais do Azure (VNets) e para conexões externas. As UDRs oferecem a flexibilidade de direcionar o tráfego de rede conforme suas necessidades específicas, substituindo as decisões de roteamento padrão do Azure.

Essas rotas são particularmente úteis para cenários em que você precisa rotear o tráfego por um appliance virtual, impor um caminho específico para segurança ou conformidade com políticas, ou integrar com redes locais.

Exemplo

  • Suponha que você tenha implantado um Appliance Virtual de Rede (NVA) para inspecionar o tráfego entre sub-redes dentro de uma VNet. Você pode criar uma UDR que direcione todo o tráfego de uma sub-rede para outra sub-rede para passar pelo NVA. Essa UDR garante que o NVA inspecione o tráfego para fins de segurança antes de chegar ao seu destino.

Enumeração

# 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

O 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 principal do Azure da Microsoft. Ele efetivamente traz o serviço para dentro da sua VNet. Essa configuração aprimora a segurança ao não expor os dados à internet pública.

O Private Link pode ser usado com vários serviços do Azure, como Armazenamento do Azure, Banco de Dados SQL do Azure e serviços personalizados compartilhados via Private Link. Ele fornece uma maneira segura de consumir serviços de dentro da sua própria VNet ou até mesmo de diferentes assinaturas do Azure.

As NSGs não se aplicam aos pontos de extremidade privados, o que significa claramente que associar uma NSG a uma sub-rede que contenha o Private Link não terá efeito.

Exemplo

  • Considere um cenário em que você tem um Banco de Dados SQL do Azure 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 ponto de extremidade privado em sua VNet que se conecta diretamente ao serviço de Banco de Dados SQL do Azure. Esse ponto de extremidade faz com que o banco de dados pareça fazer parte da sua própria VNet, acessível por meio de um endereço IP privado, garantindo assim acesso seguro e privado.

Enumeração

# 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

Pontos de Serviço do Azure

Os Pontos de Serviço do Azure estendem o espaço de endereço privado da sua rede virtual e a identidade da sua VNet para os serviços do Azure por meio de uma conexão direta. Ao habilitar os pontos de serviço, os recursos na sua VNet podem se conectar de forma segura aos serviços do Azure, como o Armazenamento do Azure e o Banco de Dados SQL do Azure, usando a rede principal do Azure. Isso garante que o tráfego da VNet para o serviço do Azure permaneça dentro da rede do Azure, proporcionando um caminho mais seguro e confiável.

Exemplo

  • Por exemplo, uma conta de Armazenamento do Azure por padrão é acessível pela internet pública. Ao habilitar um ponto de serviço para o Armazenamento do Azure 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.

Enumeração

# 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

A Microsoft recomenda o uso de Links Privados na documentação:\

Pontos de Serviço:

  • O tráfego do seu VNet para o serviço Azure viaja pela rede principal da Microsoft Azure, contornando a internet pública.

  • O ponto final é uma conexão direta com o serviço Azure e não fornece um IP privado para o serviço dentro do VNet.

  • O serviço em si ainda é acessível por meio de seu ponto final público de fora do seu 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 os Links Privados.

Links Privados:

  • O Link Privado mapeia os serviços Azure em seu VNet por meio de um ponto final privado, que é uma interface de rede com um endereço IP privado dentro do seu VNet.

  • O serviço Azure é acessado usando este endereço IP privado, fazendo com que pareça fazer parte de sua rede.

  • Serviços conectados via Link Privado só podem ser acessados a partir do seu VNet ou de redes conectadas; não há acesso à internet pública para o serviço.

  • Ele permite uma conexão segura com os serviços Azure ou seus próprios serviços hospedados no Azure, bem como uma conexão com serviços compartilhados por outros.

  • Ele fornece um controle de acesso mais granular por meio de um ponto final privado em seu VNet, em oposição a um controle de acesso mais amplo no nível da sub-rede com pontos de serviço.

Em resumo, enquanto Pontos de Serviço e Links Privados fornecem conectividade segura aos serviços Azure, os 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 Pontos de Serviço, por outro lado, são mais fáceis de configurar para casos gerais em que é necessária uma acesso simples e seguro aos serviços Azure sem a necessidade de um IP privado no VNet.

Azure Front Door (AFD) & AFD WAF

Azure Front Door é um ponto de entrada escalável e seguro para a 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 SSL e capacidades de Firewall de Aplicativos 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 ótimos. Além disso, oferece roteamento baseado em URL, hospedagem de vários sites, afinidade de sessão e segurança em camada de aplicativo.

Azure Front Door WAF é projetado para proteger aplicações web de ataques baseados na web sem modificação no código de back-end. Ele inclui regras personalizadas e conjuntos de regras gerenciadas para proteger contra ameaças como injeção SQL, scripts entre sites e outros ataques comuns.

Exemplo

  • Imagine que você tenha uma aplicação distribuída globalmente com usuários em todo o mundo. Você pode usar o Azure Front Door para rotear as solicitações dos usuários para o centro de dados regional mais próximo que hospeda sua aplicação, reduzindo assim a latência, melhorando a experiência do usuário e defendendo-a de ataques web com as capacidades do WAF. Se uma região específica enfrentar tempo de inatividade, o Azure Front Door pode automaticamente redirecionar o tráfego para a próxima melhor localização, garantindo alta disponibilidade.

Enumeração

# 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

O 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 na Camada 7, terminação SSL e capacidades de firewall de aplicação web (WAF) no Controlador de Entrega de Aplicativos (ADC) como um serviço. As principais características incluem roteamento baseado em URL, afinidade de sessão baseada em cookies e descarregamento de camada de sockets seguros (SSL), que são cruciais para aplicações que requerem capacidades avançadas de balanceamento de carga, como roteamento global e roteamento baseado em caminho.

Exemplo

  • Considere um cenário em que você tem um site de comércio eletrônico que inclui vários subdomínios para funções diferentes, como contas de usuário e processamento de pagamentos. O Azure Application Gateway pode rotear o tráfego para os servidores web apropriados com base no caminho do URL. Por exemplo, o tráfego para exemplo.com/contas poderia ser direcionado para o serviço de contas de usuário, e o tráfego para exemplo.com/pagamento poderia ser direcionado para o serviço de processamento de pagamentos. E proteger seu site de ataques usando as capacidades do WAF.

Enumeração

# 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

Hub, Spoke e VNet Peering do Azure

VNet Peering é um recurso de rede no Azure que permite que diferentes Redes Virtuais (VNets) sejam conectadas diretamente e de forma transparente. Através do VNet peering, recursos em uma VNet podem se comunicar com recursos em outra VNet usando endereços IP privados, como se estivessem na mesma rede. O VNet Peering também pode ser usado com redes locais configurando uma VPN de site a site ou Azure ExpressRoute.

Hub e Spoke do Azure é 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 geralmente contém serviços compartilhados como dispositivos virtuais de rede (NVAs), Gateway VPN do Azure, Firewall do Azure ou Bastion do Azure. Os "spokes" são VNets que hospedam cargas de trabalho e se conectam ao hub usando o VNet peering, permitindo que eles aproveitem os serviços compartilhados dentro do hub. Esse 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.

O emparelhamento de VNets 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.

Exemplos

  • 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). Ao usar o modelo Hub e Spoke, cada departamento pode se conectar 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.

Enumeração

# 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 a Site

Um VPN de Site a Site no Azure permite que você conecte sua rede local à sua Rede Virtual do Azure (VNet), permitindo que recursos como VMs dentro do Azure pareçam estar na sua rede local. Essa conexão é estabelecida por meio de um gateway VPN que criptografa o tráfego entre as duas redes.

Exemplo

  • Uma empresa com sua sede principal localizada 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 um VPN de Site a Site, a empresa pode garantir conectividade criptografada entre os servidores locais 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

# 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

O Azure ExpressRoute é um serviço que fornece uma conexão privada, dedicada e de alta velocidade entre a infraestrutura local 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 mais rápidas, latências mais baixas e maior segurança do que as conexões típicas da internet.

Exemplo

  • Uma corporação multinacional requer uma conexão consistente e confiável com seus serviços do 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 local ao Azure, facilitando transferências de dados em grande escala, como backups diários e análises de dados em tempo real, com privacidade e velocidade aprimoradas.

Enumeração

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Última actualización