概要
- Cloudflare が開発した セキュリティ監査自動化スキル の概要
- 6段階の 構造化監査フェーズ による脆弱性発見
- 複数エージェント の協調による再現性・信頼性の高い検証
- 導入・利用方法 やファイル構成の詳細説明
- 設計思想 や運用上の注意点も明記
Cloudflare Security Audit Skill 概要
- Cloudflare による vulnerability discovery harness の出発点となったセキュリティ監査スキル
- 単一リポジトリ で始められる自動化脆弱性監査システム
- 複数エージェント を分離・協調させて監査を実施
- 監査結果 や進捗は構造化ファイルで出力・検証
6フェーズ監査ワークフロー
- Reconnaissance(偵察)
- システム構成、信頼境界、入力面、過去の証拠、カバレッジを architecture.md と coverage-ledger.json に記録
- Coverage-led Hunting(カバレッジ主導の探索)
- ledgerの各単位ごとに分離エージェントを割り当て、 チェック内容 と ギャップ を記録
- Candidate Validation(候補検証)
- 各発見候補を 独立した検証エージェント が否定的に検証
- Structured Output(構造化出力)
- findings.json に「confirmed」「needs_validation」「rejected」として記録し、 report-schema.json で検証
- Independent Record Verification(独立検証)
- 別エージェントが 最終記録 を再検証し、重要案件はさらに追加検証
- Target-neutral Reporting(中立的レポート)
- REPORT.md, FINDINGS-DETAIL.md, NEEDS-VALIDATION.md をverified recordsとcoverage ledgerから生成
検証・バリデーション
- validate-coverage-ledger.cjs
- ledger作成時と更新時に実行し、カバレッジの整合性を検証
- validate-findings.cjs
- フェーズ4およびフェーズ5の各段階でfindings.jsonの妥当性を確認
判定基準
-
confirmed :完全なソーストレースと観測結果があり確定
-
needs_validation :未解決の事実のみ記録、重大度なし
-
rejected :否定された候補
-
複数回実行 でカバレッジ向上、既存記録を活用し未解決や変更箇所を重点監査
ファイル構成(主要ファイルと用途)
- SKILL.md :セットアップ・用語・ワークフロー・アンチパターン
- RECONNAISSANCE.md :偵察フェーズのプロンプト・手順
- HUNTING.md :探索手法・検証ルール
- ATTACK-CLASSES.md :攻撃種別プロンプト(コア・ワイルドカード等)
- MEMORY-SAFETY-AND-BINARY.md :メモリ安全・バイナリ・カーネル向け
- AI-AND-LLM.md :LLM・AIツール関連の攻撃
- WEB-PROTOCOL-AND-AUTH.md :HTTP・認証プロトコル
- CLIENT-SIDE.md :ブラウザ/クライアントサイド
- SUPPLY-CHAIN-AND-RELEASE.md :依存関係・リリース・署名等
- CLOUD-AND-DEPLOYMENT.md :IAM・IaC・サーバレス等
- PROTOCOLS-RPC-AND-MESSAGING.md :RPC・メッセージング
- RESOURCE-EXHAUSTION-AND-AVAILABILITY.md :リソース枯渇・可用性
- DATA-ISOLATION-AND-LIFECYCLE.md :テナント分離・データライフサイクル
- DESKTOP-MOBILE-AND-LOCAL-IPC.md :デスクトップ・モバイル・ローカルIPC
- VALIDATION-AND-REPORTING.md :検証・出力・レポート
- report-schema.json :findings.jsonのスキーマ
- validate-findings.cjs :findings.jsonバリデータ
- validate-findings.test.cjs :バリデータのテスト
- validate-coverage-ledger.cjs :coverage-ledger.jsonバリデータ
- validate-coverage-ledger.test.cjs :バリデータのテスト
インストール手順
- Skills CLIでインストール:
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit
- グローバルインストール(任意):
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit --global
- 詳細オプションは
npx skills --helpで確認
使い方
- 監査対象リポジトリ でcoding agentを起動し、監査リクエストを送信
- 例:
security audit this codebasefind security vulnerabilities in ./srcdo a security review, output to ~/audits/my-project
- 例:
- トリガーに合致したリクエストで自動発動
- full audit mode :直接的な監査/ペンテストリクエスト時に全フェーズ実行
- guidance mode :特定質問や個別脆弱性調査時に部分的実行
- 出力先未指定時は
~/security-audit-skill/<repo-name>/run-<N>に保存 - リポジトリ内への書き込みは、明示的に無視ディレクトリを指定した場合のみ
必要要件
- ツール利用・並列サブエージェント 対応のcoding agent
- Node.js (バリデータ実行用)
- OSレベルのサンドボックス
- 外部ネットワーク遮断
- 許可リスト環境
- リソース制限
- 指定パスのみ書き込み許可
- これらが無い場合、needs_validation止まりでコード実行不可
設計原則・運用指針
- 確定した境界違反 のみをconfirmedとする
- 未解決リード はneeds_validationで正確に記録
- 検証は常に別エージェント が担当(アドバーサリアル検証)
- 重大度はimpactベース (チェックリスト逸脱ではなく、影響x可能性で評価)
- 多層防御のギャップ は脆弱性でなくハードニング指摘
- 複数回実行 で検出率向上(単回で半分程度、繰り返しで網羅性UP)
問い合わせ・ライセンス
- 質問・フィードバック・情報交換 :security-ai-research@cloudflare.com
- ライセンス :MIT(LICENSE参照)