セキュリティ
Cloudflare/Security-Audit-Skill
Cloudflare/Security-Audit-Skill (github.com)
要約
Cloudflare/Security-Audit-Skillは、エージェントをセキュリティ監査員に変えるコーディングエージェントのスキルです。偵察、カバレッジ主導のハンティング、候補検証、構造化出力、独立した記録検証、ターゲットニュートラルなレポート作成といった6つのフェーズを通じて、脆弱性の発見を自動化します。これはCloudflareの脆弱性発見ハーネスの基盤となったスキルであり、単一リポジトリから進化しました。
全文翻訳
security-audit エージェントをセキュリティ監査員に変えるコーディングエージェントのスキルです。偵察、カバレッジ主導のハンティング、候補検証、構造化出力、独立した記録検証、ターゲットニュートラルなレポート作成を通じて、分離されたエージェントをオーケストレーションします。これは、Build your own vulnerability harnessで説明されているCloudflareの脆弱性発見ハーネスの種となったスキルです。ハーネスは多段階の、フリート全体にわたるシステムに成長しました。このスキルは、それが進化した単一リポジトリの出発点です。
何をするか
このスキルは、6つのフェーズで構造化された監査を実行します。
偵察 -- architecture.md および coverage-ledger.json で、アーキテクチャ、信頼境界、入力サーフェス、過去の証拠、決定論的なカバレッジをマッピングします。
カバレッジ主導のハンティング -- ledger.json のユニットから分離されたハンターを割り当て、それらのチェックを記録し、カバレッジクリティックを使用してギャップを見つけます。
候補検証 -- 一意の候補ごとに新しい検証者を割り当て、それを反証しようとします。
構造化出力 -- findings.json に confirmed、needs_validation、rejected のレコードを書き込み、report-schema.json に対して検証します。
独立した記録検証 -- 新しいエージェントが最終的なソースの主張を検証します。マテリアル置換は別の独立した検証者を受け取ります。
ターゲットニュートラルなレポート -- 検証済みのレコードとカバレッジレジャーから REPORT.md、FINDINGS-DETAIL.md、NEEDS-VALIDATION.md を派生させます。
親プロセスは、レジャーを作成した後、およびレジャーの各更新後に validate-coverage-ledger.cjs を実行します。フェーズ4で validate-findings.cjs を実行し、フェーズ5の置換ごとに再度実行します。
判定は明確です。
confirmed は完全なソーストレースと境界付きの観測結果を持ちます。
needs_validation は正確な未解決の事実を持ち、重大度はありません。
rejected は反証された候補を記録します。
同じリポジトリに対して複数回実行すると、追加されます。このスキルは、以前のレジャーと発見を使用してギャップをターゲットにし、変更されたソースを再検証し、古いまたは未解決の作業をカバーされていると見なさずに現在のソースの証拠を転送します。
ファイル
ファイル
目的
SKILL.md
セットアップ、コア原則、プラットフォーム用語、ワークフロー概要、および監査アンチパターン
RECONNAISSANCE.md
フェーズ1の偵察プロンプトと合成手順
HUNTING.md
フェーズ2のオーケストレーション、ハンティング方法論、および検証ルール
ATTACK-CLASSES.md
コア、ワイルドカード、および明白な攻撃プロンプト
MEMORY-SAFETY-AND-BINARY.md
ネイティブターゲット向けのメモリ安全性、バイナリ、およびカーネルハンティングクラス
AI-AND-LLM.md
LLMバックのエージェント向けのプロンプトインジェクション、エージェント/ツール、および出力処理ハンティングクラス
WEB-PROTOCOL-AND-AUTH.md
HTTPプロトコルおよび認証ターゲット向けのHTTPリクエストフレーミング、キャッシュ、および認証プロトコルハンティングクラス
CLIENT-SIDE.md
クライアントサイド/ブラウザ向けのDOMインジェクション、メッセージング信頼、UIリドレス、およびプロトタイプ汚染ハンティングクラス
SUPPLY-CHAIN-AND-RELEASE.md
依存関係、CI、リリース、署名、更新、プラグイン、および拡張機能ハンティングクラス
CLOUD-AND-DEPLOYMENT.md
IAM、インフラストラクチャ・アズ・コード、コンテナ、サーバーレス、インバウンド、およびランタイム構成ハンティングクラス
PROTOCOLS-RPC-AND-MESSAGING.md
RPC、シリアライゼーション、キュー、ブローカー、Webhook、およびストリーミングプロトコルハンティングクラス
RESOURCE-EXHAUSTION-AND-AVAILABILITY.md
共有リソース、クォータ、キュー、ワーカー、およびオペレーター支出ハンティングクラス
DATA-ISOLATION-AND-LIFECYCLE.md
テナント分離、キャッシュ、検索、エクスポート、バックアップ、移行、削除、および復元ハンティングクラス
DESKTOP-MOBILE-AND-LOCAL-IPC.md
ネイティブアプリ、ディープリンク、WebView、エクスポートされたコンポーネント、ヘルパー、デーモン、およびローカルIPCハンティングクラス
VALIDATION-AND-REPORTING.md
フェーズ3~6の候補検証、構造化出力、レコード検証、およびレポート作成
report-schema.json
すべての3つのfindings.json判定のJSONスキーマ
validate-findings.cjs
フェーズ4および5でのfindings.jsonのゼロ依存バリデーター
validate-findings.test.cjs
Findingsバリデーターテストとプロデューサー互換フィクスチャチェック
validate-coverage-ledger.cjs
フェーズ1~5でのcoverage-ledger.jsonのゼロ依存バリデーター
validate-coverage-ledger.test.cjs
Coverage-ledgerバリデーターテスト
インストール
Skills CLIを使用してスキルをインストールします。
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit
ユーザーレベルのインストールには --global を使用します。
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit --global
エージェント選択および非対話型オプションについては、npx skills --help を実行してください。
使用法
監査したいコードベースで(またはコードベースを指して)コーディングエージェントを開始し、セキュリティ監査を実行するように依頼します。
security audit this codebase
find security vulnerabilities in ./src
do a security review, output to ~/audits/my-project
リクエストがトリガー(security audit、find vulnerabilities、pen-test the codeなど)に一致すると、スキルは自動的にアクティブになります。
直接のコードベース監査またはペンテストリクエストは、フル監査モードを使用します。
セキュリティの質問と集中的な脆弱性作業は、レポート成果物を要求しない限り、ガイダンスモードを使用します。
フル監査モードでは、指定されていない出力ディレクトリはデフォルトで ~/security-audit-skill/<repo-name>/run-<N> になります。
ワークフローは、バージョン管理で無視されるディレクトリを明示的に選択した場合にのみ、ターゲットリポジトリ内に書き込みます。
要件
ツール使用と並列サブエージェントをサポートするモデルを備えたコーディングエージェント
ゼロ依存のfindingsおよびcoverage-ledgerバリデーター用のNode.js
ターゲット制御ビルド、テスト、プロセス、ブラウザ、エミュレーター、ファズ、およびフィクスチャ用のOS強制サンドボックス。外部ネットワークを無効にし、サニタイズされた許可リスト環境を使用し、リソース制限を強制し、割り当てられたスクラッチパスへの書き込みのみを許可する必要があります。これらの制御がない場合、ワークフローはターゲットコードを実行する代わりに、needs_validation のままになります。
設計原則
確立された境界障害のみを確認します。
ソースに根ざしたブロックされたリードは、正確な未解決の事実とともに needs_validation のままにします。
敵対的検証。発見をチェックするエージェントは、それを見つけたエージェントではありません。
重大度は影響を必要とします。確率 x 影響、チェックリストからの逸脱ではありません。
防御の深さのギャップは脆弱性ではありません。レイヤーAが攻撃を防ぐ場合、レイヤーBの不在は強化ノートです。
複数回の実行でカバレッジが向上します。テスト実行では、単一の実行で見つかった脆弱性の約半分が、複数回の実行で合計で見つかりました。
連絡先
AI駆動のセキュリティツールに関する質問、フィードバック、または意見交換:security-ai-research@cloudflare.com
ライセンス
MIT -- LICENSEを参照してください。