Shield Security
VaultCrux Shield is the policy-control layer for MCP tools and state-changing API actions.
Runtime mode
- Default rollout mode:
SHIELD_MODE=observe - Enforcement mode:
SHIELD_MODE=enforce - Mandatory promotion gate: hold
observefor at least 48 hours with paid-path canary green before switching toenforce. - Recommended promotion order:
FEATURE_SHIELD_ENABLEDFEATURE_SHIELD_ENFORCE_CAPABILITYFEATURE_TRUST_REGISTRY_ENFORCE_DIGESTFEATURE_SANDBOX_RUNNERFEATURE_SHIELD_ENFORCE_TAINTFEATURE_SHIELD_ENFORCE_APPROVALSFEATURE_SAMPLING_GUARDIANFEATURE_UI_APP_SANDBOXFEATURE_KILL_SWITCHES
Minimum production promotion set
After observe window and passing runbook checks:
SHIELD_MODE=enforceFEATURE_UI_APP_SANDBOX=trueFEATURE_KILL_SWITCHES=true
Rollback baseline:
SHIELD_MODE=observeFEATURE_UI_APP_SANDBOX=falseFEATURE_KILL_SWITCHES=false
Enforcement surfaces
- MCP tool calls run through Shield decision evaluation before execution.
- Mutating API routes use Shield mutation guard with structured denial responses.
- Every evaluated decision is written to:
vaultcrux.shield_decisionsvaultcrux.event_outbox(shield.decision)
Policy domains
- Capability firewall: unknown/unmanifested tools and dangerous-local class controls.
- Trust registry + digest pinning:
trusted_publisherstrusted_server_digestsrevoked_digests
- Approval workflow:
approval_requestsapproval_resolutions- approval token header:
x-shield-approval-token
- Taint controls:
taint_events- blocked taint event class:
shield.taint.blocked
- Kill switches:
kill_switcheskill_switch_audit
- Sampling/UI safety:
sampling_policiessampling_auditui_app_integrity_sessions
Shield control-plane endpoints
GET /v1/shield/capabilitiesGET|POST /v1/shield/trust/publishersGET|POST /v1/shield/trust/digestsPOST /v1/shield/trust/digests/revokeGET|POST /v1/shield/serversPOST /v1/shield/servers/:serverId/statusPOST /v1/shield/approvals/proposePOST /v1/shield/approvals/:approvalRequestId/resolveGET /v1/shield/approvals/:approvalRequestIdGET|POST /v1/shield/kill-switchesDELETE /v1/shield/kill-switches/:killSwitchIdGET|POST /v1/shield/sampling-policiesGET|POST /v1/shield/ui-integrity-sessionsGET|POST /v1/shield/incident-drills
UI sandbox and approvals
- Tool-provided UI must remain sandboxed and integrity-bound to server digest/session metadata.
- Approval actions must occur in first-party chrome, not inside tool-provided UI.
- Integrity sessions for UI rendering are tracked in
ui_app_integrity_sessions.
Security e2e scripts
From VaultCrux repo root:
bash
pnpm e2e:shield:capability
pnpm e2e:shield:trust
pnpm e2e:shield:approval-taint
pnpm e2e:shield:sandbox
pnpm e2e:shield:sampling
pnpm e2e:shield:kill-switch
pnpm e2e:shield:strict
pnpm exec tsx scripts/e2e-incident-redteam.tspnpm e2e:shield:strict is the release gate lane and runs all Shield security e2e scenarios in enforce mode. pnpm exec tsx scripts/e2e-incident-redteam.ts records incident drill evidence and replays the quarterly red-team control checks.

