policy_ref and every matching action your agent takes is gated at the declaw enforcement layer — with the framework’s control IDs recorded on each denial for audit-ready evidence.
Packs build on declaw’s non-bypassable platform floor (which already blocks living-off-the-land commands, kernel-module loading, cloud-metadata/IMDS access, and metadata egress). A pack adds denials and attaches framework control IDs; it can only tighten policy, never relax it.
Available packs
Browse the live catalog (each pack’s
enforces vs advisory controls, gates, and description):
Honest by design. Each pack distinguishes the controls it actually enforces (a real policy rule that fires a denial) from controls it can only mark advisory (a framework requirement with no runtime signal at the sandbox layer — e.g. organizational process, human-in-the-loop approval, or response-body inspection). A pack never claims a control it can’t enforce. Governance packs are an enforcement + evidence tool, not a legal conformity assessment.
Per-pack controls
The tables below are the authoritative, per-pack breakdown: which gates each pack touches, the framework control IDs it enforces (each backed by a deny rule that fires at the named gate), and which control IDs it can only carry as advisory evidence. The same data is served live fromGET /governance/packs (the enforces and advisory arrays).
Gate names map to the enforcement points described under How it works:
When the same control ID appears under more than one gate (e.g. EU AI Act Art.15 at both
cmd and network), the pack enforces it on every listed gate independently.
baseline-hardening@v1 — Declaw Baseline Hardening
policy_ref: baseline-hardening@v1 · Gates: cmd
Sensible default hardening on top of the platform floor — it adds a single deny rule that blocks reverse-shell / remote-shell tooling a compromised agent commonly reaches for, and attaches three framework IDs to that denial. Safe to apply as an org-wide account floor.
No advisory controls — this pack maps only to what it enforces.
owasp-llm-top10@v1 — OWASP Top 10 for LLM Applications (2025)
policy_ref: owasp-llm-top10@v1 · Gates: cmd, network, content
Advisory (no in-sandbox runtime signal today):
OWASP-LLM03-SupplyChainVulnerabilities, OWASP-LLM04-DataModelPoisoning, OWASP-LLM05-ImproperOutputHandling, OWASP-LLM07-SystemPromptLeakage, OWASP-LLM08-VectorEmbeddingWeaknesses, OWASP-LLM09-Misinformation, OWASP-LLM10-UnboundedConsumption. LLM05/07 await response-body scanning; LLM10 is handled by platform tier concurrency, billing caps, and rate limiting rather than a deny rule.
owasp-agentic@v1 — OWASP Top 10 for Agentic Applications (ASI, 2026)
policy_ref: owasp-agentic@v1 · Gates: cmd, network
Advisory (alignment/structural concerns with no gate signal today):
OWASP-ASI01-GoalHijack, OWASP-ASI03-AgentIdentity (enforced structurally by microVM + per-sandbox network namespace, not a Rego rule), OWASP-ASI05-UnexpectedCodeExecution (constrained by the microVM boundary), OWASP-ASI07-InterAgentComms, OWASP-ASI08-CascadingFailures, OWASP-ASI09-HumanAgentTrust, OWASP-ASI10-RogueAgents.
owasp-mcp@v1 — OWASP MCP Top 10 (2025)
policy_ref: owasp-mcp@v1 · Gates: cmd, network
Targets MCP-server sandboxes.
Advisory (no runtime signal in the current sandbox plane):
OWASP-MCP01-TokenMismanagement, OWASP-MCP08-Audit (covered by the platform audit log — operational config, not a deny rule), OWASP-MCP03-ToolPoisoning, OWASP-MCP04-SupplyChain, OWASP-MCP06-IntentSubversion, OWASP-MCP07-AuthNZ, OWASP-MCP10-ContextOverSharing.
eu-ai-act@v1 — EU AI Act (Regulation (EU) 2024/1689)
policy_ref: eu-ai-act@v1 · Gates: cmd, network
Attaches Article control IDs to denials the enforcement and audit pipeline already generates, for conformity documentation. Not a legal conformity assessment or certification under Annex III or any other provision of the Regulation.
Advisory (process/governance, or platform-pipeline capabilities rather than deny rules):
EU-AI-Act-Art9-RiskManagement, EU-AI-Act-Art11-TechnicalDocumentation, EU-AI-Act-Art12-AutomatedLogging (satisfied by the audit pipeline with control-ID evidence), EU-AI-Act-Art14-HumanOversight, EU-AI-Act-Art19-PostMarketLogging.
nist-ai-rmf@v1 — NIST AI RMF 1.0 + Generative AI Profile (AI 600-1)
policy_ref: nist-ai-rmf@v1 · Gates: cmd, network, lifecycle
Maps NIST AI RMF MANAGE/MEASURE controls plus the relevant SP 800-53 controls.
Advisory (governance/design-time, or GenAI risks with no signal source):
NIST-AI-RMF-GOVERN, NIST-AI-RMF-MAP, NIST-AI-600-1-Hallucination, NIST-AI-600-1-Bias, NIST-AI-600-1-HITL, NIST-AI-600-1-DataProvenance, NIST-AI-600-1-TokenBudget.
iso-42001@v1 — ISO/IEC 42001:2023 (AI Management System)
policy_ref: iso-42001@v1 · Gates: content, lifecycle
Attaches Annex A control IDs to denials the platform already fires, producing structured evidence for an AIMS conformity review.
Advisory (the bulk of Annex A — organisational/process controls):
ISO-42001-4.1, 4.2, 5.1, 5.2, 5.3, 6.1, 6.2, A.2.2, A.2.6, A.3.3, A.4.1, A.5.2, A.6.1, A.7.1, A.7.4, A.8.1, A.8.2, A.9.1 (response-body / output scanning is not yet available).
mitre-atlas@v1 — MITRE ATLAS
policy_ref: mitre-atlas@v1 · Gates: cmd, network
Re-asserts platform-floor kernel-module and IMDS denials under their ATLAS technique IDs so every audit event carries the ATLAS reference.
Advisory (ML attack-staging / model-access / data-poisoning tactics with no sandbox-layer signal):
MITRE-ATLAS-AML.T0005, AML.T0012, AML.T0019, AML.T0020, AML.T0043.
csa-aicm@v1 — Cloud Security Alliance AICM v1.0
policy_ref: csa-aicm@v1 · Gates: cmd, network
Maps the runtime/infrastructure subset of the 18 AICM domains onto declaw denials, cross-referencing the ISO/NIST IDs the platform rules already carry.
Advisory (the remaining ~230 governance, model-lifecycle, supply-chain, and transparency objectives):
CSA-AICM-AIG, MLC, SCM, TRN, RAI, INC, DRM, IAM, BCR, THR, AUD, PRI, EXP, HIT, VUL, CHG, MON, ETH.
prompt-injection@v3 — declaw Prompt-Injection Defense
policy_ref: prompt-injection@v3 · Gates: content
Selects a prompt-injection detection posture, escalates to the Tier-2 LLM judge accordingly, and denies high-confidence injection at the content gate. Author your own content.rego via custom_policy.inline_modules to override the posture — custom injection guardrails through the same OPA framework, no new mechanism.
Advisory:
indirect-injection-multi-turn (cross-domain / multi-turn injection is adjudicated by the Tier-2 judge over session context, which the posture routes to, rather than by a content-gate deny rule) and harmful-assistance-backstop (any static-signature match escalates to the judge, whose backstop adjudicates harm-shaped egress the cheaper layers don’t hard-deny — OPA routes to the judge rather than deciding harm itself).
Enable a pack
Per sandbox (SDK)
Reference a pack in the sandbox’scustom_policy:
Account-wide floor (admin)
Apply a pack as a non-bypassable floor on every sandbox an account creates — no per-sandbox change required:Stacking multiple frameworks
To enforce several frameworks at once, publish a composite bundle (the concatenation of the member packs — denials are additive and tighten-only) and point a singlepolicy_ref at it. Composites are published through the same bundle endpoint and referenced exactly like a single pack.
Model / endpoint allowlists
Some controls (OWASP LLM03 supply-chain, ASI02 tool misuse) need to see the model an agent calls. Opt a sandbox into the content gate so a model-allowlist rule runs on LLM egress even without an ML scanner enabled:input.attributes.model.
Compliance evidence
Every denial a pack produces records the framework control IDs it satisfies (from the rule’s metadata) into the audit log. Pull the per-account compliance report — enabled packs plus denials grouped by control, framework, and gate over a window:How it works
A pack is a set of OPA Rego modules — one per enforcement gate it touches:
Because the agent runs inside the declaw microVM, these gates aren’t advisory — they are the only path the agent’s actions can take. See Network Policies and the security overview for the underlying enforcement model.
How policy_ref is resolved
A policy_ref takes one of three forms, all resolving against declaw-controlled storage only (no arbitrary URL fetch):
Security model. The
sha256: and blob: forms are intentionally content-addressed-global: they ignore the account and read any object in the (dedicated, non-tenant-writable) policy bucket, because shared platform packs and content-addressed dedupe require global reads. Confidentiality of policy text under these forms rests on hash opacity, not access control, and hashes are not secrets. For per-account isolation, use name@version refs; don’t place tenant-confidential policy in the shared bucket expecting per-tenant read scoping. Path traversal and namespace escape are blocked, and resolved policy is never echoed back to the agent.