/docs/security
Documentation GuidesZero-Trust prototype v1.0.0

Security & OCI Sandboxing

3-layer defense-in-depth isolation, host blocking middleware, and pluggable OCI runtime strategies.

Security & OCI Sandboxing

prototype enforces multi-layer isolation to prevent containerized workloads from accessing the host management control plane or local network services.


🛡️ 3-Layer Defense-in-Depth Model

Isolation is enforced across network boundaries, application HTTP middleware, and kernel capability controls.

Architecture Diagram
Rendering architecture diagram...
LayerThreat MitigatedTechnical Enforcement
1. Network BoundaryLocal LAN/WAN ScanningExplicit 127.0.0.1 binding and null-routing host.docker.internal:127.0.0.1 inside containers.
2. Host MiddlewareREST API Tampering from ContainersContainerHostIsolationMiddleware rejects requests originating from Docker bridge subnets (172.16.0.0/12).
3. Kernel HardeningPrivilege Escalation & Fork BombsStrips capabilities (CapDrop: ALL), enforces no-new-privileges: true, and applies Seccomp syscall filters.

📦 Pluggable OCI Runtime Strategies

Run workstations under standard Linux cgroups, user-space virtualized kernels, or hardware-isolated microVMs.

RuntimeIsolation LevelMemory OverheadBest Suited For
runc (Default)Linux Namespaces + cgroups v2~0 MB (Native)Daily development, VS Code, daily web coding
runsc (gVisor)Intercepted User-Space Virtual Kernel~15-30 MBUntrusted script execution, dynamic analysis, zero-trust sandboxes
kata-runtimeHardware QEMU / Cloud-Hypervisor MicroVM~100 MBMulti-tenant isolation with hardware hypervisor boundaries
crunFast C-Based Native OCI RuntimeMinimalLow-latency microservices and batch workloads

Host Docker Daemon Registration

Register alternate OCI runtimes in /etc/docker/daemon.json and restart the Docker engine:

json
{
  "runtimes": {
    "runsc": {
      "path": "/usr/bin/runsc"
    },
    "kata-runtime": {
      "path": "/usr/bin/kata-runtime"
    },
    "crun": {
      "path": "/usr/bin/crun"
    }
  }
}

🔒 Kernel Capabilities & Safe Profile

Containers drop all capabilities by default, retaining only strictly unprivileged permissions necessary for desktop initialization:

yaml
# Default Hardened Capability Profile
cap_drop:
  - ALL
cap_add:
  - CHOWN
  - DAC_OVERRIDE
  - FOWNER
  - SETGID
  - SETUID
  - NET_BIND_SERVICE
  - KILL
security_opt:
  - no-new-privileges:true