世界を動かす技術を、日本語で。

Cloudflare/セキュリティ監査スキル

2026年9月17日原文(github.com)

概要

  • Cloudflare が開発した セキュリティ監査自動化スキル の概要
  • 6段階の 構造化監査フェーズ による脆弱性発見
  • 複数エージェント の協調による再現性・信頼性の高い検証
  • 導入・利用方法 やファイル構成の詳細説明
  • 設計思想 や運用上の注意点も明記

Cloudflare Security Audit Skill 概要

  • Cloudflare による vulnerability discovery harness の出発点となったセキュリティ監査スキル
  • 単一リポジトリ で始められる自動化脆弱性監査システム
  • 複数エージェント を分離・協調させて監査を実施
  • 監査結果 や進捗は構造化ファイルで出力・検証

6フェーズ監査ワークフロー

  • Reconnaissance(偵察)
    • システム構成、信頼境界、入力面、過去の証拠、カバレッジを architecture.mdcoverage-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 codebase
      • find security vulnerabilities in ./src
      • do 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参照)

Hackerたちの意見

ふぅ、トークンってどれくらい必要なの?

比較的小さいFastAPIプロジェクトで、少なくとも15万トークン使ったけど、セッションの上限に達しちゃった。数時間後に続けるつもり。

中くらいのコードベースで、1Mトークンを無駄にしちゃったよ。

中くらいのコードベースって、ドキュメント含めて5万行くらい?

これらは、PRみたいなコードの特定のセクションで最も効果的だよ。

こんにちは、Cloudflareの皆さん、これを読んでいるなら。Cloudflareのスキルを整理してほしいです。プラットフォームにスキルが多すぎるんですよ。一つのスキルにまとめて、すべてをそのスキルを通してルーティングすべきです。今のままだと、私たちのコンテキストウィンドウが汚れちゃう。 https://github.com/cloudflare/skills/tree/main/skills

ここを読んでると思うよ。

なんで「アプリストア」みたいなスキルライブラリを作らなかったのか全然理解できない。承認されてセキュリティ問題もスキャンできるのに。

短い説明のある14個のスキルって、特に問題ないと思うけど。

「OS強制のサンドボックス」が要件に入ってる理由、何かヒントある?

おそらく、エージェントが予期しないことをし始めて混乱を引き起こすのを防ぐためだろうね。でも、普通のサブスクリプションのOpenAIモデルがこのスキルで動かないとは思えないな。

ターゲットビルド、テスト、ファジングを実行するよ。サンドボックスなし:ワークフローはそれらを実行しない。リードは「needs_validation」のまま。

Hacker Newsで議論の続きを見る