SECURITY DOCS

AgentPaaS threat model

This threat model maps each threat to its attack path, the control that contains it, the evidence behind that control, and what is not covered. Read how enforcement works and the known limitations.

STRIDE-condensed threat model

ThreatAttack pathControlLimitation / evidence
Malicious or buggy AI code exfiltrates secretsOutbound HTTP, DNS, or raw socketBrokered credentials, internal-only network, gateway-only egress, DNS stub, default deny, payload-hash auditHTTP/HTTPS is checked at the gateway; raw non-HTTP traffic is blocked by isolation.
Secret theft from image or registryKeys baked into layersKeychain broker, gateway injection, pack-time scannerDirect leases are explicit compatibility mode.
Prompt-injected unauthorized tool callsMCP/tool call to non-approved serverMCP allow-list by server ID and per-tool policyPer-tool argument constraints are later phase.
Container escapeKernel/runtime exploitNon-root, read-only rootfs, no shell, dropped capabilities, seccomp, no privileged mode, resource capsNot a sandbox against kernel 0-days.
Supply chain, our dependenciesCompromised base image or dependencyPinned digests, SBOM, go mod verify, dependency checksRelease controls do not remove upstream risk.
Supply chain, user dependenciesTyposquatted Python packageLocked installs, SBOM, advisory scan in pack outputA locked dependency can still be vulnerable.
Trigger API abuseReplay or brute forceIdempotency keys, constant-time compare, rate limit, lockout, auditExposure requires API-key authentication.
Audit tamperingAttacker edits logsHash-chained JSONL, checkpoint signatures, signed export manifest, audit verifyVerification proves edits after the checkpoint.
Daemon compromiseLocal privilege escalationDaemon as user, socket 0600, no setuid, OS keychain APIsLocal mode trusts the developer machine.
Malicious webhook targetsHook used as exfiltration channelHook destinations are policy-checked egressOnly declared destinations are reachable.
Dashboard exposureAccidental 0.0.0.0 bindLoopback default, --expose needs API key, CSRF tokens, strict CSPGateway-native ingress is deferred in P1.
Domain frontingSNI does not match HostGateway cross-checks SNI, Host, DNS answer; mismatch denied and auditedControl covers the gateway path.

ARCHITECTURE INVARIANT

One gateway per run

Every agent run receives its own dedicated gateway sidecar. A shared gateway across agents or runs is prohibited. Separate runs have no network path to each other, their gateways, or their brokered credentials. Cross-agent traffic uses workflow-scoped internal networks with per-binding capabilities.

WHAT WE DO NOT CLAIM

AgentPaaS is not a sandbox against kernel 0-days. Container hardening is not gVisor. Outbound DLP is fingerprint-based, not semantic. The P1 red-team suite is a fast smoke gate, not a full adversarial research corpus or pentest. Local mode trusts the developer's machine; we protect against the agent, not against the user.

SHARING THREATS

An impersonator is addressed by TOFU pinning and out-of-band fingerprint verification. A stolen publisher key is out of scope for v0.2.0, with no revocation until B26. Protect publisher keys as long-lived credentials.

Last reviewed August 2026