direkt zum inhalt

5. Oktober 2026kiunternehmen

security-audit von Cloudflare: ein Sicherheits-Audit-Skill für Claude Codecloudflare's security-audit skill: a full repository audit for claude code

Der security-audit-Skill von Cloudflare prüft ein Repository in sechs Phasen mit isolierten Hunter- und Verifier-Agenten. Ich zeige, wie er in mein bestehendes Sicherheitssystem passt, wo er eine Lücke schließt und welchen Stolperstein ich bei der Installation gefunden habe.Cloudflare's security-audit skill checks a repository in six phases with isolated hunter and verifier agents. I show where it fits in my security system, what gap it fills and the snag I ran into during installation.

Im Skills-Beitrag vom 29. September habe ich drei Werkzeuge geprüft, darunter VibeSec als Sicherheits-Skill beim Schreiben von Code. Im answer-me-with-html-Beitrag vom 5. Oktober und im Mods-Beitrag kamen weitere Skills dazu. Heute beschreibe ich einen Skill, der anders ansetzt: statt beim Schreiben von Code prüft er ein fertiges Repository nach Sicherheitslücken.

Ein Schloss, drei Karten mit Symbolen und ein Stift auf dunklem Stein
Titelbild KI-generiert, als solches gekennzeichnet.
dateien mit angriffsklassen11Web, Auth, LLM, Supply-Chain, Cloud, RPC, Ressourcen, Daten, Desktop, Mobile, Memory-Safety u. a.
phasen je audit6Reconnaissance, Suche, Validierung, Ausgabe, Belege, Bericht
urteile3confirmed, needs_validation, rejected; je mit Pflicht-Quellspur

der security-audit-skill

Das Repo ist cloudflare/security-audit-skill. Laut README ist es der Skill, aus dem Cloudflares Vulnerability-Harness entstand. Cloudflare beschreibt den Hintergrund im Blogbeitrag "Build your own vulnerability harness".

Umfang: 21 Dateien, 5.276 Zeilen. Das ist kein einfaches Checklisten-Dokument. Die SKILL.md hat 192 Zeilen, dazu kommen drei Ablaufdateien und elf Dateien mit Angriffsklassen: Web und Auth, Client-Side, LLM und Agenten, Supply-Chain und Release, Cloud und Deployment, RPC und Messaging, Ressourcenerschöpfung, Datenisolation, Desktop, Mobile und IPC sowie Memory-Safety. Zwei Node-Validatoren ohne externe Abhängigkeiten prüfen die Ausgabe gegen ein Schema: validate-findings.cjs und validate-coverage-ledger.cjs, beide mit Tests.

sechs phasen

  1. 1 reconnaissance

    architecture.md und coverage-ledger.json werden angelegt. Diese Dokumente steuern alle weiteren Phasen.

  2. 2 suche

    Isolierte Hunter-Agenten suchen parallel. Ein Kritiker sucht danach nach Lücken im Coverage-Ledger.

  3. 3 validierung

    Frische Verifier-Agenten versuchen, jeden Kandidaten zu widerlegen. Bestätigt ist ein Fund erst mit vollständiger Quellspur und beobachtetem Ergebnis.

  4. 4 ausgabe

    findings.json wird gegen report-schema.json validiert. Ungültige Einträge werden abgewiesen.

  5. 5 belege

    Frische Agenten prüfen die finalen Quellbelege noch einmal.

  6. 6 bericht

    Drei Dateien: REPORT.md, FINDINGS-DETAIL.md und NEEDS-VALIDATION.md.

Phase 1 ist Reconnaissance: Das Modell legt architecture.md und coverage-ledger.json an. Diese beiden Dokumente steuern alle weiteren Phasen.

Phase 2 ist die Coverage-geführte Suche: Isolierte Hunter-Agenten arbeiten parallel. Ein Kritiker sucht danach nach Lücken im Coverage-Ledger.

Phase 3 ist die Kandidaten-Validierung: Frische Verifier-Agenten versuchen, jeden Fund zu widerlegen. Bestätigt ist ein Fund erst mit vollständiger Quellspur und beobachtetem Ergebnis.

Phase 4 ist die strukturierte Ausgabe: findings.json gegen report-schema.json validiert. Ungültige Einträge werden abgewiesen.

Phase 5 ist eine unabhängige Prüfung der finalen Quellbelege durch frische Agenten.

Phase 6 ist der Bericht: REPORT.md, FINDINGS-DETAIL.md und NEEDS-VALIDATION.md.

Vor jeder Welle werden Kritiker und Verifier reserviert. Reicht das Budget nicht, werden Einheiten zurückgestellt statt dünn geprüft.

drei urteile

Drei Urteile: confirmed braucht Quellspur und Ergebnis, needs_validation behält Funde ohne ausreichenden Beleg, rejected entfernt widerlegte Funde
urteilbedeutungbedingung
confirmedFund ist gültigvollständige Quellspur und beobachtetes Ergebnis vorhanden
needs_validationoffene Tatsache, keine Severityeine benannte Tatsache ist offen, z. B. keine Sandbox für Zielcode
rejectedFund ist widerlegtVerifier hat den Fund erfolgreich widerlegt

Jeder Fund bekommt eines von drei Urteilen. Confirmed bedeutet: vollständige Quellspur und beobachtetes Ergebnis liegen vor. Needs validation bedeutet: eine genau benannte Tatsache ist noch offen, zum Beispiel weil Zielcode ohne Sandbox nicht laufen darf. Solche Funde bekommen keine Severity. Rejected bedeutet: der Verifier hat den Fund erfolgreich widerlegt.

Ein Fund ohne Quellspur und Ergebnis bekommt nie confirmed. Das verlangt die SKILL.md ausdrücklich.

profile und kosten

Drei Profile: quick für den Alltag, standard als Default für reguläre Audits, deep für Auth und Billing vor einem Launch
profilagenteneinsatz
quickeine Hunter-Welle, ein Abschluss-KritikerAlltagsprüfung, scoped Diffs
standardvier Reconnaissance-Agenten + Hunter je Welle, plus Kritiker und Verifier (Default)reguläre Audits
deepEinheiten je Subsystem, Kritiker-Wellen bis sauberAuth, Billing-Code, Pre-Launch

Quick ist ein begrenzter Durchgang für kleine Ziele oder einen ersten Blick. Standard ist der Default: vier Reconnaissance-Agenten plus Hunter pro Welle, dazu Kritiker und Verifier. Deep ist für große oder kritische Ziele: Einheiten je Subsystem, Kritiker-Wellen bis zu einem sauberen Durchgang.

Kosten steigen schnell, weil jede Welle mehrere Agenten parallel startet. Für scoped Runs kann man einen Pfad, ein Subsystem oder einen Diff zwischen zwei Refs angeben. Alles außerhalb gilt als out_of_scope, nicht als covered. Läufe sind additiv.

in mein sicherheitssystem

Vier Sicherheitsschichten: Hook und VibeSec in BUILD, Diff-Review vor SHIP, security-audit für Gesamt-Repo-Checks vor einem Launch
schichtzeitpunktaufgabe
security-guidance-Hookjeder Edit (BUILD)prüft jede Dateiänderung auf unsichere Muster, läuft vor /codex:adversarial-review
VibeSecbeim Schreiben (BUILD)lädt bei Web-Code mit Auth, Eingaben, SQL oder Weiterleitungen; ändert, wie Code geschrieben wird
/security-review + /codex:adversarial-reviewDiff (REVIEW)prüft den aktuellen Diff aus zwei unabhängigen Perspektiven
security-auditGesamt-Repo (REVIEW / Pre-Launch)Sechs-Phasen-Audit mit Hunter- und Verifier-Agenten, Beleg je Fund, Ausgabe nach .ai/security-audit/

Ich habe heute den Skill installiert und in mein bestehendes System eingeordnet. Die anderen Schichten laufen schon länger:

  • Der security-guidance-Hook prüft jeden Edit auf unsichere Muster.
  • VibeSec lädt beim Schreiben von Web-Code mit Auth, Eingaben, SQL oder Weiterleitungen.
  • /security-review und /codex:adversarial-review prüfen Diffs.

Was fehlte: ein Audit über das ganze Repository mit Belegen je Fund. Das ist die Lücke, die security-audit füllt.

Die Original-Skill-Beschreibung ist sehr breit ("Use for security questions, focused reviews ..."). Das hätte VibeSec verdrängt. Ich habe die description auf ausdrückliche Repo-Audits oder Pfad-Audits begrenzt und auf VibeSec, /security-review und /codex:adversarial-review verwiesen.

installation

installation

terminal
# global installieren, nur für Claude Code
npx skills add https://github.com/cloudflare/security-audit-skill \
  --skill security-audit --global -a claude-code

# Prompt in Claude Code (Beispiele aus dem README)
# security audit this codebase
# find security vulnerabilities in ./src

stolperstein: 56 agenten-ordner

Der Installationsbefehl mit -y hat den Skill in 56 Agenten-Ordner verlinkt: Devin, Goose, Roo, Windsurf und viele weitere. Eine Installation (PromptScript) schlug fehl. Ich habe 53 Links wieder entfernt. Geblieben sind drei: ~/.agents/skills (Quelle), ~/.claude/skills und ~/.codex/skills.

Tipp: Mit -a claude-code legt die CLI den Skill nur im Claude-Code-Ordner ab.

meine neue regel

Ich habe eine neue Regel in meine globale CLAUDE.md aufgenommen: Repo-Audit vor Launch oder bei Auth und Billing mit security-audit, Profil quick oder scoped. Deep nur für Auth, Billing oder Pre-Launch. Ausgabe nach <repo>/.ai/security-audit/. Auf dem Server nie /tmp als Schreibziel. Danach /codex:adversarial-review.

Den ersten eigenen Audit-Lauf habe ich noch nicht durchgeführt. Keine Fundzahlen, keine Laufzeiten. Das kommt in einem eigenen Beitrag.

der kern in drei sätzen

Der security-audit-Skill von Cloudflare prüft ein Repository in sechs Phasen mit isolierten Hunter- und Verifier-Agenten. Bestätigt wird ein Fund nur mit vollständiger Quellspur und beobachtetem Ergebnis. In mein bestehendes Sicherheitssystem füllt der Skill eine Lücke: den Gesamtüberblick über ein Repository vor einem Launch.

häufige Fragen

Was macht der security-audit-Skill?

Er prüft ein Repository oder einen Pfad in sechs Phasen auf Sicherheitslücken. Isolierte Hunter-Agenten suchen parallel, Verifier-Agenten versuchen jeden Fund zu widerlegen. Das Ergebnis sind drei Dateien: REPORT.md, FINDINGS-DETAIL.md und NEEDS-VALIDATION.md.

Was kostet ein Lauf?

Standard startet vier Reconnaissance-Agenten plus Hunter, Kritiker und Verifier. Das ist nicht günstig. Quick ist das Alltagsprofil. Deep lohnt sich nur für Auth, Billing oder einen bevorstehenden Launch.

Worin unterscheidet sich der Skill von VibeSec?

VibeSec ändert, wie Claude Code neuen Code schreibt. Der security-audit-Skill prüft bestehenden Code rückwirkend. Beide ergänzen sich: VibeSec beim Schreiben, security-audit beim Audit.

Kann der Skill gefährlichen Code ausführen?

Laut SKILL.md läuft Zielcode nur in einer Sandbox. Fehlt sie, führt das Modell nichts aus und meldet den Fund als needs_validation. Das ist eine Anweisung an das Modell, keine technische Sperre.

quellen und stand

Stand: 05.10.2026. Quelle: github.com/cloudflare/security-audit-skill, README und SKILL.md, gelesen 05.10.2026. Cloudflare Blogbeitrag: blog.cloudflare.com/build-your-own-vulnerability-harness. Kein eigener Audit-Lauf: keine Fundzahlen oder Laufzeiten.

In the skills post from September 29 I tested three tools, including VibeSec as a security skill for writing code. In the answer-me-with-html post from October 5 and in the mods post further skills followed. Today I describe a skill that works differently: instead of checking while writing code, it audits a finished repository for security issues.

A padlock, three cards with symbols and a pencil on dark stone
Title image AI-generated, labelled as such.
files with attack classes11web, auth, llm, supply chain, cloud, rpc, resources, data, desktop, mobile, memory safety and more
phases per audit6reconnaissance, search, validation, output, evidence check, report
verdicts3confirmed, needs_validation, rejected; each requires a source trace

the security-audit skill

The repo is cloudflare/security-audit-skill. According to the README it is the skill that Cloudflare's vulnerability harness grew out of. Cloudflare describes the background in the blog post "Build your own vulnerability harness".

Size: 21 files, 5,276 lines. This is not a simple checklist. The SKILL.md has 192 lines, plus three workflow files and eleven files with attack classes: web and auth, client-side, LLM and agents, supply chain and release, cloud and deployment, RPC and messaging, resource exhaustion, data isolation, desktop, mobile and IPC, and memory safety. Two Node validators without external dependencies check the output against a schema: validate-findings.cjs and validate-coverage-ledger.cjs, both with tests.

six phases

  1. 1 reconnaissance

    architecture.md and coverage-ledger.json are created. These documents steer all later phases.

  2. 2 search

    Isolated hunter agents search in parallel. A critic then looks for gaps in the coverage ledger.

  3. 3 validation

    Fresh verifier agents try to refute each candidate. A finding counts as confirmed only with a complete source trace and an observed result.

  4. 4 output

    findings.json is validated against report-schema.json. Invalid entries are rejected.

  5. 5 evidence check

    Fresh agents check the final source claims once more.

  6. 6 report

    Three files: REPORT.md, FINDINGS-DETAIL.md and NEEDS-VALIDATION.md.

Phase 1 is reconnaissance: the model writes architecture.md and coverage-ledger.json. These two documents steer all later phases.

Phase 2 is coverage-guided search: isolated hunter agents work in parallel. A critic then looks for gaps in the coverage ledger.

Phase 3 is candidate validation: fresh verifier agents try to refute each finding. A finding counts as confirmed only with a complete source trace and an observed result.

Phase 4 is structured output: findings.json validated against report-schema.json. Invalid entries are rejected.

Phase 5 is an independent check of the final source claims by fresh agents.

Phase 6 is the report: REPORT.md, FINDINGS-DETAIL.md and NEEDS-VALIDATION.md.

Before each wave, critics and verifiers are reserved. If the budget is not sufficient, units are deferred rather than thinly covered.

three verdicts

Three verdicts: confirmed requires a source trace and observed result, needs_validation keeps findings without sufficient evidence, rejected removes refuted findings
verdictmeaningcondition
confirmedfinding is validcomplete source trace and observed result are present
needs_validationopen fact, no severityone named fact is open, e.g. no sandbox for target code
rejectedfinding is refutedverifier successfully refuted the finding

Each finding gets one of three verdicts. Confirmed means: a complete source trace and an observed result are present. Needs validation means: one named fact is still open, for example because target code may not run without a sandbox. These findings get no severity. Rejected means: the verifier successfully refuted the finding.

A finding without a source trace and observed result never gets confirmed. The SKILL.md requires this explicitly.

profiles and cost

Three profiles: quick for everyday checks, standard as the default for regular audits, deep for auth and billing before a launch
profileagentsuse case
quickone hunter wave, one final criticeveryday checks, scoped diffs
standardfour reconnaissance agents + hunters per wave, plus critics and verifiers (default)regular audits
deepunits per subsystem, critic waves to a clean passauth, billing code, pre-launch

Quick is a bounded pass for small targets or a first look. Standard is the default: four reconnaissance agents plus hunters per wave, plus critics and verifiers. Deep is for large or high-stakes targets: units per subsystem, critic waves until a clean pass.

Costs rise quickly because each wave starts several agents in parallel. For scoped runs you can name a path, a subsystem or a diff between two refs. Everything outside counts as out_of_scope, not as covered. Runs are additive.

in my security system

Four security layers: hook and VibeSec during build, diff review before ship, security-audit for whole-repository checks before launch
layerwhentask
security-guidance hookevery edit (build)checks every file change for unsafe patterns, fires before /codex:adversarial-review
VibeSecwhile writing (build)loads for web code with auth, input handling, SQL or redirects; changes how code is written
/security-review + /codex:adversarial-reviewdiff (review)reviews the current diff from two independent perspectives
security-auditwhole repository (review / pre-launch)six-phase audit with hunter and verifier agents, evidence per finding, output to .ai/security-audit/

I installed the skill today and placed it in my existing system. The other layers have been running for some time:

  • The security-guidance hook checks every edit for unsafe patterns.
  • VibeSec loads when writing web code with auth, input handling, SQL or redirects.
  • /security-review and /codex:adversarial-review check diffs.

What was missing: an audit across the whole repository with evidence per finding. That is the gap security-audit fills.

The original skill description is broadly worded ("Use for security questions, focused reviews ..."). That would have displaced VibeSec. I narrowed the description to explicit repository audits or scoped path audits and pointed to VibeSec, /security-review and /codex:adversarial-review for everything else.

installation

installation

terminal
# global installieren, nur für Claude Code
npx skills add https://github.com/cloudflare/security-audit-skill \
  --skill security-audit --global -a claude-code

# Prompt in Claude Code (Beispiele aus dem README)
# security audit this codebase
# find security vulnerabilities in ./src

snag: 56 agent folders

Running the install command with -y linked the skill into 56 agent folders: Devin, Goose, Roo, Windsurf and many others. One installation (PromptScript) failed. I removed 53 of those links. Three remain: ~/.agents/skills (source), ~/.claude/skills and ~/.codex/skills.

Tip: with -a claude-code the CLI places the skill only in the Claude Code folder.

my new rule

I added a new rule to my global CLAUDE.md: run a repo audit before launch or for auth and billing code with security-audit, profile quick or scoped. Deep only for auth, billing or pre-launch. Output goes to <repo>/.ai/security-audit/. Never /tmp as the write target on a server. Then /codex:adversarial-review.

I have not run my own audit yet. No finding counts, no run times. That comes in a separate post.

the gist in three sentences

Cloudflare's security-audit skill checks a repository in six phases with isolated hunter and verifier agents. A finding is confirmed only with a complete source trace and an observed result. In my existing security system the skill fills one gap: a whole-repository view before a launch.

frequently asked questions

What does the security-audit skill do?

It checks a repository or a path in six phases for security issues. Isolated hunter agents search in parallel, verifier agents try to refute each finding. The result is three files: REPORT.md, FINDINGS-DETAIL.md and NEEDS-VALIDATION.md.

What does a run cost?

Standard starts four reconnaissance agents plus hunters, critics and verifiers. That is not cheap. Quick is the everyday profile. Deep makes sense only for auth, billing or an upcoming launch.

How does this differ from VibeSec?

VibeSec changes how Claude Code writes new code. The security-audit skill checks existing code after the fact. Both complement each other: VibeSec while writing, security-audit for auditing.

Can the skill run dangerous code?

According to SKILL.md, target code runs only in a sandbox. Without one, the model executes nothing and reports the finding as needs_validation. This is an instruction to the model, not a technical lock.

sources and status

As of: 5 October 2026. Source: github.com/cloudflare/security-audit-skill, README and SKILL.md, read 5 October 2026. Cloudflare blog post: blog.cloudflare.com/build-your-own-vulnerability-harness. No own audit run: no finding counts or run times.

geschrieben vonwritten by · business transformation, ki und führung im mittelstand. methode: core+.business transformation, ai and leadership for mid-sized companies. method: core+.

weiterlesenkeep reading

← zurück zum herrlichblog← back to the herrlichblog