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で、アーキテクチャ、信頼境界、入力サーフェス、過去の証拠、決定論的なカバレッジをマッピングします。 - カバレッジ主導のハンティング -- レジャーユニットから分離されたハンターを割り当て、それらのチェックを記録し、カバレッジクリティックを使用してギャップを見つけます。
- 候補検証 -- 一意の各候補を、それを反証しようとする新しい検証者に渡します。
- 構造化出力 --
confirmed、needs_validation、rejectedのレコードをfindings.jsonに書き込み、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 | ファインディングバリデーターのテストとプロデューサー互換のフィクスチャチェック |
validate-coverage-ledger.cjs | フェーズ1~5の coverage-ledger.json 用のゼロ依存バリデーター |
validate-coverage-ledger.test.cjs | カバレッジレジャーバリデーターのテスト |
インストール
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> になります。ワークフローは、バージョン管理で無視されるディレクトリを明示的に選択した場合にのみ、ターゲットリポジトリ内に書き込みます。
要件
- ツール使用と並列サブエージェントをサポートするモデルを持つコーディングエージェント
- ゼロ依存のファインディングおよびカバレッジレジャーバリデーター用の Node.js
- ターゲット制御ビルド、テスト、プロセス、ブラウザ、エミュレーター、ファズ、およびフィクスチャ用の OS 強制サンドボックス。外部ネットワークを無効にし、サニタイズされた許可リスト環境を使用し、リソース制限を強制し、割り当てられたスクラッチパスへの書き込みのみを許可する必要があります。これらの制御がない場合、ワークフローはターゲットコードを実行する代わりに、リードを
needs_validationのままにします。
設計原則
- 確立された境界違反のみを確認する。 ソースに根ざしたブロックされたリードを、その正確な未解決の事実とともに
needs_validationのままにします。 - 敵対的検証。 ファインディングをチェックするエージェントは、それを見つけたエージェントと同じではありません。
- 重大度は影響を必要とする。 チェックリストからの逸脱ではなく、確率 x 影響。
- 多層防御のギャップは脆弱性ではない。 レイヤーAが攻撃を防ぐ場合、レイヤーBの不在は強化ノートです。
- 複数回の実行でカバレッジが向上する。 当社のテスト実行では、1回の実行で発見された脆弱性の約半分が、複数回の実行で合計されたものです。
連絡先
AI駆動のセキュリティツールに関する質問、フィードバック、または意見交換:security-ai-research@cloudflare.com
ライセンス
MIT -- LICENSE を参照してください。