Skip to content

セキュリティ・サンドボックス

Commander のサンドボックスはすべての実行を隔離し、Petri net スケジューラで資源を形式的に割り当てます。

構造

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

セキュリティ・プロファイル

プロファイルShell書き込みネットワーク用途
READ_ONLYなし読み取りのみ遮断レビュー、非信頼入力
WORKSPACE_WRITEサンドボックス可プロジェクト開発
FULL_ACCESS全面任意CI/CD
HARDENEDなし拒否遮断非信頼コード

ExecPolicy

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

Petri Net スケジューラ

Place容量用途
pending無制限待機
v8_slots10V8 isolate
seccomp_slots4seccomp-BPF
wasm_slots2WASM
tee_slots1TEE
executing / completed無制限実行中 / 完了

遷移 admit_* / complete_*。デッドロック・飽和・安全状態を解析してから入場。

バックエンド

local · ssh · docker。

運用

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

非信頼コードには HARDENED + ネットワーク遮断を既定に。

関連

MIT — マルチエージェント編成のために。