Microsoftは10月7日、Microsoft Execution Containers(MXC)を一般提供した。エージェント自身に権限を管理させず、開発者や組織が決めたポリシーをエージェントの外側で執行する実行境界だ。
MXCには3つのモードがある。執行(Enforcement)モードは許可されていないアクセスを遮断し、学習(Learning)モードは遮断しつつ記録し、許可(Permissive)モードは許可しつつ記録する。
学習・許可モードが残すJSONのアクティビティレポートは、WindowsのMXCプロセスコンテナーでのみ作られる。
3つのモードが答える別々の問い
執行モードは、ポリシー上その作業が許可されるかを確かめる。学習モードは、権限をすぐ広げずに、正当な作業がなぜ失敗したかを示す。
許可モードは、ポリシーが止めなければ作業が何を試みたかを示す。その記録があることは、その動作が分離されたという意味ではない。
コーディング作業なら、変更するリポジトリ、読むだけでよい設定、アクセスしてはならない無関係なファイルを分けてポリシーを検討できる。依存関係のダウンロード、コンパイラーの呼び出し、子プロセスの実行は、それぞれ必要なアクセスが異なる。
注意点:許可学習モードで緩む分離
MXCリポジトリの文書によると、許可学習モード(permissiveLearningMode)は実行中に既定の拒否を執行しない。そのためセキュリティ上機微な機能に分類され、有効になるたびにセキュリティ警告が記録される。
一方、学習モードの拒否記録(learningModeLogging)はアクセスを拒否し続けるため、分離の水準は変わらない。発表は、許可モードもOSや組織の他の制限までは回避しないと説明している。
学習モードの機能はWindows専用で、AppContainerベースのバックエンドにのみ適用され、他のプラットフォームでは無視される。この文書は変更されうるmainブランチの時点で読んだもので、固定した実行ファイルは試していない。
探索と実際の許可を分ける導入手順
権限を把握する段階では、信頼でき範囲の狭い作業だけを実行する。観測したアクセスをすべて許可リストに移さず、それぞれが作業に必要かを確認する。
想定外のアクセスは、権限を与える理由ではなく作業を調べる理由かもしれない。
次に、意図したポリシーを執行モードで動かして両面を確認する。確認するのは、必要な作業が成功するか、意図的に禁止した動作が拒否され続けるかだ。
これは推奨する確認手順であり、ここでMXCを試した結果ではない。ポリシーのバージョンとバックエンドを結果と一緒に残せば、後の変更も同じ境界に照らして検討できる。
プラットフォームごとに異なる分離バックエンド
Microsoftは、プロセスコンテナーにWindowsではAppContainer、macOSではSeatbelt、LinuxではBubblewrapを使うと説明している。Windows 11とLinux向けのMicroVMは実験段階で、バックエンドごとにセキュリティ特性が異なる。
Entraによるエージェントの区別とIntuneのポリシー管理は、近く提供される機能として紹介された。今回の発表だけで、今すぐ使えるとは言えない。
MXCの許可モードの記録は必要な権限の候補リストにすぎず、境界は執行モードで改めて確かめたときに初めて証明される。
