Microsoft の MXC で AI が書いたコードを箱に入れて実行:Windows を更新しても、2つのつまずきは変わらなかった
AI が書いたコードを、ファイルやネットを制限した「箱」の中で動かす Microsoft Execution Containers(MXC)を、Windows 11 Home で試しました。最初の版(10/16)は PC のビルドが公式の対応表より古かったため、Windows を更新して対応表の範囲に入れてから試し直し、10/16 の結果と比べています。
YouTube のタイトル:Microsoft MXCでAIが書いたコードを隔離して実行:Windows 11 Homeで試した|第7回
この回で試したこと
| PC | Intel Core Ultra 7 265K/Windows 11 Home 26H2(build 26300.9711)/Node.js v24.14.0 |
|---|---|
| MXC | npm の @microsoft/mxc-sdk 1.0.0(MIT)。箱の種類は processcontainer(Process Isolation) |
| 対応表 | processcontainer の 26H2 の最低ビルドは 26300.9550。このPCは範囲に入った(10/16 は 26300.9457 で範囲外)。エディションの記載はない |
| 比べる相手 | 10/16(Windows を更新する前)に同じ形で試した結果 |
| 試し方 | 試すことは実行の前に決めた。各1回(起動の時間だけ各5回、交互に測って中央値) |
結果(実測)
| README の例の形(ui を書かない)で node を実行 | 0xC0000142 で起動の時点で失敗(10/16 と同じ)。ui: { disable: false } にすると動いた |
|---|---|
| ファイルの制限(7項目) | 許した場所の読み書き・書けない場所・一覧にない場所・deniedPaths・消す、は 10/16 と同じ結果。C:\Windows\win.ini は一覧に入れなくても読めた |
| ネットの制限 | egress deny で失敗(ENOTFOUND)、allow で HTTP 200 |
| 起動にかかる時間(node -e "0"、中央値) | そのまま 31.1ミリ秒、箱の中 76.9ミリ秒(差 約46ミリ秒、約2.5倍) |
| 困ったスクリプト(ファイルの node スクリプト) | オプションなしでは lstat 'C:\' の EPERM で1行目より前に失敗(10/16 と同じ)。--preserve-symlinks-main --preserve-symlinks を付けると、出力のフォルダへの書き込みだけでき、秘密のダミーを読む・コピーを消す・通信は拒否された |
| 拒否の記録(captureDenials) | 10/16 は 0件だったが、10/19 は拒否が記録に出た(node の起動の失敗で4件など) |
わかったこと
- Windows を更新して対応表の範囲に入っても、2つのつまずき(ui なしで 0xC0000142、ファイルのスクリプトで lstat 'C:\')は変わらなかった。対応表より古いビルドだけが原因ではなかった
- 変わったのは拒否の記録。ui なしで失敗したときは ui の拒否「ConvertToGui」が、ファイルのスクリプトで失敗したときは C:\ の read の拒否が記録に出た(captureDenials は結果を見てから足した条件)
- 「ui を無効にすると ConvertToGui が拒否され、node が起動の時点で失敗する」と記録は合うが、仕組みは確かめていない(ConvertToGui の意味は名前からの推測)
- 使える箱の一覧に isolation_session が増えた(試してはいない)
結果の範囲
- この PC(Windows 11 Home 26H2 26300.9711)・SDK 1.0.0・processcontainer・各1回の結果です。一般化はできません
- Windows の更新でビルドの番号以外に何が変わったかは確かめていないため、10/16 との違いを「ビルドを上げたから」とは言い切れません
- 「試した項目では効いた」であり、「安全」とは言えません。箱を破る方法は試していません。isolation_session、Windows Sandbox、WSL、hyperlight、長く動く処理、GUI のアプリ、宛先ごとのネットの許可、Home 以外のエディションは試していません
よくある質問
MXC は Windows 11 Home で使えますか?
この回の PC(Windows 11 Home 26H2、build 26300.9711)では isSupported が true で、processcontainer の箱でファイルとネットの制限が働きました。ただし README の例の形(ui を書かない)では node が 0xC0000142 で起動できず、ui: { disable: false } を書く必要がありました。
Windows を更新したら、つまずきは直りましたか?
直りませんでした。対応表の範囲(26300.9550 以上)に入っても、ui なしの 0xC0000142 と、ファイルのスクリプトの lstat 'C:\' の失敗は 10/16 と同じでした。変わったのは、拒否の記録に拒否が出るようになったことです。
箱に入れると、どのくらい遅くなりますか?
node を起動して終わるだけの処理(node -e "0")で、そのまま 31.1ミリ秒、箱の中 76.9ミリ秒(各5回の中央値)でした。ごく短い処理での値です。
MXC で動かせば安全ですか?
この回で言えるのは「試した項目では制限が効いた」ことだけです。箱を破る方法は試しておらず、安全とは言えません。また C:\Windows\win.ini は一覧に入れなくても読めました。
月・水・金の18:00に、話題の技術を手元のゲーミングPCで試した結果を出しています。
チャンネル登録するこのページと動画は、AI(Anthropic の Claude)が検証の記録をもとに作り、人間の運営が公開を承認しています。数値は記録(ログ)の値です。音声:VOICEVOX:春日部つむぎ / 映像の一部:Google Veo(AI生成)