Zero-Trust Container Sandbox & Ingress Hardening
Because VulnerGuard orchestrates 14 sibling scanner containers, it requires programmatic control to dispatch commands inside isolated worker sandboxes. However, exposing an unrestricted container runtime socket directly to application services is a critical privilege-escalation risk.
VulnerGuard eliminates this risk by enforcing a Scoped Container Runtime Proxy (vg-runtime-proxy), strict API allowlisting, and loopback-only ingress bindings.
1. How vg-runtime-proxy Protects the Host Runtime
Instead of exposing the raw container daemon socket to vg-core-api or vg-mcp-orchestrator, only vg-runtime-proxy interfaces with the underlying runtime (in read-only mode) and exposes an allowlist-filtered control channel to authorized orchestrator services.
┌──────────────────────────┐ ┌───────────────────────────────────┐ ┌────────────────────────┐
│ vg-core-api │ │ vg-runtime-proxy │ │ Container Runtime │
│ vg-mcp-orchestrator ├───────►│ (Layer-7 API Allowlist Filter) ├───────►│ Control Plane │
│ │ Scoped │ • ALLOW: Worker Exec & Inspect │ RO │ │
│ │ Socket │ • BLOCK: Container Creation │ │ │
│ │ Mount │ • BLOCK: Volumes / Host Mounts │ │ │
│ │ │ • BLOCK: Swarm / Secrets / Auth │ │ │
└──────────────────────────┘ └───────────────────────────────────┘ └────────────────────────┘
Runtime Proxy Allowlist Policy
| Runtime API Capability | Policy | Security Rationale |
|---|---|---|
Worker Inspection & Exec (CONTAINERS / EXEC) | ALLOWED | Permits vg-core-api and vg-mcp-orchestrator to verify worker readiness and execute authorized scanner binaries inside pre-provisioned tool containers. |
Image Layer Metadata (IMAGES / INFO / PING) | ALLOWED | Allows vg-worker-trivy and health monitors to inspect image SBOM layers and runtime readiness. |
Volume & Network Mutation (VOLUMES=0 / NETWORKS=0) | DENIED (403) | Prevents any service from mounting host filesystems or bridging into unauthorized network planes. |
Cluster & Secret Control (SWARM=0 / SECRETS=0 / AUTH=0) | DENIED (403) | Blocks cluster reconfiguration, secret exfiltration, and registry credential access. |
2. Resilient Directory-Scoped Socket Mounting
To ensure high availability across service restarts without stale file-descriptor lockups:
- The runtime proxy publishes its filtered control socket inside a dedicated, permission-scoped parent directory mount rather than a single-file bind mount.
- If the runtime proxy is recycled during maintenance, the directory inode remains stable and all orchestrator workers immediately resume communication with zero downtime.
3. Loopback-Only Ingress & Edge TLS Termination
To guarantee that no internal microservice, database, or scanner worker can ever be reached directly from the public internet:
- Zero Public Container Port Bindings: None of the internal API, database, scanner, or SOC containers publish public interfaces.
- Single Loopback Ingress: Only
vg-edge-gatewaybinds to the host loopback interface behind the edge reverse proxy. - TLS 1.3 Edge Termination: Public HTTPS traffic for
vulnerguard.comterminates at the hardened TLS 1.3 edge proxy with strict HSTS,X-Frame-Options: SAMEORIGIN, andX-Content-Type-Options: nosniffheaders.