![[レポート]クラウド全体への汚染拡大:SSRFの連鎖によるAzureテナント侵害 (CVE-2025-29972) - CODE BLUE 2025 #codeblue_jp #codeblue2025](https://devio2024-media.developers.io/image/upload/f_auto,q_auto,w_3840/v1763382832/user-gen-eyecatch/p6pszynqcpicdb0iauum.jpg)
[レポート]クラウド全体への汚染拡大:SSRFの連鎖によるAzureテナント侵害 (CVE-2025-29972) - CODE BLUE 2025 #codeblue_jp #codeblue2025
こんにちは、臼田です。
みなさん、セキュリティ対策してますか?(挨拶
今回はCODE BLUE 2025で行われた以下のセッションのレポートです。
クラウド全体への汚染拡大:SSRFの連鎖によるAzureテナント侵害 (CVE-2025-29972)
クラウドプラットフォームは内部コンポーネント間の深い信頼関係に依存していますが、その信頼が損なわれたらどうなるでしょうか? この講演では、Azure の Storage Resource Provider における CVSS 9.9 の重大な脆弱性である CVE-2025-29972 の発見と悪用について発表します。古典的な SSRF から始まる多段階の攻撃チェーンを明らかにし、これを利用して ID メタデータの取得プロセスを乗っ取り、任意のテナントの Azure Active Directory (AAD) トークンを漏洩させます。
私たちの研究では、従来の DNS リバインディングを無効にする最新のキャッシング防御を回避するために構築された、新しい DNS リバインディング技術である「Spray&Pray4Bind」を紹介します。SSRF からトークンの悪用、水平移動、そして最終的に SFTP パスワードの再生成まで、完全なエクスプロイトを順を追って説明します。これはテナントストレージを危険にさらすものです。マイクロソフトの内部攻撃研究に基づいて、この講演では、クラウドサービスにおける信頼の破綻が完全な侵害につながる可能性があることを示し、複雑なクラウド環境を保護するための防御的な洞察を提供します。
Speakers
Vladimir Tokarev ウラジミール・トカレフ
レポート
- 以前Microsoftに在籍していたときの内容
- 分析をどうするの?
- 静的分析から動的分析
- バグを見つけて報告
- Azure Strageに送り
- 場合により公表される
- 概要
- AzurePortalでリソースマネージャーから
- 様々なテナントがある
- ストレージアカウントがある
- セキュリティインパクト
- CVE-2025-29972
- 4つのboundariesがある
- テナント、コントロールデータ、サービストラスト、ネットワーク
- 今回はネットワーク、サービス、コントロールも越えた問題だった
- SSRF Discovery
- SRP
- コントロールプレーン
- エンドポイントでアクセスできる
- ストレージアカウントがありポリシーがある
- 1つのスコープが暗号化
- Encryption Scope
- ユーザーごとのキーならメタデータがある
- SRPがMIRPにクエリして確認する
- どうなっているのか詳しく
- encryptionscopeがある
- 認証情報を抽出してトークンを生成する
- 2つめのリクエストの回答としてIdentityメタデータが保存される
- GET、AADトークン抽出、GET、回答を保存
- SSRFの問題がある
- メタデータをコールする
- どうエクスプロイトするか
- それほど簡単ではないfeatureflagで保護されている
- 基本このフラグをON
- エクスプロイト
- encryption soce作成
- 共有する
- 新しいurlでアップデート
- トークンがどのように取得されるか
- Get MIRP URLから開始
- トークンを抽出してリターンする
- 攻撃者がMIRPを真似できればいい
- SRP
- どうやって攻撃者がエクスプロイトするか
- 準備
- 独自ドメインを作る
- MIRPサーバーが必要
- DNSも必要
- DNS飲む気を変える
- 攻撃者がEncryption Scopeを作成
- urlを新しいものにする
- TTL0で返してDNS Rebinding
- 準備
- Azure Tokenで何が駅るか?
- すべてのことができる
- resource manager
- storage servie
- key value
- sql
- graph api
- すべてのユーザーがAADが必要
- 攻撃者はStrage accountの操作ができる
- クロスサービスの操作ができる
- 強力なベクターとなる
- 水平移行でテナント内の他のリソースを発見できる
- ポリシーにアクセスして攻撃のセットアップ
- すべてのベクターは簡単に利用されるわけではない
- Scopeのミスマッチがある
- ネットワーク分離
- 外部環境
- Identity
- ロジック分離
- 選んだエンドポイントに投げられない
- 攻撃するためにはうまくエンドポイントにたどり着く必要がある
- どうやるか?
- ガンダルフに送るときにDNS Reebindingを使う
- 任意の場所に送ることができる
- 1回目のリクエストで返すアドレスと2回目で返すアドレスを変える
- あとから攻撃に利用するアドレスに変える
- しかし簡単にはうまく行かない
- DNSのキャッシュがある
- すべてのことができる
- 攻撃者がどうバイパスするか
- Spray&Pray4Bind
- sprayしてbindする
- 15秒のTTLにして
- 5分に近いところでクエリをする
- 攻撃が成功したら色々できる
- 情報取得やファイルの削除
- その他の展開をしていく
- Azure Storageプロバイダーを攻撃
- SRPに対するSRP攻撃
- regeneratePassword
- プライベートな情報で入手困難
- しかし安全ではない場所に保存されている場合も
- パスワードを再生成して攻撃
- 持続的なDoSが可能になる
- しかしもっと強力な攻撃はできる?
- ssh passwordがある
- ssh passwordが削除される
- Storage Accountのテイクオーバーができる
- ネットワークをsniffingすればいいが難しい
- 対策
- すべてのAzureを制覇したわけではない
- 多層的な防御があるため
- ネットワークの分離
- 通信を暗号化する
- Telemetryとログ
- ホストの分離
- Mitigations
- URL検証
- DNS Rebindingの緩和
- cache TTL
- 外部のIdentityを信用してはいけない
- データを保護する
感想
なかなかの攻撃チェーンの流れですね。DNS Rebindingも含めて、サービスの連携を考える必要がありますね。







