Skip to main content
The Recommended Starting Policies pack covers the actions AI coding agents can take that a security team would otherwise have to discover the hard way. This page is the threat-modelling view of that same pack — the layers it covers, the rules in each layer, and the rationale for each action tier. It’s the one-pager to bring to your security review.

Layers and coverage

Six layers, mapped to the rules in the recommended pack. Every layer has at least one Block (or Warn, where the agent supports it) for catastrophic actions and at least one family-wide Audit rule for visibility. The classifier maps recognised commands into these layers, and each high-risk family also carries a family-wide Audit rule as a backstop. The Recommended Starting Policies page has the exact When → If → Then for every rule named above, plus a prompt you can paste into your agent to watch it fire.

Why each tier exists

The pack ships with three action tiers, not because we like options, but because the underlying threats split cleanly into three buckets. Block — the action is irreversible or production-scoped, and there is no realistic recovery if the agent gets it wrong. A dropped table, a deleted CloudFormation stack, a direct push to main — none of these are undone by a polite “are you sure?” prompt to the developer five minutes later. Block stops the command at the hook, before the syscall, with a message the agent reads back. Warn — the action is risky but legitimate sometimes, and the agent is one of the tools that supports an inline confirmation prompt (Claude Code and Copilot today). Warn is a UX nicety, not a security boundary: on agents that don’t support it, use Block for the same outcome (the command is stopped) or use Require Slack Approval to keep a human in the loop with no developer-side prompt at all. Audit — the action is routine but worth a paper trail. The point of Audit isn’t to prevent — it’s to give your security team the data to decide what to lock down next. The family-wide Audit rules (one per high-risk family) are the biggest driver of analytics volume in the pack; that’s by design. Once you’ve watched a few days of traffic in Analytics → Tool Use → Terminal Run, you’ll know which Audits to promote to Block and which to narrow.

Threat-by-threat reading guide

If your security review goes layer-by-layer, the rule of thumb for each:
  • L1 (Production damage): every rule that names *prod* should ship as Block. Anything broader — terraform apply, EC2 launch, helm upgrade — stays Audit until you’ve seen who’s running them.
  • L2 (Data exfiltration): the pack Audits every dump and external upload (env, printenv, curl posts, secret retrievals) so you see who’s doing what. Block secret deletion outright — that one is irreversible. Promote the env-dump and upload Audits to Block once you’ve baselined the noise and decided which destinations are sanctioned.
  • L3 (Identity and privilege): Block anything that grants admin or escalates to root (AdministratorAccess attach, cluster-admin binding, sudo su -, ssh root@). Audit key-creation operations; agents rotate keys legitimately during onboarding.
  • L4 (Lateral access): Block any SSH or remote exec where the host name contains prod. Audit cloud-context switches; they’re cheap to log and high-signal when reviewed.
  • L5 (Configuration drift): Block writes under /etc/, /usr/, /var/, /opt/, plus direct pushes to main/master. Audit container image pushes for the supply-chain trail.
  • L6 (Destructive data ops): Block DROP, TRUNCATE, unscoped DELETE. Audit UPDATEs; agents legitimately patch settings rows.

Where this maps in the product

  • The 38 rules in Recommended Starting Policies implement everything above, each with the exact Command Family · Match (If) values that Unbound’s classifier extracts and a prompt you can paste into Claude Code, Cursor, or Copilot to watch the policy fire end-to-end.
  • For policies on MCP tool calls (GitHub, Slack, Notion, Linear, filesystem MCP), see Tool Policy Examples — same threat layers, different surface.
  • For platform background and where things live in the UI, see the Onboarding Playbook.

Sharing this with your team

This page is the answer to “show me how Unbound covers our threats.” It’s stable enough to drop into a security deck verbatim — share the URL, screenshot the table, or paste the layer rows into your own threat-model template. Once you’ve reviewed the layers and decided which to enforce first, head back to Recommended Starting Policies and apply the pack — the page has the When → If → Then rule for every layer.