Contact Open demo
Blog

A route is not proof of use

Sascha BuhleFounder & CEO
Research

Activity

Every event on this issue's paths, one lane per entity · newest first
ops-automation-agentDecisionDev Patel assigned an issue on ops-automation-agent
ops-automation-agentDecisionDev Patel opened an issue on ops-automation-agent
ops-automation-agentops-automation-agent wrote to northstar-build-artifacts
ops-automation-agentops-automation-agent wrote to northstar-build-artifacts
ops-automation-agentops-automation-agent read prod/payments/stripe-key
ops-automation-agentops-automation-agent wrote to northstar-build-artifacts
ops-automation-agentops-automation-agent wrote to northstar-build-artifacts
nerl0Reproduced
ops-automation-agentops-automation-agent wrote to northstar-build-artifacts
ops-automation-agentops-automation-agent wrote to northstar-build-artifacts
ops-automation-agentops-automation-agent wrote to northstar-build-artifacts

When a security tool shows you that an AI agent can reach a production secret, the next question is always the same: did it? Has anyone actually used that route?

It is a fair question. It is also easy to answer wrongly in both directions. A route that exists is not proof that it was used. And a route that was never used is not harmless.

In this piece, we will cover:

  • The difference between granted authority and observed activity
  • Why a route you never used can still be a problem
  • What "proven" means and what it does not
  • How to act on a route without overclaiming

Two different questions

There are two things you can know about access.

Granted authorityObserved activity
The questionWhat is this identity allowed to do?What did this identity actually do?
Where it comes fromRoles, grants, keys, trust relationshipsLogs, audit events, usage records
What it tells youThe limit of what could happenWhat has happened so far
What it cannot tell youWhether it was usedWhat could happen next

Most security conversations mix the two. "The agent accessed the secret" is a claim about activity. "The agent can access the secret" is a claim about authority. They need different evidence and lead to different actions.

Why an unused route still matters

It is tempting to say: nothing happened, so there is nothing to fix. That reasoning ignores who else can use the route.

  • A token can be copied. Whoever holds it inherits every route it opens, whether or not the agent ever used them.
  • A role can be assumed by other accounts. The route is open to all of them.
  • An agent can be steered by the content it reads. Its authority is the limit of what such an instruction can do.

Authority is the ceiling on the damage. Activity tells you whether the ceiling has been touched. You need to manage the ceiling either way.

Why a route is not a breach

The opposite mistake is just as costly. Telling a team that "the agent accessed production data" when you only know that it could damages trust in the whole programme. The first time an engineer shows that the route was never used, every other finding gets doubted too.

Precision is not pedantry here. It is what keeps people working through the list.

What "proven" means in nerl0

In nerl0, a route is marked proven when every step in it is an observed relationship in the configuration and permission data of the platforms you connected: the agent holds the token, the token can assume the role, the role can read the store. Proven describes the route. It does not say that anyone used it.

That is why every answer in the product carries a note on what it cannot show. A scan may have collected only part of a platform. A relationship may exist that the connector could not read. The answer tells you which.

Compare scans ⌄+  ⤢  ✕
Compare scans
⌁ Compare scans▤ 4 steps ›

5 measures changed between the scan of 7 Nov 07:00 and the scan of 9 Nov 07:00.

Latest scan against the previous one9CSV
MeasurePreviousLatestChange
Agents3941+2
MCP servers56+1
Shadow agents000
Agents without a confirmed owner220
Identities5152+1
Identities without a confirmed owner110
Data stores5961+2
Crown-jewel stores440
Open findings7778+1
Source: GET /api/v1/inventory/history, GET /api/v1/findings/history
Inventory over the last 12 scans8 Oct 2026 – 9 Nov 2026CSV
9708 Oct9 Nov
Open findingsData storesIdentitiesAgents
Counts of each published scan's inventory, with today's classifications and governance applied to every scan; open findings per scan. Source: GET /api/v1/inventory/history, GET /api/v1/findings/history
What this answer cannot show
  • The scan of 7 Nov 07:00 collected salesforce only partly: a difference there can be a difference in visibility, not in your environment.
  • Counts compare totals; they do not say which entities came or went. Latest changes on the dashboard lists them per question.
Evidencescan · 49a998c6-0408-4bc7-982e-8e454fb1d5fescan · e07c354c-4aaa-4e30-b18f-8a1468449688
Export answer (JSON)
Open the dashboard ↗Open Exposure Insights ↗
Page · Dashboard ×

Ask anything, @ charts & metrics, or / for skills…

+Claude Sonnet 5.5◜ Normal◌ Auto⌖↑
An answer in the nerl0 demo workspace, with the note on what it cannot show. All data shown is fictitious demo data.

How to act on a route

  1. Rank by what it reaches. Routes to crown jewels come first, whatever their activity history.
  2. Find the breakpoint. The single change that interrupts the most routes: a role that is assumed too widely, a key with too much scope.
  3. Say what you know. In the ticket, write "this route exists", not "this was exploited", unless you have the logs that show it.
  4. Verify the fix. After the change, the next scan should show that the route is gone. If it does not, the finding stays open.

Summary

Granted authority and observed activity answer different questions. A route that exists is not proof of use, and a route nobody used is still a ceiling on what can go wrong. Work on the route, describe it for what it is, and let the next scan confirm the fix.

Sascha BuhleFounder & CEO, nerl0

Sascha writes about what AI agents and non-human identities can reach, and builds nerl0 to keep that visible.

See it on your own data.