2026-02-09 · Authensor

Zero Trust Architecture for AI Agents

Zero trust architecture for AI agents applies the "never trust, always verify" principle to every action an autonomous agent attempts — file reads, shell commands, network requests, and API calls are all untrusted by default and must be explicitly authorized by policy. SafeClaw by Authensor is a zero trust enforcement engine for AI agents: it sits between the agent's intent and the system, evaluating every action against a deny-by-default policy before any execution occurs.

Quick Start

npx @authensor/safeclaw

Zero Trust Principles Applied to AI Agents

Principle 1: Never Trust, Always Verify

Traditional agent frameworks trust the agent once it is initialized. Zero trust verifies every individual action:

Traditional: Agent initialized → trusted → executes freely
Zero Trust:  Agent initialized → every action evaluated → allow/deny per action

SafeClaw implements this as action-level gating:

version: "1.0"
description: "Zero trust agent policy"

rules:
# Every action must match an explicit allow rule
- action: file.read
path: "src/**"
effect: allow
reason: "ZT: Verified read access to source"

- action: file.write
path: "src/tests/**"
effect: allow
reason: "ZT: Verified write access to test files"

- action: shell.execute
command: "npm test"
effect: allow
reason: "ZT: Verified test execution"

# Zero trust baseline: deny everything unverified
- action: "*"
effect: deny
reason: "ZT: Unverified action — denied"

Principle 2: Assume Breach

Assume the agent may be compromised by prompt injection, model misbehavior, or tool misuse. Design policies that limit blast radius:

rules:
  # Even for allowed file reads, block sensitive paths
  - action: file.read
    path: "*/.env"
    effect: deny
    reason: "ZT-Breach: Assume compromised — block secrets"

- action: file.read
path: "*/credentials"
effect: deny
reason: "ZT-Breach: Assume compromised — block credentials"

- action: file.read
path: "/.ssh/"
effect: deny
reason: "ZT-Breach: Assume compromised — block SSH keys"

- action: network.request
domain: "169.254.169.254"
effect: deny
reason: "ZT-Breach: Block cloud metadata SSRF"

# Then allow what is needed
- action: file.read
path: "src/**"
effect: allow

Principle 3: Enforce Least Privilege

Grant the minimum permissions for the agent's task, nothing more:

# Bad: overly broad
rules:
  - action: file.read
    path: "**"
    effect: allow

Good: scoped to need

rules: - action: file.read path: "src/components/**" effect: allow reason: "ZT-LP: Only component source needed for this task"

Principle 4: Micro-Segmentation

Divide agent capabilities into segments that cannot cross boundaries:

rules:
  # Segment 1: Source code access
  - action: file.read
    path: "src/**"
    effect: allow

# Segment 2: Test execution (isolated from deployment)
- action: shell.execute
command: "npm test"
effect: allow

# Segment 3: No network (complete isolation)
- action: network.request
domain: "*"
effect: deny
reason: "ZT-Seg: Network segment denied for this agent"

# No cross-segment permissions
- action: shell.execute
command: "npm run deploy"
effect: deny
reason: "ZT-Seg: Deployment segment not authorized"

Principle 5: Continuous Verification

Zero trust does not grant one-time access. Every action is verified independently, even if a similar action was allowed moments ago:

14:32:01 — file.read src/app.ts         → ALLOW (rule match)
14:32:02 — file.read src/config.ts      → ALLOW (rule match)
14:32:03 — file.read .env               → DENY  (sensitive path)
14:32:04 — file.read src/utils.ts       → ALLOW (rule match — re-verified)

There is no session trust. No cached permissions. Every action evaluated fresh.

Zero Trust vs. Perimeter Security

| Property | Perimeter (Container Only) | Zero Trust (SafeClaw) |
|---|---|---|
| Trust boundary | Container wall | Each individual action |
| Inside-boundary trust | Full | None |
| Sensitive file protection | Mount-level only | Path-level |
| Shell command control | All or nothing | Per-command |
| Network control | Network namespace | Per-domain |
| Audit granularity | Container start/stop | Every action |

Zero Trust Implementation Checklist

- [ ] Install SafeClaw: npx @authensor/safeclaw
  • [ ] Start with deny-all policy
  • [ ] Add allow rules only for required actions
  • [ ] Block sensitive paths regardless of allow rules (assume breach)
  • [ ] Block cloud metadata endpoints (169.254.169.254)
  • [ ] Scope file access to specific directories (least privilege)
  • [ ] Separate read and write permissions (micro-segmentation)
  • [ ] Enable audit logging for all decisions (continuous verification)
  • [ ] Verify audit chain integrity weekly
  • [ ] Review and tighten policies monthly

Why SafeClaw

See Also

Try SafeClaw

Action-level gating for AI agents. Set it up in your browser in 60 seconds.

$ npx @authensor/safeclaw