Az - Azure Network

ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

基本情報

Azure内のネットワークは、Azureサービスとリソース間の接続と通信を可能にする、そのクラウドコンピューティングプラットフォームの重要な部分として機能します。Azureのネットワークアーキテクチャは、高度にスケーラブルでセキュアかつカスタマイズ可能に設計されています。

Azureの中心には、Azureクラウド内で分離された ネットワークを作成できる**仮想ネットワーク(VNet)**があります。これらのVNet内では、仮想マシン、アプリケーション、データベースなどのリソースを安全にホストおよび管理できます。Azureのネットワーキングは、クラウド内(Azureサービス間)および外部ネットワーク、インターネットへの接続の両方をサポートしています。

セキュリティはAzureネットワーキングの重要な側面であり、データの保護、アクセスの管理、コンプライアンスの確保に使用できるさまざまなツールとサービスが利用可能です。これらのセキュリティ対策には、ファイアウォールネットワークセキュリティグループ暗号化機能が含まれており、トラフィックとアクセスに対する高度な制御が可能です。

全体として、Azureのネットワーキング機能は、特定のアプリケーションとワークロードのニーズに適したネットワーク環境を作成し、セキュリティと信頼性に重点を置いたまま、柔軟性を提供するよう設計されています。

仮想ネットワーク(VNET)&サブネット

AzureのVNetは、クラウド内の独自のネットワークの表現です。これは、あなたのサブスクリプションに専用のAzureクラウドの論理的な分離です。VNetを使用すると、Azureで仮想プライベートネットワーク(VPN)をプロビジョニングおよび管理し、仮想マシン(VM)、データベース、アプリケーションサービスなどの複数の種類のAzureリソースをホストおよび管理できます。

VNetは、IPアドレス範囲、サブネットの作成、ルートテーブル、ネットワークゲートウェイなど、ネットワーク設定全体を完全に制御できます。

サブネットは、VNet内のIPアドレス範囲です。VNetを複数のサブネットに分割して、組織化およびセキュリティを実現できます。VNet内の各サブネットは、ネットワークおよびアプリケーションアーキテクチャに応じてリソースを分離およびグループ化するために使用できます。

さらに、サブネットを使用すると、VNetを1つ以上のサブネットにセグメント化して、リソースが使用できるIPアドレス範囲を提供できます。

  • 仮想ネットワークがMyVNetという名前で、IPアドレス範囲が10.0.0.0/16の場合を考えてみましょう。このVNet内に、たとえばウェブサーバーをホストするためのIPアドレス範囲が10.0.0.0/24のサブネットSubnet-1を作成できます。別のサブネットSubnet-2は、データベースサーバー用のIPアドレス範囲が10.0.1.0/24で使用できます。このセグメンテーションにより、ネットワーク内での効率的な管理とセキュリティコントロールが可能となります。

列挙

Azureアカウント内のすべてのVNetとサブネットをリストするには、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

ネットワークセキュリティグループ(NSG)

Azureでは、ネットワークセキュリティグループ(NSG) は、Azure仮想ネットワーク(VNet)内のAzureリソースとの間のネットワークトラフィックをフィルタリングする主要な機能を果たします。それは、ネットワークトラフィックの流れを細かく指示する一連のセキュリティルールを保持しています。

NSGの主な側面は次のとおりです:

  • トラフィック制御:各NSGには、さまざまなAzureリソースに関連する入力および出力ネットワークトラフィックを許可または妨害するのに重要な役割を果たすルールが含まれています。

  • ルールコンポーネント:NSG内のルールは非常に具体的であり、ソース/宛先IPアドレス、ポート、プロトコルなどの基準に基づいてトラフィックをフィルタリングします。この具体性により、ネットワークトラフィックの細かい管理が可能となります。

  • セキュリティの強化:許可されたトラフィックのみがAzureリソースに入出力できるようにすることで、NSGはネットワークインフラのセキュリティポストを強化する上で重要な役割を果たします。

  • MyNSGというNSGがVNet内のサブネットまたは特定の仮想マシンに適用されていると想像してください。次のようなルールを作成できます:

  • 任意のソースからWebサーバーへのHTTPトラフィック(ポート80)を許可する入力ルール。

  • 特定の宛先IPアドレス範囲へのSQLトラフィック(ポート1433)のみを許可する出力ルール。

列挙

# 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は、NSGよりも高度な機能を提供し、アプリケーションレベルのフィルタリング、ネットワークレベルのフィルタリング、脅威インテリジェンスベースのフィルタリング、およびAzure Monitorとの統合によるログ記録と分析を含みます。 アウトバウンド、インバウンド、スポーク間、VPN、ExpressRouteトラフィックをフィルタリングできます。ファイアウォールルールは、FQDN(完全修飾ドメイン名)、IPアドレス、およびポートに基づいて作成できます

Azure FirewallとNSGの違い

  1. スコープ:

  • NSG: サブネットまたはネットワークインターフェースレベルで動作します。ネットワークインターフェース(NIC)、VM、またはサブネットからのインバウンドおよびアウトバウンドトラフィックの基本的なフィルタリングを提供することを意図しています。

  • Azure Firewall: VNetレベルで動作し、より広範囲な保護範囲を提供します。仮想ネットワークリソースを保護し、VNetを流入および流出するトラフィックを管理するよう設計されています。

  1. 機能:

  • NSG: IPアドレス、ポート、プロトコルに基づいた基本的なフィルタリング機能を提供します。アプリケーションレベルの検査や脅威インテリジェンスなどの高度な機能はサポートしていません。

  • Azure Firewall: アプリケーションレベル(レイヤー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

ネットワーク仮想アプライアンス(NVA)

Azureにおけるネットワーク仮想アプライアンス(NVA)は、仮想ネットワーク内でネットワーク機能を実行する仮想アプライアンスです。NVAは、Azureではネイティブに利用できないネットワーク機能や、よりカスタマイズが必要な場合に使用されます。これらは基本的に、ファイアウォール、WAN最適化機器、またはロードバランサーなどのようなネットワークアプリケーションやサービスを実行するVMです。

NVAは、複雑なルーティング、セキュリティ、およびネットワークトラフィック管理のタスクに使用されます。Azure Marketplace から展開することができ、そこでは多くのサードパーティベンダーがAzure環境に統合するためのアプライアンスを提供しています。

  • 組織は、NVAを展開してカスタムファイアウォールソリューションを作成することができます。この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 ルートテーブルとユーザー定義ルート(UDR)

Azure ルートテーブルは、Microsoft Azure内でAzure仮想ネットワーク(VNet)内のネットワークトラフィックルーティングを制御する機能です。基本的に、これらはVNet内のサブネット間、VNet間、または外部ネットワークへのパケット転送方法を定義します。各ルートテーブルには、宛先IPアドレスに基づいてパケットのルーティング方法を指定するルートとして知られる一連のルールが含まれています。

Azureのユーザー定義ルート(UDR)は、Azureルートテーブル内で作成するカスタムルートであり、Azure仮想ネットワーク(VNets)内およびVNets間、および外部接続のネットワークトラフィックの流れを制御します。UDRを使用すると、Azureのデフォルトのルーティング決定を上書きし、特定の要件に応じてネットワークトラフィックを指示する柔軟性が得られます。

これらのルートは、仮想アプライアンスを介してトラフィックをルーティングする必要があるシナリオ、セキュリティやポリシーの遵守のための特定の経路を強制する必要がある場合、またはオンプレミスネットワークと統合する必要がある場合に特に役立ちます。

  • あるVNet内のサブネット間のトラフィックを検査するためにネットワーク仮想アプライアンス(NVA)を展開したとします。あるサブネットから別のサブネットへのすべてのトラフィックをNVAを介してルーティングするUDRを作成できます。この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 Storage、Azure SQL Database、およびPrivate Linkを介して共有されるカスタムサービスなど、さまざまなAzureサービスと組み合わせて使用できます。これにより、独自のVNet内または異なるAzureサブスクリプションからサービスを安全に利用する方法が提供されます。

プライベートエンドポイントにはNSGが適用されないため、Private Linkを含むサブネットにNSGを関連付けても効果がありません。

  • Azure SQL Databaseに安全にアクセスしたい場合を考えてみましょう。通常、これは公共インターネットを経由する必要があります。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サービスエンドポイント

Azureサービスエンドポイントは、直接接続を介してAzureサービスに仮想ネットワークのプライベートアドレススペースとVNetのアイデンティティを拡張します。サービスエンドポイントを有効にすることで、VNet内のリソースはAzureのバックボーンネットワークを使用してAzure StorageやAzure SQL DatabaseなどのAzureサービスに安全に接続できます。これにより、VNetからAzureサービスへのトラフィックがAzureネットワーク内に留まり、より安全で信頼性の高い経路が提供されます。

  • たとえば、Azure Storageアカウントはデフォルトでパブリックインターネット経由でアクセス可能です。VNet内でAzure Storageのサービスエンドポイントを有効にすることで、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 バックボーンネットワークを介して移動します。

  • エンドポイントは Azure サービスへの直接接続であり、VNet 内のサービスに対してプライベート IP を提供しません。

  • サービス自体は、VNet の外部からの公開エンドポイントを介してアクセス可能ですが、サービスファイアウォールを構成してそのトラフィックをブロックしない限り。

  • サブネットと Azure サービスの間には一対一の関係があります。

  • Private Links よりも費用が安くなります。

Private Links:

  • Private Link は、プライベートエンドポイントを介して Azure サービスを VNet にマッピングします。これは、VNet 内のプライベート IP アドレスを持つネットワークインターフェイスです。

  • このプライベート IP アドレスを使用して Azure サービスにアクセスし、それがネットワークの一部であるかのように見えるようにします。

  • Private Link を介して接続されたサービスは、VNet または接続されたネットワークからのみアクセスできます。サービスへのパブリックインターネットアクセスはありません。

  • Azure サービスまたは Azure にホストされている独自のサービスへの安全な接続、および他のユーザーが共有するサービスへの接続を可能にします。

  • サービスエンドポイントとは異なり、Private Link は VNet 内のプライベートエンドポイントを介したより細かいアクセス制御を提供し、サブネットレベルでの広範なアクセス制御とは対照的です。

要約すると、Service Endpoints と Private Links の両方が Azure サービスへの安全な接続を提供しますが、Private Links はサービスを公開インターネットにさらさずにプライベートにアクセスすることで、隔離とセキュリティのレベルを高めます。一方、Service Endpoints は、VNet 内でのプライベート IP の必要がなく、シンプルで安全な Azure サービスへのアクセスが必要な一般的なケースに簡単に設定できます。

Azure Front Door (AFD) & AFD WAF

Azure Front Door は、グローバルな Web アプリケーションを高速に配信するためのスケーラブルでセキュアなエントリーポイントです。グローバルな負荷分散、サイトの高速化、SSL オフロード、Web Application Firewall (WAF) 機能など、さまざまなサービスを組み合わせて提供します。 Azure Front Door は、ユーザーに最も近いエッジロケーションに基づいたインテリジェントなルーティングを提供し、最適なパフォーマンスと信頼性を確保します。さらに、URL ベースのルーティング、複数サイトのホスティング、セッションアフィニティ、アプリケーションレイヤーセキュリティを提供します。

Azure Front Door WAF は、バックエンドコードを変更することなく、Web アプリケーションをWeb ベースの攻撃から保護するよう設計されています。SQL インジェクション、クロスサイトスクリプティングなどの脅威に対してカスタムルールと管理されたルールセットを含みます。

  • 世界中のユーザーを持つグローバルに分散されたアプリケーションを想像してください。Azure Front Door を使用して、ユーザーのリクエストをアプリケーションをホストする最も近い地域のデータセンターにルーティングし、遅延を減らし、ユーザーエクスペリエンスを向上させ、WAF 機能で Web 攻撃から守ります。特定の地域でダウンタイムが発生した場合、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

サイト間 VPN

Azureのサイト間VPNを使用すると、オンプレミスネットワークをAzure仮想ネットワーク(VNet)に接続して、Azure内のVMなどのリソースをローカルネットワーク上にあるかのように表示できます。この接続は、両方のネットワーク間のトラフィックを暗号化するVPNゲートウェイを介して確立されます。

  • ニューヨークに本社を置く企業には、AzureのVNetにその仮想化されたワークロードをホストする必要があるオンプレミスデータセンターがあります。サイト間VPNを設定することで、企業はオンプレミスサーバーとAzure VM間の暗号化された接続を確保し、リソースに安全にアクセスできるようになり、両環境間で同じローカルネットワークにあるかのようにします。

列挙

# 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に直接接続し、大規模なデータ転送(例:毎日のバックアップやリアルタイムデータ分析)を、強化されたプライバシーと高速で実現するためにAzure ExpressRouteを選択します。

列挙

# List ExpressRoute Circuits
az network express-route list --query "[].{name:name, location:location, resourceGroup:resourceGroup, serviceProviderName:serviceProviderName, peeringLocation:peeringLocation}" -o table
htARTE(HackTricks AWS Red Team Expert)を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!

HackTricksをサポートする他の方法:

最終更新