Az - Azure Network

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Основна інформація

Мережі в Azure функціонують як невід'ємна частина його платформи хмарних обчислень, забезпечуючи з'єднання та комунікацію між різними сервісами та ресурсами Azure. Архітектура мережі в Azure розроблена для високої масштабованості, безпеки та налаштовуваності.

В основі Azure надає віртуальну мережу (VNet), яка дозволяє користувачам створювати ізольовані мережі в хмарі Azure. У межах цих VNet можна безпечно розміщувати та керувати ресурсами, такими як віртуальні машини, додатки та бази даних. Мережа в Azure підтримує як комунікацію в хмарі (між сервісами Azure), так і з'єднання з зовнішніми мережами та інтернетом.

Безпека є критичним аспектом мереж Azure, з різними інструментами та сервісами для захисту даних, управління доступом та забезпечення відповідності. Ці заходи безпеки включають фаєрволи, групи безпеки мережі та можливості шифрування, що дозволяють високий рівень контролю над трафіком та доступом.

Загалом, мережеві можливості Azure розроблені для забезпечення гнучкості, дозволяючи користувачам створювати мережеве середовище, яке відповідає їхнім конкретним потребам у додатках та робочих навантаженнях, зберігаючи при цьому сильний акцент на безпеці та надійності.

Віртуальна мережа (VNET) та підмережі

VNet в Azure є по суті представленням вашої власної мережі в хмарі. Це логічна ізоляція хмари Azure, присвячена вашій підписці. VNet дозволяє вам створювати та керувати віртуальними приватними мережами (VPN) в Azure і може використовуватися для розміщення та управління різними типами ресурсів Azure, такими як віртуальні машини (VM), бази даних та сервіси додатків.

VNet надають вам повний контроль над налаштуваннями вашої мережі, включаючи діапазони IP-адрес, створення підмереж, таблиці маршрутів та мережеві шлюзи.

Підмережа - це діапазон IP-адрес у вашій VNet. Ви можете розділити VNet на кілька підмереж для організації та безпеки. Кожна підмережа у VNet може використовуватися для ізоляції та групування ресурсів відповідно до вашої мережевої та архітектури додатків.

Крім того, підмережі дозволяють вам сегментувати вашу VNet на одну або кілька підмереж, надаючи діапазон IP-адрес, які можуть використовувати ресурси.

Приклад

  • Припустимо, у вас є VNet під назвою MyVNet з діапазоном IP-адрес 10.0.0.0/16. Ви можете створити підмережу в цій VNet, наприклад, Subnet-1, з діапазоном IP-адрес 10.0.0.0/24 для розміщення ваших веб-серверів. Інша підмережа, Subnet-2 з діапазоном 10.0.1.0/24, може використовуватися для ваших серверів баз даних. Це сегментування дозволяє ефективно керувати та контролювати безпеку в межах мережі.

Перерахування

Щоб перелічити всі VNet та підмережі в обліковому записі Azure, ви можете використовувати інтерфейс командного рядка Azure (CLI). Ось кроки:

# 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

Network Security Groups (NSG)

В Azure, Network Security Group (NSG) виконує основну функцію фільтрації мережевого трафіку як до, так і від ресурсів Azure у межах Azure Virtual Network (VNet). Він містить набір правил безпеки, які ретельно визначають потік мережевого трафіку.

Ключові аспекти NSG включають:

  • Контроль трафіку: Кожен NSG містить правила, які є важливими для дозволу або блокування вхідного та вихідного мережевого трафіку, пов'язаного з різними ресурсами Azure.

  • Компоненти правил: Правила в NSG є дуже специфічними, фільтруючи трафік на основі таких критеріїв, як IP-адреса джерела/призначення, порт і протокол. Ця специфічність дозволяє детально керувати мережевим трафіком.

  • Підвищення безпеки: Забезпечуючи, що лише авторизований трафік може входити або виходити з ваших ресурсів Azure, NSG відіграють важливу роль у зміцненні безпеки вашої мережевої інфраструктури.

Приклад

  • Уявіть, що у вас є NSG під назвою MyNSG, застосований до підмережі або конкретної віртуальної машини у вашому VNet. Ви можете створити правила, такі як:

  • Вхідне правило, що дозволяє HTTP-трафік (порт 80) з будь-якого джерела до ваших веб-серверів.

  • Вихідне правило, що дозволяє лише SQL-трафік (порт 1433) до певного діапазону IP-адрес призначення.

Перерахування

# 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 - це керована, хмарна служба мережевої безпеки, яка захищає ваші ресурси Azure Virtual Network. Це повністю станова служба брандмауера з вбудованими функціями високої доступності та масштабованості.

Azure Firewall надає більш розширені функції, ніж NSGs, включаючи фільтрацію на рівні додатків, фільтрацію на мережевому рівні, фільтрацію на основі загрозової розвідки та інтеграцію з Azure Monitor для ведення журналів та аналітики. Він може фільтрувати вихідний, вхідний, spoke-to-spoke, VPN та ExpressRoute трафік. Правила брандмауера можуть бути створені на основі FQDN (Fully Qualified Domain Name), IP-адрес та портів.

Відмінності між Azure Firewall та NSGs

  1. Область застосування:

  • NSG: Працює на рівні підмережі або мережевого інтерфейсу. Призначений для забезпечення базової фільтрації вхідного та вихідного трафіку з мережевих інтерфейсів (NIC), VMs або підмереж.

  • Azure Firewall: Працює на рівні VNet, забезпечуючи ширшу область захисту. Призначений для захисту ваших ресурсів віртуальної мережі та управління трафіком, що проходить в і з VNet.

  1. Можливості:

  • NSG: Надає базові можливості фільтрації на основі IP-адреси, порту та протоколу. Не підтримує розширені функції, такі як інспекція на рівні додатків або загрозова розвідка.

  • Azure Firewall: Пропонує розширені функції, такі як фільтрація трафіку на рівні додатків (Layer 7), фільтрація на основі загрозової розвідки, фільтрація мережевого трафіку та інше. Також підтримує кілька публічних IP-адрес.

  1. Випадки використання:

  • NSG: Ідеально підходить для базової фільтрації трафіку на мережевому рівні.

  • Azure Firewall: Підходить для більш складних сценаріїв фільтрації, де потрібен контроль на рівні додатків, ведення журналів та загрозова розвідка.

  1. Управління та моніторинг:

  • NSG: Пропонує базове ведення журналів та інтеграцію з Azure Monitor.

  • Azure Firewall: Надає розширені можливості ведення журналів та аналітики через Azure Monitor, що є важливим для розуміння природи та шаблонів трафіку.

Перерахування

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

Network Virtual Appliance (NVA) в Azure — це віртуальний пристрій, який виконує мережеві функції у віртуальній мережі. NVAs зазвичай використовуються для мережевих функцій, які не доступні нативно в Azure або коли потрібна більша кастомізація. Вони по суті є VMs, що запускають мережеві додатки або сервіси, такі як фаєрволи, WAN оптимізатори або балансувальники навантаження.

NVAs використовуються для складного маршрутизації, безпеки та управління мережевим трафіком. Вони можуть бути розгорнуті з Azure Marketplace, де багато сторонніх постачальників пропонують свої пристрої, готові до інтеграції в середовища Azure.

Приклад

  • Організація може розгорнути NVA в Azure для створення кастомного фаєрвол рішення. Цей NVA може запускати стороннє фаєрвол програмне забезпечення, надаючи розширені функції, такі як виявлення вторгнень, інспекція пакетів або VPN-з'єднання. NVA може бути налаштований для інспекції та фільтрації трафіку, що проходить через нього, забезпечуючи підвищені заходи безпеки відповідно до політик організації.

Перерахування

# 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

Azure Route Tables & User Defined Routes (UDR)

Azure Route Tables - це функція в Microsoft Azure, яка дозволяє контролювати маршрутизацію мережевого трафіку в межах Azure Virtual Networks (VNets). В основному, вони визначають, як пакети пересилаються між підмережами в межах VNets, між VNets або до зовнішніх мереж. Кожна таблиця маршрутів містить набір правил, відомих як маршрути, які визначають, як пакети повинні маршрутизуватися на основі їх IP-адрес призначення.

User Defined Routes (UDR) в Azure - це кастомні маршрути, які ви створюєте в межах Azure Route Tables, щоб контролювати потік мережевого трафіку в межах і між Azure Virtual Networks (VNets), а також до зовнішніх з'єднань. UDR надають вам гнучкість у напрямку мережевого трафіку відповідно до ваших конкретних вимог, перевизначаючи стандартні рішення маршрутизації Azure.

Ці маршрути особливо корисні в ситуаціях, коли вам потрібно маршрутизувати трафік через віртуальний пристрій, забезпечити певний шлях для дотримання безпеки або політики, або інтегруватися з локальними мережами.

Приклад

  • Припустимо, ви розгорнули Network Virtual Appliance (NVA) для перевірки трафіку між підмережами в межах VNet. Ви можете створити UDR, який направляє весь трафік з однієї підмережі до іншої через NVA. Цей UDR забезпечує перевірку трафіку NVA з метою безпеки перед тим, як він досягне свого призначення.

Перерахування

# 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 — це сервіс в Azure, який забезпечує приватний доступ до сервісів Azure шляхом гарантування, що трафік між вашою Azure віртуальною мережею (VNet) і сервісом проходить повністю через внутрішню мережу Microsoft Azure. Це ефективно інтегрує сервіс у вашу VNet. Така конфігурація підвищує безпеку, оскільки дані не піддаються впливу публічного інтернету.

Private Link можна використовувати з різними сервісами Azure, такими як Azure Storage, Azure SQL Database, і кастомні сервіси, що надаються через Private Link. Це забезпечує безпечний спосіб споживання сервісів з вашої власної VNet або навіть з різних підписок Azure.

NSG не застосовуються до приватних кінцевих точок, що чітко означає, що асоціація NSG з підмережею, яка містить Private Link, не матиме жодного ефекту.

Приклад

  • Розглянемо сценарій, де у вас є Azure SQL Database, до якого ви хочете отримати безпечний доступ з вашої VNet. Зазвичай це може включати проходження через публічний інтернет. З Private Link ви можете створити приватну кінцеву точку у вашій VNet, яка підключається безпосередньо до сервісу Azure SQL Database. Ця кінцева точка робить базу даних такою, ніби вона є частиною вашої власної VNet, доступною через приватну IP-адресу, забезпечуючи таким чином безпечний і приватний доступ.

Перерахування

# 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

Azure Service Endpoints

Azure Service Endpoints розширюють приватний адресний простір вашої віртуальної мережі та ідентичність вашої VNet до Azure services через пряме з'єднання. Включивши service endpoints, ресурси у вашій VNet можуть безпечно підключатися до Azure services, таких як Azure Storage та Azure SQL Database, використовуючи мережу Azure. Це забезпечує, що трафік з VNet до Azure service залишається в мережі Azure, надаючи більш безпечний та надійний шлях.

Приклад

  • Наприклад, Azure Storage обліковий запис за замовчуванням доступний через публічний інтернет. Включивши service endpoint для Azure Storage у вашій VNet, ви можете забезпечити, що тільки трафік з вашої VNet може отримати доступ до облікового запису зберігання. Потім брандмауер облікового запису зберігання можна налаштувати для прийому трафіку тільки з вашої VNet.

Перерахування

# 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 рекомендує використовувати Private Links у документації:\

Service Endpoints:

  • Трафік з вашого VNet до Azure сервісу проходить через мережу Microsoft Azure backbone, оминаючи публічний інтернет.

  • Endpoint є прямим з'єднанням з Azure сервісом і не надає приватну IP-адресу для сервісу в межах VNet.

  • Сам сервіс все ще доступний через його публічний endpoint ззовні вашого VNet, якщо ви не налаштуєте firewall сервісу для блокування такого трафіку.

  • Це одне-до-одного відношення між підмережею та Azure сервісом.

  • Менш дорогий, ніж Private Links.

Private Links:

  • Private Link відображає Azure сервіси у ваш VNet через приватний endpoint, який є мережевим інтерфейсом з приватною IP-адресою в межах вашого VNet.

  • Azure сервіс доступний за допомогою цієї приватної IP-адреси, що робить його частиною вашої мережі.

  • Сервіси, підключені через Private Link, можуть бути доступні тільки з вашого VNet або підключених мереж; немає доступу до сервісу через публічний інтернет.

  • Це забезпечує безпечне з'єднання з Azure сервісами або вашими власними сервісами, розміщеними в Azure, а також з'єднання з сервісами, якими діляться інші.

  • Це забезпечує більш детальний контроль доступу через приватний endpoint у вашому VNet, на відміну від ширшого контролю доступу на рівні підмережі з service endpoints.

Підсумовуючи, хоча і Service Endpoints, і Private Links забезпечують безпечне з'єднання з Azure сервісами, Private Links пропонують вищий рівень ізоляції та безпеки, забезпечуючи доступ до сервісів приватно без їхнього відкриття для публічного інтернету. Service Endpoints, з іншого боку, легше налаштувати для загальних випадків, коли потрібен простий, безпечний доступ до Azure сервісів без необхідності в приватній IP-адресі у VNet.

Azure Front Door (AFD) та AFD WAF

Azure Front Door є масштабованою та безпечною точкою входу для швидкої доставки ваших глобальних веб-додатків. Він поєднує різні сервіси, такі як глобальний балансування навантаження, прискорення сайтів, SSL offloading та можливості Web Application Firewall (WAF) в один сервіс. Azure Front Door забезпечує інтелектуальне маршрутизацію на основі найближчого edge-розташування до користувача, забезпечуючи оптимальну продуктивність та надійність. Крім того, він пропонує маршрутизацію на основі URL, хостинг кількох сайтів, прив'язку сесій та безпеку на рівні додатків.

Azure Front Door WAF призначений для захисту веб-додатків від веб-атак без модифікації бекенд-коду. Він включає користувацькі правила та керовані набори правил для захисту від загроз, таких як SQL injection, cross-site scripting та інших поширених атак.

Приклад

  • Уявіть, що у вас є глобально розподілений додаток з користувачами по всьому світу. Ви можете використовувати Azure Front Door для маршрутизації запитів користувачів до найближчого регіонального дата-центру, що хостить ваш додаток, тим самим зменшуючи затримку, покращуючи користувацький досвід та захищаючи його від веб-атак за допомогою можливостей WAF. Якщо певний регіон зазнає простою, Azure Front Door може автоматично перенаправити трафік до наступного найкращого розташування, забезпечуючи високу доступність.

Перерахування

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

Azure Application Gateway — це балансувальник навантаження веб-трафіку, який дозволяє керувати трафіком до ваших веб-додатків. Він пропонує балансування навантаження на рівні 7, завершення SSL та можливості веб-аплікаційного фаєрволу (WAF) у службі Application Delivery Controller (ADC). Ключові функції включають маршрутизацію на основі URL, сесійну афінність на основі cookie та розвантаження захищених сокетів (SSL), що є важливими для додатків, які потребують складних можливостей балансування навантаження, таких як глобальна маршрутизація та маршрутизація на основі шляхів.

Приклад

  • Розглянемо сценарій, коли у вас є веб-сайт електронної комерції, який включає кілька піддоменів для різних функцій, таких як облікові записи користувачів та обробка платежів. Azure Application Gateway може маршрутизувати трафік до відповідних веб-серверів на основі шляху URL. Наприклад, трафік до example.com/accounts може бути спрямований до служби облікових записів користувачів, а трафік до example.com/pay може бути спрямований до служби обробки платежів. І захистити ваш веб-сайт від атак за допомогою можливостей WAF.

Enumeration

# 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 — це мережева функція в Azure, яка дозволяє різним Virtual Networks (VNets) бути з'єднаними безпосередньо та безшовно. Завдяки VNet peering, ресурси в одному VNet можуть спілкуватися з ресурсами в іншому VNet, використовуючи приватні IP-адреси, ніби вони знаходяться в одній мережі. VNet Peering також може використовуватися з on-prem мережами шляхом налаштування site-to-site VPN або Azure ExpressRoute.

Azure Hub and Spoke — це мережева топологія, яка використовується в Azure для управління та організації мережевого трафіку. "Hub" є центральною точкою, яка контролює та маршрутизує трафік між різними "spokes". Hub зазвичай містить спільні сервіси, такі як network virtual appliances (NVAs), Azure VPN Gateway, Azure Firewall або Azure Bastion. "Spokes" — це VNets, які розміщують робочі навантаження та підключаються до hub за допомогою VNet peering, що дозволяє їм використовувати спільні сервіси в hub. Ця модель сприяє чистому макету мережі, зменшуючи складність шляхом централізації загальних сервісів, які можуть використовуватися різними робочими навантаженнями в різних VNets.

VNET pairing не є транзитивним в Azure, що означає, що якщо spoke 1 підключений до spoke 2, а spoke 2 підключений до spoke 3, то spoke 1 не може безпосередньо спілкуватися зі spoke 3.

Приклади

  • Уявіть компанію з окремими відділами, такими як Sales, HR та Development, кожен з яких має свій власний VNet (spokes). Ці VNets потребують доступу до спільних ресурсів, таких як центральна база даних, firewall та інтернет-шлюз, які всі знаходяться в іншому VNet (hub). Використовуючи модель Hub and Spoke, кожен відділ може безпечно підключатися до спільних ресурсів через hub VNet, не піддаючи ці ресурси публічному інтернету або створюючи складну мережеву структуру з численними з'єднаннями.

Перерахування

# 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

Site-to-Site VPN

Site-to-Site VPN в Azure дозволяє підключити вашу локальну мережу до вашої Azure Virtual Network (VNet), що дозволяє ресурсам, таким як VMs в Azure, виглядати так, ніби вони знаходяться у вашій локальній мережі. Це з'єднання встановлюється через VPN gateway, який шифрує трафік між двома мережами.

Приклад

  • Бізнес з головним офісом у Нью-Йорку має локальний дата-центр, який потребує безпечного підключення до свого VNet в Azure, де розміщені його віртуалізовані робочі навантаження. Налаштувавши Site-to-Site VPN, компанія може забезпечити зашифроване з'єднання між локальними серверами та Azure VMs, що дозволяє безпечно отримувати доступ до ресурсів в обох середовищах, ніби вони знаходяться в одній локальній мережі.

Перерахування

# 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 — це сервіс, який забезпечує приватне, виділене, високошвидкісне з'єднання між вашою локальною інфраструктурою та дата-центрами Azure. Це з'єднання здійснюється через провайдера підключення, оминаючи публічний інтернет і пропонуючи більшу надійність, вищі швидкості, менші затримки та вищу безпеку, ніж типові інтернет-з'єднання.

Приклад

  • Міжнародна корпорація потребує стабільного та надійного з'єднання зі своїми сервісами Azure через великий обсяг даних та необхідність високої пропускної здатності. Компанія обирає Azure ExpressRoute для прямого підключення свого локального дата-центру до Azure, що полегшує великомасштабні передачі даних, такі як щоденні резервні копії та аналітика даних у реальному часі, з підвищеною конфіденційністю та швидкістю.

Перерахування

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Last updated