概要
- 2025年4月、Microsoft Copilot Enterpriseに Jupyter NotebookベースのPythonサンドボックス が密かに導入された事例
- サンドボックスは Linuxコマンド実行やファイル操作 が可能で、特定の脆弱性も存在
- パスの設定ミス によりroot権限で任意コード実行が可能だった
- 脆弱性は 報告後に修正 されたが、報奨金の対象外
- 詳細な調査内容と今後の講演案内
Microsoft Copilot EnterpriseのJupyter Notebookサンドボックス調査
- 2025年4月、 Copilot Enterprise にJupyter Notebookベースの ライブPythonサンドボックス が導入
- ユーザーは %command構文 でバックエンドにコード実行指示が可能
- 実行環境は Linuxのubuntuユーザー、miniconda環境
- ubuntuユーザーは sudoグループ所属 だが、sudoバイナリは未配置
- Python 3.12 採用(ChatGPTは3.11)、新しいカーネルバージョンで稼働
- 主な機能は Jupyter Notebook とTikaサーバの実行
- OverlayFS を利用し、/legion配下からファイルシステムをマウント
- カスタムスクリプトは /appディレクトリ に配置
- ファイル操作は /mnt/data で行い、blob:https://outlook.office.com/<guid>形式で外部からダウンロード可能
- goclientappバイナリ が6000番ポートでWebサーバを起動し、/executeエンドポイントでコード実行
- httpproxyバイナリ も存在し、将来的な外部HTTP通信に備えた構成
サンドボックスの動作と制限
- 初回コマンドでのファイルダウンロード要求は失敗、セッションの状態に依存
- バイナリファイルは破損しやすい が、base64エンコードを使えば多くの場合正常に取得可能
- テキストファイルやコマンド出力は問題なく取得 可能
- /mnt/data ディレクトリが作業領域として利用される
脆弱性の発見と検証
- entrypoint.shスクリプト がroot権限で実行され、途中で 権限をubuntuユーザーにドロップ
- pgrepコマンド がフルパス指定なしで実行され、$PATH内の先頭にある /app/miniconda/bin がubuntuユーザーから書き込み可能
- 悪意あるpgrepスクリプト を配置することで、root権限で任意コード実行が可能
- 実際の攻撃例として、/mnt/data/inのコマンドを読み取り、出力を/mnt/data/outに書き込むPythonスクリプトを作成
- root権限取得後も コンテナの分離は強固 で、/rootや重要ログにはアクセス不可
- 既知のコンテナブレークアウト手法は全て対策済み
Microsoftへの報告と対応
- 2025年4月18日 にMicrosoftに脆弱性を報告
- 2025年7月25日 に修正済み通知、同日ケースクローズ
- 中程度(moderate) の脆弱性として扱われ、バグバウンティ対象外
- Microsoft Online ServicesのSecurity Researcher Acknowledgments にて謝辞のみ
講演案内と今後の調査
- BlackHat USA 2025 での講演「Consent & Compromise: Abusing Entra OAuth for Fun and Access to Internal Microsoft Applications」
- 日時:2025年8月7日(木)13:30~、ラスベガス
- Responsible AI Operationsコントロールパネル や21の内部Microsoftサービスへのアクセス詳細を解説予定
Eye Securityについて
- ヨーロッパ拠点のサイバーセキュリティ企業
- 24/7の脅威監視、インシデント対応、サイバー保険サービスの提供
- 積極的な脅威情報収集とリサーチ活動 を展開
- 詳細はhttps://eye.security/、LinkedInでも情報発信