HN 日本語サマリー

← 一覧へ戻る
セキュリティ

Cloudflare/Security-Audit-Skill

Cloudflare/Security-Audit-Skill (github.com)

163 pointsby donk8r33 コメント

要約

Cloudflare/Security-Audit-Skillは、エージェントをセキュリティ監査員に変えるコーディングエージェントのスキルです。偵察、カバレッジ主導のハンティング、候補検証、構造化出力、独立した記録検証、ターゲットニュートラルなレポート作成といった6つのフェーズを通じて、脆弱性の発見を自動化します。これはCloudflareの脆弱性発見ハーネスの基盤となったスキルであり、単一リポジトリから進化しました。

全文翻訳

security-audit

エージェントをセキュリティ監査担当者に変えるコーディングエージェントのスキルです。偵察、カバレッジ主導のハンティング、候補検証、構造化出力、独立した記録検証、ターゲットニュートラルなレポート作成を通じて、分離されたエージェントをオーケストレーションします。

これは、Build your own vulnerability harness で説明されている Cloudflare の脆弱性発見ハーネスの種となったスキルです。このハーネスは多段階の、フリート全体にわたるシステムに成長しました。このスキルは、それが進化した単一リポジトリの出発点です。

機能

このスキルは、6つのフェーズで構造化された監査を実行します。

  1. 偵察 -- architecture.md および coverage-ledger.json で、アーキテクチャ、信頼境界、入力サーフェス、過去の証拠、決定論的なカバレッジをマッピングします。
  2. カバレッジ主導のハンティング -- レジャーユニットから分離されたハンターを割り当て、それらのチェックを記録し、カバレッジクリティックを使用してギャップを見つけます。
  3. 候補検証 -- 一意の各候補を、それを反証しようとする新しい検証者に渡します。
  4. 構造化出力 -- confirmed、needs_validation、rejected のレコードを findings.json に書き込み、report-schema.json に対して検証します。
  5. 独立した記録検証 -- 新しいエージェントが最終的なソースの主張を検証します。マテリアル置換は別の独立した検証者を受け取ります。
  6. ターゲットニュートラルなレポート作成 -- 検証済みのレコードとカバレッジレジャーから 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.mdLLMバックエンドターゲット向けのプロンプトインジェクション、エージェント/ツール、および出力処理ハンティングクラス
WEB-PROTOCOL-AND-AUTH.mdHTTPプロトコルおよび認証ターゲット向けのHTTPリクエストフレーミング、キャッシュ、および認証プロトコルハンティングクラス
CLIENT-SIDE.mdクライアントサイド/ブラウザターゲット向けのDOMインジェクション、メッセージング信頼性、UIリドレッシング、およびプロトタイプ汚染ハンティングクラス
SUPPLY-CHAIN-AND-RELEASE.md依存関係、CI、リリース、署名、更新、プラグイン、および拡張機能ハンティングクラス
CLOUD-AND-DEPLOYMENT.mdIAM、インフラストラクチャ・アズ・コード、コンテナ、サーバーレス、イングレス、およびランタイム構成ハンティングクラス
PROTOCOLS-RPC-AND-MESSAGING.mdRPC、シリアライゼーション、キュー、ブローカー、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.json3つの 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 を参照してください。