# Microsoft、主要デスクトップ環境で信頼できないコードを隔離するMXCフレームワークを公開

Microsoftは、Windows、Linux、macOS上で、信頼できないコードをポリシーによって制御されたサンドボックス内で実行するためのオープンソースシステム、MXCを公開した。モデルが生成したコード、プラグイン、外部ツールを実行する必要がありながら、それらのワークロードにホストコンピューターへの無制限のアクセスを認めたくないアプリケーションを対象としている。

MXCは、プラットフォーム固有の複数のバックエンドに対して、単一の隔離モデルを提供する。出来事の発生日に閲覧可能だったプロジェクトのドキュメントによると、バックエンドにはOSのプロセスサンドボックスから完全な仮想マシンまでが含まれる。アプリケーションがコンテナー作成要求を送ると、MXCがその内容を検証し、適切なバックエンドを選び、要求された制限を適用してワークロードを起動する。

この抽象化は、アプリケーション開発者が保守しなければならないプラットフォーム固有の隔離ロジックを減らすことを意図している。MicrosoftはRust、.NET、Node.js向けに型付きのソフトウェア開発キットを提供する。Node.jsと.NETのパッケージにはネイティブのランタイム資産が含まれる一方、Rustのパッケージはエンジン、SDK、選択されたバックエンドを利用側のアプリケーションに組み込んでビルドする。SDKを組み込めない開発者は、代わりにMXCの安定したJSONスキーマで表現した要求を使い、プラットフォーム固有の実行プログラムを呼び出せる。

リポジトリは、サンドボックスポリシーには調整が必要になることが多いと強調している。アプリケーションを初めて制限環境に置くと、ファイルや機能へのアクセスが拒否されることがよくある。MXCには、ポリシー作成者がこうした失敗を特定するための診断手段がある。ただし、ドキュメントでは監査モードについて目立つ形で警告している。このモードを有効にするとサンドボックスの保護が無効になるため、本当に信頼できないコードには使用してはならない。監査出力は、すでに信頼されているワークロードのポリシーを作成するためのものだ。

より安全に問題を調べるため、プロジェクトは、隔離を維持したままブロックした操作をログに残す「拒否して記録する」診断手法も説明している。この区別は重要だ。隔離をひそかに解除するデバッグ機能を、未知のモデル出力や第三者製プラグインに対して使えば、フレームワークの中心的なセキュリティ目的を損なってしまうからだ。

MXCは、Microsoftの公式ビルドに含まれる限定的な診断テレメトリーについても説明している。テレメトリーは、個別の実行でのオプトイン、Windowsでのユーザーの同意、管理ポリシーとの整合性、有効化するアプリケーション設定など、複数の条件がそろわない限り無効になっている。管理者はテレメトリーを禁止できるが、ユーザーに代わって同意することはできない。ローカルでコンパイルしたオープンソースビルドはMicrosoftへテレメトリーを送るようには設定されておらず、Windows以外のシステムではテレメトリーは動作しない。

このプロジェクトは、独立したホスト型の実行サービスではなく、開発者が自分のアプリケーションに追加するコンポーネントとして配布される。この設計により、生成されたコードや拡張可能なコードを扱う必要性が高まっているデスクトップおよびサーバーソフトウェアでMXCを活用できる一方、バックエンドの選択や各ワークロードに適したポリシーの定義は、アプリケーションの提供者が責任を負う。