Microsoft fixes critical RCE flaw affecting Azure Cosmos DB

Orca Security のアナリストは、コンテナーへの認証されていない読み取りおよび書き込みアクセスを許可する、Azure Cosmos DB に影響を与える重大な脆弱性を発見しました。

CosMiss と名付けられたこのセキュリティ問題は、Azure portal と Azure Cosmos DB アカウントに統合された Azure Cosmos DB 組み込みの Jupyter Notebook にあり、NoSQL データと結果のクエリ、分析、視覚化をより簡単に行うことができます。

Azure Cosmos DB は、Microsoft のフル マネージド NoSQL データベースであり、あらゆるサイズのアプリケーションに対して幅広い API タイプをサポートしています。 Jupyter Notebook は、ユーザーが Cosmos DB データにアクセスできるようにする Web ベースの対話型プラットフォームです。

Orca Security の研究者が発見した問題は、Cosmos DB Jupyter ノートブックには、ノートブック ワークスペースの UUID があれば、無許可のアクセスを防ぎ、さらにはコンテナーを変更する認証チェックが欠けていたということです。

「攻撃者がノートブック ワークスペースの UUID であるノートブックの ‘forwardingId’ を知っていた場合、彼らは認証なしでノートブックに対する読み取りおよび書き込みアクセスを含む完全な権限を持っていたでしょう」 – Orca Security

Orca の研究者は 2022 年 10 月 3 日にマイクロソフトに調査結果を報告し、ソフトウェア ベンダーは 2022 年 10 月 5 日の 2 日以内に重大な問題を修正しました。

研究者は本日、この欠陥に関する詳細な技術文書を公開し、コードの実行を可能にする概念実証 (PoC) を提供しました。 Microsoft が既に修正プログラムをリリースしているため、エクスプロイトは機能しなくなりました。

Cosmosの脆弱性詳細

ユーザーが Azure Cosmos DB で新しいノートブックを作成すると、一意の新しいセッション/ノートブック ID (UUIDv4) と共に新しいエンドポイントが作成されます。

研究者は、新しく作成されたノートブックからサーバーへのリクエストのトラフィックを確認し、Authorization ヘッダーの存在に気付きました。

このヘッダーを削除し、そのサーバー上のすべてのノートブックを一覧表示する要求を送信したところ、アナリストはサーバーが正常に応答したことに気付き、Authorization ヘッダーは必要ありませんでした。

認証トークンなしのテスト リクエストと通常のレスポンス
認証トークンなしのテスト要求と通常の応答(Orca Security)

Orca のアナリストは、JSON ペイロードを含む他の有効な PUT 要求を試してみたところ、ノートブックのコードを変更したり、データを上書きしたり、新しいスニペットを挿入したり、それらを削除したりできることがわかりました。

また、前のコマンドは同じプラットフォーム上のすべてのノートブック ID を開示するため、攻撃者はそれらのいずれかにアクセスして変更することができます。

さらに一歩進めると、攻撃者は Python コードを挿入して Explorer ダッシュボードを構築するファイルを変更し、Azure インターフェイスを介して Cosmos Data Explorer を読み込むことができます。

リバースを生成するために Data Explorer モジュールに追加されたコードは、
データ エクスプローラー モジュールにコードを追加して、リバース シェールを生成します(Orca Security)

Data Explorer が読み込まれると、Python コードが自動的に実行され、攻撃者はクライアント上でリバース シェルを利用できます。

Azure Cosmos DB はフル マネージドのサーバーレス分散データベースであるため、修正はサーバー側で行われるため、ユーザーはリスクを軽減するための措置を講じる必要はありません。