概要
Azure Private Endpointの展開における重大な設計上の弱点により、クラウド資産に対する意図的または偶発的なサービス拒否(DoS)攻撃のリッキングが判明しました。この脆弱性は、ハイブリッドネットワーキング構成におけるAzureのPrivate DNSゾーン解決の挙動に起因し、Azureストレージアカウントの5%以上および複数の重要なサービスに影響を及ぼす可能性があります。
脆弱性の詳細
問題の核心は、Azure Private Linkの「バイナリ」な設計思想にあります。ストレージアカウント、Key Vault、CosmosDBなどのAzureリソース用にPrivate Endpointが作成されると、対応するPrivate DNSゾーン(例:privatelink.blob.core.windows.net)が自動的に仮想ネットワークにリンクされます。AzureのDNS解決エンジンは、このPrivate DNSゾーンを優先し、一致する名前解決をすべてパブリックDNSインフラストラクチャではなく、このゾーン経由で強制的に行います。
この問題は、ある仮想ネットワーク(VNET2)にPrivate Endpointが存在する一方で、別の仮想ネットワーク(VNET1)が同じリソースにパブリックエンドポイント経由でアクセスする必要がある場合に顕在化します。Private DNSゾーンが仮想ネットワーク間でリンクまたは共有されている場合、Azureの解決ロジックはVNET1のトラフィックをPrivate DNSゾーン経由で強制します。しかし、このゾーンにはストレージアカウントのDNS Aレコードが存在しないため、名前解決が完全に失敗し、それまで機能していたワークロードに対して実質的なサービス拒否状態を引き起こします。
攻撃ベクトルとシナリオ
この脆弱性を引き起こす可能性のある展開シナリオは以下の3つです。
- 偶発的 (内部): ネットワーク管理者が、セキュリティ向上のためにPrivate Endpointを展開する際、意図せずにPrivate DNSゾーンを共有インフラストラクチャを通じて複数の仮想ネットワークにリンクしてしまうケース。
- 偶発的 (ベンダー): サードパーティベンダーがセキュリティソリューションや監視ツールの一部としてPrivate Endpointを展開し、DNS解決の問題が環境全体に波及するケース。
- 悪意的 (攻撃者): Azure環境へのアクセス権を持つ脅威アクターが、サービス可用性を妨害する目的で意図的にPrivate Endpointを展開するケース。特にKey VaultやFunction Appsのような価値の高いリソースが標的となる可能性があります。
この脆弱性は、Azureサービス全体にわたる連鎖的な障害を引き起こします。ストレージアカウントへのサービス拒否は、Azure Functionsやその後のアプリケーション展開を阻害します。Key Vaultを標的としたDoSは、依存するプロセスが暗号化キーやシークレットにアクセスするのを妨げます。CosmosDB、Azure Container Registry、Function Apps、OpenAIアカウントも同様の影響を受け、ほとんどのAzure環境でこれらのサービスタイプのいずれかに脆弱なリソースが存在し、広範囲な組織的リスクがあることが報告されています。
検出と緩和策
セキュリティチームは、以下のAzure Resource Graphクエリを使用して脆弱な構成を特定できます。
Virtual networks linked to Private DNS zones without corresponding resourcesStorage accounts with public endpoint access but no Private Endpoint connectivityResources allowing public network access with network ACL restrictions
Microsoftはこの問題を既知の制限として認識しています。部分的な解決策として2つの方法が存在します。
- 仮想ネットワークリンク作成時に「fallback-to-internet DNS resolution」を有効にする(ただし、これはPrivate Linkのセキュリティ目標と矛盾します)。
- 影響を受けるリソースのDNS AレコードをPrivate DNSゾーンに手動で追加する(運用管理の労力がかかります)。
組織は、Resource Graphクエリを使用して包括的なAzure環境スキャンを実施し、Private Link構成をマッピングすべきです。必要に応じてフォールバックDNS解決を実装し、重要なリソースに対しては手動でのDNSレコード管理と組み合わせ、潜在的な攻撃を示すDNS解決失敗に関するネットワークログを監視することが推奨されます。
元記事: https://gbhackers.com/azure-private-endpoint-deployments-expose/
