Skip to content
PERMISSION/PROTOCOL

Security

Scanning Isn't Control. Here's the Difference.

Permission Protocol3 min read

The takeaway

AI security scanners find vulnerabilities. Runtime governance prevents them. Assessment and enforcement are different layers, here's why you need both.

The idea, illustrated

Finding a risk and stopping an action are different jobs.

Different controls answer different questions

  1. 01

    Assess

    Inspect the proposed action and identify relevant risks.

    What could go wrong?

  2. 02

    Authorize

    Apply policy and obtain human approval where required.

    May this action proceed?

  3. 03

    Enforce

    Check that decision on the path to the protected action.

    Can this path be bypassed?

Assessment, authorization and enforcement complement each other; none substitutes for all three.

Conceptual control layers. A scan supplies findings; authorization makes a decision; the execution boundary must enforce that decision.
In this article

AI security tools are having their moment. Scanners, red-teamers, compliance checkers, all focused on the same question: "Is your agent safe?"

That's an important question. But it's not the only one.

A scan that says "your agent can send emails without approval" is useful when you read it. After that, the vulnerability still exists. Knowing about it and preventing it are different things.

The Three Questions

Before you ship an AI agent, you need answers to three things:

1. Who approved this agent's access?

There should be a name, a timestamp, and a policy behind every action your agent can take. A specific human who said "yes, this agent can touch production."

2. What happens when it goes wrong?

When the agent makes a bad call at 3 AM, what stops it? Is there a kill switch? Does it escalate to a human? Or does it keep running?

3. Can you prove it to your board?

When a regulator or customer asks "how do you control your AI agents?", you need a live audit trail of every action, every approval, every denial, not a scan report from last quarter.

Two Layers, Both Necessary

Security assessment tools (scanners, red-teamers) answer: "Here's what could go wrong."

They find vulnerabilities, unprotected tool calls, shared memory, missing input validation. This is valuable work. Every team should do it.

Runtime governance answers: "This is what we won't allow to go wrong."

It enforces permission boundaries on every agent action, in production, in real time. The agent cannot deploy, send, delete, or access without an authority receipt.

Assessment identifies problems. Governance prevents them.

What This Looks Like In Practice

An agent with a security scan and no runtime governance:

  • ✅ Identified 5 unprotected tool calls
  • ❌ All 5 still execute in production
  • ❌ No audit trail when something breaks
  • ❌ No evidence of control for customers or regulators

An agent with runtime governance:

  • ✅ Every tool call requires an authority receipt
  • ✅ High-stakes actions require human approval before execution
  • ✅ Kill switch can halt any agent instantly
  • ✅ Immutable audit trail mapped to OWASP, NIST, ISO
  • ✅ Compliance is a byproduct of how the system works

The strongest setup uses both. Scan to find gaps. Govern to enforce boundaries.

Permission Protocol

We built the governance layer. One SDK call wraps any agent action in an authority receipt:

@require_approval(resource="production", action="deploy")
def deploy_service():
    deploy("billing-api")

No receipt, no execution. Every approval logged. Every denial recorded. Every escalation tracked.

Assessment tells you where the risk is. Governance makes sure the risk doesn't materialize.

Try it: Run npx @permission-protocol/cli scan . to find unprotected actions in your agent codebase. Then install the SDK to enforce boundaries.

Put it into practice

Inspect an example receipt

Inspect a published authorization record, its scope and its verification details.

Keep reading