Az - Azure Network

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Información Básica

Las redes dentro de Azure funcionan como una parte integral de su plataforma de computación en la nube, permitiendo la conexión y comunicación entre varios servicios y recursos de Azure. La arquitectura de red en Azure está diseñada para ser altamente escalable, segura y personalizable.

En su núcleo, Azure proporciona una red virtual (VNet) que permite a los usuarios crear redes aisladas dentro de la nube de Azure. Dentro de estas VNets, los recursos como máquinas virtuales, aplicaciones y bases de datos pueden ser alojados y gestionados de forma segura. La red en Azure admite tanto la comunicación dentro de la nube (entre servicios de Azure) como la conexión a redes externas e internet.

La seguridad es un aspecto crítico de la red de Azure, con diversas herramientas y servicios disponibles para proteger datos, gestionar el acceso y garantizar el cumplimiento. Estas medidas de seguridad incluyen firewalls, grupos de seguridad de red y capacidades de encriptación, lo que permite un alto nivel de control sobre el tráfico y el acceso.

En general, las capacidades de red de Azure están diseñadas para ofrecer flexibilidad, permitiendo a los usuarios crear un entorno de red que se adapte a las necesidades específicas de sus aplicaciones y cargas de trabajo, manteniendo un fuerte énfasis en la seguridad y la fiabilidad.

Red Virtual (VNET) y Subredes

Una VNet en Azure es esencialmente una representación de tu propia red en la nube. Es un aislamiento lógico de la nube de Azure dedicado a tu suscripción. Una VNet te permite aprovisionar y gestionar redes privadas virtuales (VPNs) en Azure y se puede utilizar para alojar y gestionar múltiples tipos de recursos de Azure, como Máquinas Virtuales (VMs), bases de datos y servicios de aplicaciones.

Las VNets te proporcionan control total sobre la configuración de tu red, incluyendo rangos de direcciones IP, creación de subredes, tablas de enrutamiento y pasarelas de red.

Una subred es un rango de direcciones IP en tu VNet. Puedes dividir una VNet en múltiples subredes para organización y seguridad. Cada subred en una VNet se puede utilizar para aislar y agrupar recursos según la arquitectura de tu red y aplicación.

Además, las subredes te permiten segmentar tu VNet en una o más subredes, proporcionando un rango de direcciones IP que los recursos pueden utilizar.

Ejemplo

  • Supongamos que tienes una VNet llamada MiVNet con un rango de direcciones IP de 10.0.0.0/16. Puedes crear una subred dentro de esta VNet, digamos Subred-1, con un rango de direcciones IP de 10.0.0.0/24 para alojar tus servidores web. Otra subred, Subred-2 con un rango de 10.0.1.0/24, podría ser utilizada para tus servidores de base de datos. Esta segmentación permite una gestión eficiente y controles de seguridad dentro de la red.

Enumeración

Para listar todas las VNets y subredes en una cuenta de Azure, puedes utilizar la Interfaz de Línea de Comandos (CLI) de Azure. Aquí están los pasos:

# 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

Grupos de seguridad de red (NSG)

En Azure, un Grupo de seguridad de red (NSG) sirve principalmente para filtrar el tráfico de red tanto hacia como desde los recursos de Azure dentro de una Red Virtual de Azure (VNet). Contiene un conjunto de reglas de seguridad que dictan meticulosamente el flujo de tráfico de red.

Aspectos clave de NSG incluyen:

  • Control de tráfico: Cada NSG contiene reglas que son fundamentales para permitir u obstruir el tráfico de red entrante y saliente asociado con varios recursos de Azure.

  • Componentes de reglas: Las reglas dentro de un NSG son altamente específicas, filtrando el tráfico en función de criterios como la dirección IP de origen/destino, puerto y protocolo. Esta especificidad permite una gestión detallada del tráfico de red.

  • Mejora de la seguridad: Al garantizar que solo el tráfico autorizado pueda entrar o salir de sus recursos de Azure, los NSG desempeñan un papel crucial en fortalecer la postura de seguridad de su infraestructura de red.

Ejemplo

  • Imagina que tienes un NSG llamado MiNSG aplicado a una subred o a una máquina virtual específica dentro de tu VNet. Puedes crear reglas como:

  • Una regla de entrada que permita el tráfico HTTP (puerto 80) desde cualquier origen a tus servidores web.

  • Una regla de salida que permita solo el tráfico SQL (puerto 1433) a un rango de direcciones IP de destino específico.

Enumeración

# 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

Firewall de Azure

Azure Firewall es un servicio de seguridad de red administrado basado en la nube que protege los recursos de su Red Virtual de Azure. Es un firewall completamente estatal como servicio con funciones integradas de alta disponibilidad y escalabilidad.

Azure Firewall proporciona características más avanzadas que los NSGs, incluyendo filtrado a nivel de aplicación, filtrado a nivel de red, filtrado basado en inteligencia de amenazas e integración con Azure Monitor para registro y análisis. Puede filtrar el tráfico de salida, entrada, de spoke a spoke, VPN y ExpressRoute. Las reglas del firewall pueden crearse en base a FQDN (Nombre de dominio completamente calificado), direcciones IP y puertos.

Diferencias entre Azure Firewall y NSGs

  1. Alcance:

  • NSG: Funciona a nivel de subred o interfaz de red. Está destinado a proporcionar un filtrado básico del tráfico de entrada y salida de las interfaces de red (NIC), VM o subredes.

  • Azure Firewall: Opera a nivel de VNet, proporcionando un alcance de protección más amplio. Está diseñado para asegurar sus recursos de red virtual y gestionar el tráfico que entra y sale de la VNet.

  1. Capacidades:

  • NSG: Ofrece capacidades básicas de filtrado basadas en dirección IP, puerto y protocolo. No admite funciones avanzadas como inspección a nivel de aplicación o inteligencia de amenazas.

  • Azure Firewall: Ofrece características avanzadas como filtrado de tráfico a nivel de aplicación (Capa 7), filtrado basado en inteligencia de amenazas, filtrado de tráfico de red y más. También admite múltiples direcciones IP públicas.

  1. Casos de uso:

  • NSG: Ideal para el filtrado básico de tráfico a nivel de red.

  • Azure Firewall: Adecuado para escenarios de filtrado más complejos donde se necesite control a nivel de aplicación, registro e inteligencia de amenazas.

  1. Gestión y Monitoreo:

  • NSG: Ofrece registro básico e integración con Azure Monitor.

  • Azure Firewall: Proporciona capacidades avanzadas de registro y análisis a través de Azure Monitor, lo cual es esencial para comprender la naturaleza y el patrón del tráfico.

Enumeración

# 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

Dispositivo Virtual de Red (NVA)

Un Dispositivo Virtual de Red (NVA) en Azure es un dispositivo virtual que realiza funciones de red dentro de una red virtual. Los NVA se utilizan típicamente para funciones de red que no están disponibles nativamente en Azure o cuando se requiere más personalización. Básicamente son VMs que ejecutan aplicaciones o servicios de red, como firewalls, optimizadores WAN o balanceadores de carga.

Los NVA se utilizan para tareas de enrutamiento complejas, seguridad y gestión del tráfico de red. Se pueden implementar desde el Marketplace de Azure, donde muchos proveedores de terceros ofrecen sus dispositivos listos para integrarse en entornos de Azure.

Ejemplo

  • Una organización puede implementar un NVA en Azure para crear una solución de firewall personalizado. Este NVA podría ejecutar un software de firewall de terceros, proporcionando funciones avanzadas como detección de intrusiones, inspección de paquetes o conectividad VPN. El NVA se puede configurar para inspeccionar y filtrar el tráfico que pasa a través de él, asegurando que se apliquen medidas de seguridad mejoradas según las políticas de la organización.

Enumeración

# 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

Tablas de Rutas de Azure y Rutas Definidas por el Usuario (UDR)

Las Tablas de Rutas de Azure son una característica dentro de Microsoft Azure que permite el control del enrutamiento del tráfico de red dentro de las Redes Virtuales de Azure (VNets). Básicamente, definen cómo se reenvían los paquetes entre subredes dentro de las VNets, entre VNets o hacia redes externas. Cada tabla de rutas contiene un conjunto de reglas, conocidas como rutas, que especifican cómo deben enrutarse los paquetes en función de sus direcciones IP de destino.

Las Rutas Definidas por el Usuario (UDR) en Azure son rutas personalizadas que creas dentro de las Tablas de Rutas de Azure para controlar el flujo del tráfico de red dentro y entre las Redes Virtuales de Azure (VNets) y hacia conexiones externas. Las UDR te brindan la flexibilidad para dirigir el tráfico de red según tus requisitos específicos, anulando las decisiones de enrutamiento predeterminadas de Azure.

Estas rutas son particularmente útiles para escenarios en los que necesitas enrutar el tráfico a través de un dispositivo virtual, hacer cumplir un camino específico por motivos de seguridad o cumplimiento de políticas, o integrarte con redes locales.

Ejemplo

  • Supongamos que has implementado un Aparato Virtual de Red (NVA) para inspeccionar el tráfico entre subredes dentro de una VNet. Puedes crear una UDR que dirija todo el tráfico de una subred a otra subred para que pase a través del NVA. Esta UDR garantiza que el NVA inspeccione el tráfico con fines de seguridad antes de llegar a su destino.

Enumeración

# 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 es un servicio en Azure que permite el acceso privado a los servicios de Azure al garantizar que el tráfico entre su red virtual de Azure (VNet) y el servicio viaje completamente dentro de la red principal de Azure de Microsoft. Básicamente, trae el servicio a su VNet. Esta configuración mejora la seguridad al no exponer los datos a internet público.

Private Link se puede utilizar con varios servicios de Azure, como Azure Storage, Azure SQL Database y servicios personalizados compartidos a través de Private Link. Proporciona una forma segura de consumir servicios desde su propia VNet o incluso desde diferentes suscripciones de Azure.

Las NSG no se aplican a los puntos de conexión privados, lo que significa claramente que asociar una NSG con una subred que contiene el Private Link no tendrá efecto alguno.

Ejemplo

  • Considere un escenario en el que tiene una base de datos Azure SQL a la que desea acceder de forma segura desde su VNet. Normalmente, esto implicaría atravesar internet público. Con Private Link, puede crear un punto de conexión privado en su VNet que se conecta directamente al servicio de base de datos Azure SQL. Este punto de conexión hace que la base de datos parezca parte de su propia VNet, accesible a través de una dirección IP privada, garantizando así un acceso seguro y privado.

Enumeración

# 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

Puntos de conexión de servicio de Azure

Los Puntos de conexión de servicio de Azure extienden el espacio de direcciones privadas de su red virtual y la identidad de su VNet a los servicios de Azure a través de una conexión directa. Al habilitar los puntos de conexión de servicio, los recursos en su VNet pueden conectarse de forma segura a los servicios de Azure, como Azure Storage y Azure SQL Database, utilizando la red central de Azure. Esto asegura que el tráfico desde la VNet hacia el servicio de Azure permanezca dentro de la red de Azure, proporcionando un camino más seguro y confiable.

Ejemplo

  • Por ejemplo, una cuenta de Azure Storage es accesible por defecto a través de internet público. Al habilitar un punto de conexión de servicio para Azure Storage dentro de su VNet, puede asegurar que solo el tráfico desde su VNet pueda acceder a la cuenta de almacenamiento. El firewall de la cuenta de almacenamiento luego puede configurarse para aceptar tráfico solo desde su VNet.

Enumeración

# 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

Diferencias entre los puntos de servicio y los enlaces privados

Microsoft recomienda el uso de Enlaces Privados en la documentación:\

Puntos de Servicio:

  • El tráfico desde su VNet hacia el servicio de Azure viaja a través de la red troncal de Microsoft Azure, evitando el internet público.

  • El punto final es una conexión directa al servicio de Azure y no proporciona una IP privada para el servicio dentro de la VNet.

  • El servicio en sí sigue siendo accesible a través de su punto final público desde fuera de su VNet a menos que configure el firewall del servicio para bloquear dicho tráfico.

  • Es una relación uno a uno entre la subred y el servicio de Azure.

  • Menos costoso que los Enlaces Privados.

Enlaces Privados:

  • Private Link mapea los servicios de Azure en su VNet a través de un punto final privado, que es una interfaz de red con una dirección IP privada dentro de su VNet.

  • El servicio de Azure se accede utilizando esta dirección IP privada, haciéndolo parecer parte de su red.

  • Los servicios conectados a través de Private Link solo pueden ser accedidos desde su VNet o redes conectadas; no hay acceso a internet público al servicio.

  • Permite una conexión segura a los servicios de Azure o sus propios servicios alojados en Azure, así como una conexión a servicios compartidos por otros.

  • Proporciona un control de acceso más granular a través de un punto final privado en su VNet, en lugar de un control de acceso más amplio a nivel de subred con puntos de servicio.

En resumen, mientras que tanto los Puntos de Servicio como los Enlaces Privados proporcionan conectividad segura a los servicios de Azure, los Enlaces Privados ofrecen un mayor nivel de aislamiento y seguridad al garantizar que los servicios se accedan de forma privada sin exponerlos al internet público. Los Puntos de Servicio, por otro lado, son más fáciles de configurar para casos generales donde se requiere un acceso simple y seguro a los servicios de Azure sin necesidad de una IP privada en la VNet.

Azure Front Door (AFD) y AFD WAF

Azure Front Door es un punto de entrada escalable y seguro para la entrega rápida de sus aplicaciones web globales. Combina varios servicios como balanceo de carga global, aceleración de sitios, descarga de SSL y capacidades de Firewall de Aplicaciones Web (WAF) en un solo servicio. Azure Front Door proporciona enrutamiento inteligente basado en la ubicación del borde más cercana al usuario, garantizando un rendimiento y confiabilidad óptimos. Además, ofrece enrutamiento basado en URL, hosting de múltiples sitios, afinidad de sesión y seguridad a nivel de aplicación.

Azure Front Door WAF está diseñado para proteger aplicaciones web de ataques basados en la web sin modificar el código del backend. Incluye reglas personalizadas y conjuntos de reglas administradas para proteger contra amenazas como la inyección SQL, scripting entre sitios y otros ataques comunes.

Ejemplo

  • Imagina que tienes una aplicación distribuida globalmente con usuarios en todo el mundo. Puedes usar Azure Front Door para enrutar las solicitudes de los usuarios al centro de datos regional más cercano que aloja tu aplicación, reduciendo así la latencia, mejorando la experiencia del usuario y defendiéndola de ataques web con las capacidades de WAF. Si una región en particular experimenta tiempo de inactividad, Azure Front Door puede redirigir automáticamente el tráfico al siguiente mejor lugar, asegurando una alta disponibilidad.

Enumeración

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

Azure Application Gateway es un balanceador de carga de tráfico web que te permite gestionar el tráfico hacia tus aplicaciones web. Ofrece balanceo de carga de la capa 7, terminación SSL y capacidades de firewall de aplicaciones web (WAF) en el Controlador de Entrega de Aplicaciones (ADC) como un servicio. Las características clave incluyen enrutamiento basado en URL, afinidad de sesión basada en cookies y descarga de capa de sockets seguros (SSL), que son cruciales para aplicaciones que requieren capacidades de balanceo de carga complejas como enrutamiento global y enrutamiento basado en rutas.

Ejemplo

  • Considera un escenario donde tienes un sitio web de comercio electrónico que incluye múltiples subdominios para diferentes funciones, como cuentas de usuario y procesamiento de pagos. Azure Application Gateway puede dirigir el tráfico a los servidores web apropiados basándose en la ruta de URL. Por ejemplo, el tráfico a ejemplo.com/cuentas podría dirigirse al servicio de cuentas de usuario, y el tráfico a ejemplo.com/pago podría dirigirse al servicio de procesamiento de pagos. Y proteger tu sitio web de ataques utilizando las capacidades de WAF.

Enumeración

# 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 es una característica de red en Azure que permite la conexión directa y sin problemas entre diferentes Redes Virtuales (VNets). A través de VNet peering, los recursos en una VNet pueden comunicarse con recursos en otra VNet utilizando direcciones IP privadas, como si estuvieran en la misma red. VNet Peering también se puede utilizar con redes locales configurando una VPN de sitio a sitio o Azure ExpressRoute.

Azure Hub and Spoke es una topología de red utilizada en Azure para gestionar y organizar el tráfico de red. El "hub" es un punto central que controla y dirige el tráfico entre diferentes "spokes". El hub típicamente contiene servicios compartidos como dispositivos virtuales de red (NVAs), Azure VPN Gateway, Azure Firewall o Azure Bastion. Los "spokes" son VNets que alojan cargas de trabajo y se conectan al hub utilizando VNet peering, lo que les permite aprovechar los servicios compartidos dentro del hub. Este modelo promueve un diseño de red limpio, reduciendo la complejidad al centralizar servicios comunes que múltiples cargas de trabajo en diferentes VNets pueden utilizar.

El emparejamiento de VNets no es transitivo en Azure, lo que significa que si el spoke 1 está conectado al spoke 2 y el spoke 2 está conectado al spoke 3, entonces el spoke 1 no puede comunicarse directamente con el spoke 3.

Ejemplos

  • Imagina una empresa con departamentos separados como Ventas, RRHH y Desarrollo, cada uno con su propia VNet (los spokes). Estas VNets requieren acceso a recursos compartidos como una base de datos central, un firewall y una puerta de enlace a Internet, que se encuentran en otra VNet (el hub). Al utilizar el modelo de Hub and Spoke, cada departamento puede conectarse de forma segura a los recursos compartidos a través de la VNet del hub sin exponer esos recursos a Internet público o crear una estructura de red compleja con numerosas conexiones.

Enumeración

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

Una VPN de sitio a sitio en Azure te permite conectar tu red local a tu Red Virtual de Azure (VNet), lo que permite que recursos como las VM dentro de Azure aparezcan como si estuvieran en tu red local. Esta conexión se establece a través de un gateway VPN que cifra el tráfico entre las dos redes.

Ejemplo

  • Una empresa con su oficina principal ubicada en Nueva York tiene un centro de datos local que necesita conectarse de forma segura a su VNet en Azure, donde se encuentran sus cargas de trabajo virtualizadas. Al configurar una VPN de sitio a sitio, la empresa puede garantizar una conectividad cifrada entre los servidores locales y las VM de Azure, lo que permite acceder de forma segura a los recursos en ambos entornos como si estuvieran en la misma red local.

Enumeración

# 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 es un servicio que proporciona una conexión privada, dedicada y de alta velocidad entre su infraestructura local y los centros de datos de Azure. Esta conexión se realiza a través de un proveedor de conectividad, evitando el uso de internet público y ofreciendo mayor fiabilidad, velocidades más rápidas, latencias más bajas y mayor seguridad que las conexiones típicas a internet.

Ejemplo

  • Una corporación multinacional requiere una conexión consistente y confiable a sus servicios de Azure debido al alto volumen de datos y la necesidad de un alto rendimiento. La empresa opta por Azure ExpressRoute para conectar directamente su centro de datos local a Azure, facilitando transferencias de datos a gran escala, como copias de seguridad diarias y análisis de datos en tiempo real, con mayor privacidad y velocidad mejorada.

Enumeración

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de HackTricks en AWS)!

Otras formas de apoyar a HackTricks:

Última actualización