Skip to content

Sandbox de sécurité

Le sandbox Commander isole chaque exécution et alloue les ressources via un ordonnanceur Petri net.

Architecture

sandbox/
├── execPolicy.ts / approval.ts / profiles.ts / platforms.ts
├── manager.ts / executionRouter.ts / lane.ts
├── seccompBpf.ts / teeEnclave.ts / petriNetScheduler.ts
├── networkProxy.ts / backends/ (local, ssh, docker)
└── types.ts

Profils

ProfilShellÉcritureRéseauUsage
READ_ONLYNonLectureBloquéRevue, entrée non fiable
WORKSPACE_WRITESandboxéProjetOKDev
FULL_ACCESSCompletToutOKCI/CD
HARDENEDNonRefuséBloquéCode non fiable

ExecPolicy

typescript
interface ExecPolicy {
  allowShell: boolean;
  allowNetwork: boolean;
  allowFileWrite: boolean;
  allowFileDelete: boolean;
  allowedPaths: string[];
  deniedPaths: string[];
  maxExecutionTime: number;
  maxMemory: number;
}

Petri net

PlaceCapacitéRôle
pendingIllimitéeFile d’attente
v8_slots10Isolates V8
seccomp_slots4seccomp-BPF
wasm_slots2WASM
tee_slots1TEE
executing / completedIllimitéesEn cours / finis

Transitions admit_* / complete_*. Analyse deadlock / saturation avant admission.

Backends

local · ssh · docker.

Ops

bash
export COMMANDER_MODE=read-only
npx tsx packages/core/src/cliEntry.ts plan "audit this repo"

Pour du code non fiable : HARDENED + réseau bloqué.

Voir aussi

MIT — Conçu pour l’orchestration multi-agents.