2.4 KiB
2.4 KiB
Security Invariants
These rules override every lower-level requirement.
- No arbitrary execution. No generic shell, command, script, or interpreter tool may be exposed.
- No raw Docker capability. The Docker socket is mounted only into the dedicated read broker. No raw Docker API proxy exists.
- No arbitrary file access. Every readable path is registered, canonicalized, allowlisted, and mounted read-only.
- No unrestricted SQL. v1 has no general database query tool. Future database access must use a dedicated least-privilege account and query guard.
- No secret retrieval. Secrets can be consumed internally but never returned, indexed, audited verbatim, or shown in UI.
- Deny by default. Absence of an explicit binding or allow decision means deny.
- Project and environment isolation. Every invocation is checked against both dimensions; dev access never implies prod access.
- Connector revalidation. Each connector validates caller context and target allowlists; gateway visibility is insufficient.
- Audience-bound tokens. A token must be issued for the Hub resource and trusted issuer. Token forwarding to unrelated services is prohibited.
- Bounded input and output. Requests, logs, repository files, search results, and lists have strict limits and pagination.
- Sanitized audit. Audit records identify the action without storing access tokens, passwords, private keys, connection strings, or unlimited payloads.
- No destructive tools. v1.0 target-system capabilities are read-only. Post-v1 bounded writes must remain reversible and may not expose merge, delete, force-push, default-branch mutation or repository administration.
- Reversible deployment. Migrations and upgrades require backup, health verification, and a tested rollback or restore path.
- No implicit permission expansion. Adding a connector or tool does not expose it to existing clients until explicit bindings are reconciled.
- Untrusted content remains data. Repository files, docs, logs, and MCP results may contain prompt injection; they never modify policy or authorization.
WP-160 additions
Connector and dataplane target URLs must use HTTPS and must not resolve from an unsafe IP literal or metadata/localhost hostname. The security scan is fail-closed for non-fixture secret patterns, raw Docker mounts, mutable third-party images, unsafe host/container settings, and unintended published ports.