Skip to content

docs: MXC execution-container integration design (Phase 1 plan)#15

Merged
brandwe merged 1 commit into
mainfrom
docs/mxc-sandbox-design
Jun 9, 2026
Merged

docs: MXC execution-container integration design (Phase 1 plan)#15
brandwe merged 1 commit into
mainfrom
docs/mxc-sandbox-design

Conversation

@brandwe

@brandwe brandwe commented Jun 8, 2026

Copy link
Copy Markdown
Member

Summary

Engineer-review output: the design to add MXC (Microsoft Execution Containers) OS-level sandboxing to entrabot. Pairs entrabot's identity/attribution with MXC's containment — the full Build-2026 secure-agent story.

docs/architecture/DESIGN-mxc-sandbox.md. Research input: docs/platform-learnings/mxc-windows-sandbox.md (already on main).

Scope

  • Phase 1 (build): contained local execution via MXC process isolation — macOS (Seatbelt) + Windows (processcontainer) — driven from Python via the MXC native binary + JSON policy. New entrabot/sandbox/ module (mirrors platform/) + an operator-opt-in run_code MCP tool.
  • Phase 2 (stub + document): Entra-bound, Intune-governed session isolation. Stubbed only — the platform surfaces aren't GA (citations in the doc).

Supersedes the AppContainer sandbox production implementation TODO (prior CEO-review premise "sandbox co-equal with identity").

Hardened against an independent review (3/10 → resolved)

A fresh-context review flagged real gaps; all incorporated:

  • run_code off by default (ENTRABOT_ENABLE_RUN_CODE=1 to enable) — it's a new model-invocable surface inside a sandbox MS says "isn't a security boundary yet."
  • Positive-allowlist-only, backend-aware, fail-closed ceiling. The LLM may only narrow (Learning #54). deniedPaths is unsupported on Windows, so the ceiling never relies on allow-broad+deny.
  • No token in the sandbox; keychainAccess hard-banned in Phase 1.
  • Binary verified by pinned commit + SHA256 before exec; build-from-source opt-in; structured argv, no shell; config via stdin/0700 file (not argv).
  • Audit redaction schema + error taxonomy; adversarial integration tests; output size-cap + redaction.
  • No overclaiming: Phase-1 attribution is entrabot bookkeeping, not OS-level Entra binding.

What's not buildable yet (cited for stakeholders)

The Entra-bound, Intune-governed session-isolation story is announced, not GA — Windows blog future-tense ("will be used"), Insider-build-only, "not a security boundary yet." Internal verification (eng.ms / ES Chat) was inconclusive; an inquiry to the MXC owners is recommended. Full citations in the doc.

Docs-only. No code yet — implementation is the task list in the doc.

🤖 Generated with GitHub Copilot CLI

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

DESIGN-mxc-sandbox.md — Phase-1 plan to add MXC OS-level sandboxing to
entrabot via a new entrabot/sandbox/ module + an operator-opt-in run_code
MCP tool (off by default). Hardened against an independent review:
- run_code disabled unless ENTRABOT_ENABLE_RUN_CODE=1
- positive-allowlist-only, backend-aware, fail-closed policy ceiling
  (LLM may only narrow — Learning #54); deniedPaths unsupported on Windows
- no token in the sandbox; keychainAccess hard-banned in P1
- binary verified by pinned commit + SHA256 before exec; build-from-source
  opt-in; structured argv, no shell; config via stdin/0700 file
- audit redaction schema + error taxonomy; adversarial integration tests
- Phase-2 (Entra-bound session isolation) stubbed + documented; not GA

Supersedes the AppContainer TODO (sandbox co-equal with identity).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@brandwe brandwe force-pushed the docs/mxc-sandbox-design branch from fef180d to 720112b Compare June 9, 2026 23:55
@brandwe brandwe merged commit 3885469 into main Jun 9, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant