站内导读
中文 security-audit 是一个面向编码代理的安全审计技能,把代理组织成侦察、覆盖驱动排查、候选验证、结构化输出、独立记录核验与目标中立报告六个阶段。它解决的是审计过程缺乏覆盖记录、结论难追溯的问题:通过覆盖账本和 findings.json 记录每项检查与判定,confirmed、needs_validation、rejected 三类结论区分明确,并配有零依赖校验脚本。该技能源自 Cloudflare 漏洞发现框架的早期单仓库版本,支持对同一仓库多次增量审计。适合具备并行子代理能力的编码代理用户,用于对自有代码库做结构化安全审查。
日本語 コーディングエージェントをセキュリティ監査者に変える skill。偵察、カバレッジ台帳に基づく探索、候補の検証、構造化出力、独立した記録検証、レポート生成という6段階を分離されたエージェントで実行する。coverage-ledger.json で網羅範囲を追跡し、confirmed・needs_validation・rejected を区別して記録。同一リポジトリへの再実行は加算的に扱われる。自前コードの監査をエージェントで回したいセキュリティ担当者向け。
한국어 코딩 에이전트를 보안 감사자로 바꾸는 skill이다. 정찰, 커버리지 원장 기반 헌팅, 후보 검증, 구조화 출력, 독립 기록 검증, 리포트 생성의 6단계를 격리된 에이전트로 수행한다. coverage-ledger.json으로 커버리지를 추적하고 confirmed, needs_validation, rejected를 구분해 기록하며, 같은 저장소에 대한 반복 실행은 누적 방식으로 처리한다. 자체 코드베이스 감사를 에이전트로 돌리려는 보안 담당자에게 적합하다.
English A coding-agent skill that turns your agent into a security auditor. It runs six phases: reconnaissance, coverage-led hunting, candidate validation, structured output, independent record verification, and target-neutral reporting. Isolated agents cross-check candidates, and results are validated with a JSON schema plus zero-dependency scripts. Repeated runs build on prior ledgers and findings. Suited to developers whose agent supports tool use and parallel sub-agents.
README · 详细文档
来源 · 查看原文
security-audit
A coding-agent skill that turns your agent into a security auditor. It orchestrates isolated agents through reconnaissance, coverage-led hunting, candidate validation, structured output, independent record verification, and target-neutral reporting.
This is the skill that seeded Cloudflare's vulnerability discovery harness, described in Build your own vulnerability harness. The harness grew into a multi-stage, fleet-wide system; this skill is the single-repo starting point it evolved from.
What it does
The skill runs a structured audit in six phases:
- Reconnaissance -- map architecture, trust boundaries, input surfaces, prior evidence, and deterministic coverage in
architecture.mdandcoverage-ledger.json. - Coverage-led hunting -- assign isolated hunters from ledger units, record their checks, and use coverage critics to find gaps.
- Candidate validation -- give every unique candidate to a fresh verifier that tries to disprove it.
- Structured output -- write
confirmed,needs_validation, andrejectedrecords tofindings.jsonand validate them againstreport-schema.json. - Independent record verification -- fresh agents verify final source claims. Material replacements receive another independent verifier.
- Target-neutral reporting -- derive
REPORT.md,FINDINGS-DETAIL.md, andNEEDS-VALIDATION.mdfrom the verified records and coverage ledger.
The parent runs validate-coverage-ledger.cjs after creating the ledger and after each later ledger update. It runs validate-findings.cjs in Phase 4 and again after every Phase 5 replacement.
The verdicts are distinct: confirmed has a complete source trace and bounded observed result, needs_validation has an exact unresolved fact and no severity, and rejected records a disproved candidate.
Multiple runs against the same repo are additive. The skill uses prior ledgers and findings to target gaps, revalidate changed source, and carry forward current-source evidence without treating stale or unresolved work as covered.
Files
| File | Purpose | |------|---------| | SKILL.md | Setup, core principles, platform terminology, workflow overview, and audit anti-patterns | | RECONNAISSANCE.md | Phase 1 reconnaissance prompts and synthesis instructions | | HUNTING.md | Phase 2 orchestration, hunting methodology, and validation rules | | ATTACK-CLASSES.md | Core, wildcard, and obvious-things attack prompts | | MEMORY-SAFETY-AND-BINARY.md | Memory-safety, binary, and kernel hunting classes for native targets | | AI-AND-LLM.md | Prompt-injection, agent/tool, and output-handling hunting classes for LLM-backed targets | | WEB-PROTOCOL-AND-AUTH.md | HTTP request-framing, cache, and authentication-protocol hunting classes for HTTP-protocol and auth targets | | CLIENT-SIDE.md | DOM-injection, messaging-trust, UI-redress, and prototype-pollution hunting classes for client-side/browser targets | | SUPPLY-CHAIN-AND-RELEASE.md | Dependency, CI, release, signing, update, plugin, and extension hunting classes | | CLOUD-AND-DEPLOYMENT.md | IAM, infrastructure-as-code, container, serverless, ingress, and runtime-configuration hunting classes | | PROTOCOLS-RPC-AND-MESSAGING.md | RPC, serialization, queue, broker, webhook, and streaming-protocol hunting classes | | RESOURCE-EXHAUSTION-AND-AVAILABILITY.md | Shared resource, quota, queue, worker, and operator-spend hunting classes | | DATA-ISOLATION-AND-LIFECYCLE.md | Tenant isolation, cache, search, export, backup, migration, deletion, and restore hunting classes | | DESKTOP-MOBILE-AND-LOCAL-IPC.md | Native app, deep-link, webview, exported-component, helper, daemon, and local-IPC hunting classes | | VALIDATION-AND-REPORTING.md | Phases 3–6 candidate validation, structured output, record verification, and reporting | | report-schema.json | JSON schema for all three findings.json verdicts | | validate-findings.cjs | Zero-dependency validator for findings.json in Phases 4 and 5 | | validate-findings.test.cjs | Findings-validator tests and producer-compatible fixture checks | | validate-coverage-ledger.cjs | Zero-dependency validator for coverage-ledger.json in Phases 1–5 | | validate-coverage-ledger.test.cjs | Coverage-ledger validator tests |
Installation
Install the skill with the Skills CLI:
npx skills add https://github.com/cloudflare/security-audit-skill \
--skill security-audit
Use --global for a user-level installation:
npx skills add https://github.com/cloudflare/security-audit-skill \
--skill security-audit \
--global
Run npx skills --help for agent-selection and non-interactive options.
Usage
Start your coding agent in (or pointed at) the codebase you want to audit, then ask it to do a security audit:
security audit this codebase
find security vulnerabilities in ./src
do a security review, output to ~/audits/my-project
The skill activates automatically when the request matches its trigger (security audit, find vulnerabilities, pen-test the code, etc.). A direct codebase audit or pen-test request uses full audit mode. Security questions and focused vulnerability work use guidance mode unless you request report artifacts. In full audit mode, an unspecified output directory defaults to ~/security-audit-skill/<repo-name>/run-<N>. The workflow writes inside the target repository only when you explicitly select a directory that version control ignores.
Requirements
- A coding agent with a model that supports tool use and parallel sub-agents
- Node.js for the zero-dependency findings and coverage-ledger validators
- An OS-enforced sandbox for target-controlled builds, tests, processes, browsers, emulators, fuzzers, and fixtures. It must disable external networking, use a sanitized allowlisted environment, enforce resource limits, and allow writes only to assigned scratch paths. Without these controls, the workflow keeps the lead as
needs_validationinstead of executing target code.
Design principles
- Only confirm established boundary failures. Keep a source-grounded blocked lead as
needs_validationwith its exact unresolved fact. - Adversarial validation. The agent that checks a finding is never the agent that found it.
- Severity requires impact. Likelihood x impact, not deviation from a checklist.
- Defense-in-depth gaps are not vulnerabilities. If Layer A prevents the attack, the absence of Layer B is a hardening note.
- Multiple runs improve coverage. In our test runs, a single run found roughly half of the vulnerabilities that repeated runs found in total.
Contact
Questions, feedback, or comparing notes on AI-driven security tooling: security-ai-research@cloudflare.com
License
MIT -- see LICENSE.