Azure Cosmos DB の Jupyter Notebooks に存在する深刻な RCE の脆弱性が FIX

Microsoft fixes critical RCE flaw affecting Azure Cosmos DB

2022/11/01 BleepingComputer — Orca Security のアナリストたちが、Azure Cosmos DB で発見した深刻な脆弱性は、コンテナへの認証されていない読み取り/書き込みを可能にするものだ。Azure Cosmos DB や Azure Portal のアカウントにビルトインされ、NoSQL データの容易なクエリ/分析/可視性を統合する Jupyter Notebooks に、この CosMiss と名付けられたセキュリティ脆弱性は存在する。

Azure Cosmos DB は、Microsoft のマネージド NoSQL データベースであり、あらゆる規模のアプリケーションに対応する、幅広い API タイプのサポートを特徴としている。また、Jupyter Notebooks は、Cosmos DB のデータにアクセスする、Web ベースの対話型プラットフォームである。

Orca Security の研究者たちが発見した問題は、Cosmos DB Jupyter Notebook に、不正アクセスを防止するための認証チェックが欠けていたことだ。つまり、Notebook Workspace の UUID さえあれば、コンテナを変更できるというものだ。

Orca Security のブログには、「Notebook Workspace の UUID である Notebook の forwardingId を、攻撃者が知っている場合には、認証を必要とせずに Notebook に対する読み取り/書き込みなどの、フルパーミッションを持つことができた」と記されている。

2022年10月3日に Orca の研究者たちは調査結果を Microsoft に報告し、その2日後の2022年10月5日に、この脆弱性は修正された。

今日になって Orca の研究者たちは、この脆弱性に関する詳細な技術的記述を公開し、コード実行を可能にする PoC エクスプロイトを提供した。ただし、すでに Microsoft が修正プログラムをリリースしているため、この PoC は機能しないだろう。

CosMiss の詳細

ユーザーが Azure Cosmos DB 上で新しい Notebook を作成すると、一意の新たな Session/Notebook ID (UUIDv4) を用いて、新たなエンドポイントが作成される。

研究者たちは、新規作成された Notebook からサーバへ向けられたリクエストのトラフィックを確認し、Authorization Header の存在を発見した。

続いて、このヘッダーを削除して、対象サーバ上の全 Notebook をリストアップするリクエストを送信したところ、サーバが正常に応答したことで、Authorization Header が不要になっていることが判明した。

Test request without auth token and normal response
認証トークンなしのテストリクエストと正常なレスポンス (Orca Security)

また、Orca のアナリストたちは、JSON ペイロードを含む別のタイプの PUT リクエストを試すことで、Notebook のコード修正や、データの上書き、新たなスニペットを注入/削除ができることを発見した。

また、前述のコマンドは、同じプラットフォーム上の全 Notebook ID を公開するため、あらゆる Notebook ID へのアクセス/変更が、攻撃者に許される状態になってしまう。

さらに一歩進んだ攻撃者は、Python コードを注入して Explorer Dashboard を構築するファイルを変更し、Azure インターフェース経由で Cosmos Data Explorer をロードできる。Data Explorer がロードされると、Python コードが自動的に実行され、攻撃者はクライアント上でリバースシェルを使用できるようになる。

Code added onto the Data Explorer module to spawn a reverse shall
リバースシャルを生成するために Data Explorer モジュール上に追加されたコード (Orca Security)

Azure Cosmos DB は、フルマネージド・サーバーレス分散型データベースであるため、今回の修正はサーバ側で行われているため、リスク軽減のためのユーザー対応は不要である。

Update 11/1: Microsoft の Security Response Center も、この修正に関するレポートを公開している。実質的に、この問題の影響を受けたのは、ごく一部のユーザーであることを強調している。

なお、Microsoft は、「Jupyter Notebooks を使用していないユーザー (Azure Cosmos DB ユーザーの 99.8%は Jupyter Notebooks を使用していない) は、この脆弱性の影響を受けなかった」と説明している。

Azure Cosmos DB における Jupyter Notebooks とは、サードパーティ・アドオンの一種のようです。この記事を最後まで訳してみて、その影響の範囲は、Azure Cosmos DB ユーザーの 0.02% に過ぎないことが分かりました。Orca と Microsoft の、それぞれの発表を見比べてみると、かなりの温度差があることが分かります。なお、このブログを Plugin で検索してみると、WordPress だけではなく、Jenkins や Notepad++ といったサービスでも、アドオンに関連する問題が発生している状況が分かります。

%d bloggers like this: