distributed-system-audit — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited distributed-system-audit (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A separate skill from codebase-audit. That one walks the code in one repo; this one walks the system: many processes, many trust boundaries, protocols between them, and the failure modes that don't exist when everything runs in one process.
The biggest mistake auditors make on distributed systems is treating them as N independent code audits. The interesting findings live between the components, in the assumptions they make about each other.
Pairs with codebase-audit for the per-component code-level work, kubernetes-security if the control plane is K8s, message-bus-security for the messaging layer, agent-client-security for the client-side.
The first deliverable of a distributed-system audit is an architecture diagram you produced, not the findings. Until you can draw every component and every channel between them, you don't understand the system well enough to audit it.
Spend the first 30% of the engagement on the map. It pays off triple.
┌────────────────────┐
│ Web Admin UI │
└─────────┬──────────┘
│ HTTPS + session cookie
┌─────────▼──────────┐
┌─────────────────│ Control Plane API ├───────────────────┐
│ └─────────┬──────────┘ │
│ │ │
write events │ writes │ writes
│ ▼ ▼
┌─────▼─────┐ ┌────────────┐ ┌────────────────┐
│ Audit log │ │ Postgres │ │ Object storage │
└───────────┘ │ (tenancy) │ │ (user uploads) │
└─────┬──────┘ └────────────────┘
│
┌──────────▼──────────┐
│ Message bus (NATS) │
└──────────┬──────────┘
publishes commands
│
┌────────────┼────────────┐
▼ ▼ ▼
┌────────────┐ Agent_1 Agent_2 ...
│ Agent_n │ (host A) (host B)
│ (host Z) │ customer machines
└────────────┘For each arrow, you need to know: protocol, auth, encryption, who-trusts-whom, replay protection, ordering guarantees.
For each component, capture:
For each channel:
The matrix often surfaces the first findings: a channel with no auth, a channel with auth but no replay protection, two channels that share a credential, etc.
Draw the trust boundaries on the diagram. A trust boundary is where data crosses from a context with one trust level to a context with another. Common boundaries:
For each boundary, ask:
A trust-boundary failure typically produces the highest-severity findings in a distributed audit.
For each component and each channel, walk STRIDE:
| Letter | Threat | Distributed-system flavor |
|---|---|---|
| S Spoofing | Pretending to be a different identity | A rogue agent impersonating a legitimate one |
| T Tampering | Modifying data in transit or at rest | A man-in-the-middle on the agent ↔ control-plane channel |
| R Repudiation | Denying an action you took | An agent that did something but the log shows nothing |
| I Information disclosure | Leaking data | Telemetry containing customer data sent to all agents |
| D Denial of service | Making the system unavailable | One rogue agent flooding the bus |
| E Elevation of privilege | Acting beyond your authority | A worker agent accepting commands from another agent rather than the control plane |
Full STRIDE per channel is a long exercise. For a small-team audit, a 30-minute pass per major component identifies the high-risk threats. Document them; the rest of the audit then targets them.
For every channel, three classes of issue to chase:
Can a captured message be re-sent later and be accepted as new?
Replay protection is the single most-skipped distributed-system control. Search for "we use HMAC so the message is signed" — signature without freshness is replay-vulnerable.
Can messages arrive out of order, and does that break the receiver?
Findings here look like: "agent receives commands A then B; B depends on A; if reconnect happens between them, agent sees B first and acts on stale state."
Can a participant inject messages that look like they come from another participant?
message-bus-security for bus-specific concernsDistributed systems live in distributed time. Common findings:
For each, the audit asks: is there an explicit handling? What's the tolerance?
A distributed system has failure modes a monolith doesn't. Walk:
Each unhandled mode is a finding. "It's never happened" is not a defense — it will eventually.
When something bad happens, can you tell what happened?
Common audit findings:
See log-strategy for the broader pattern.
If multiple tenants share the system:
For high-stakes multi-tenancy (regulated data, large customers), the audit recommendation is often "harden current setup and plan a per-tenant isolation level."
Catalog of typical findings in real audits:
agent.> subscribers receive other tenants' messagesEach maps to a specific check during the audit.
Same general shape as codebase-audit:
Critical findings are communicated to the client the same day they're discovered — see incident-response.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.