Cloudflare 公式 security-audit skill: 見つける役と確かめる役を分ける
npx skills add で入れる監査スキル。偵察→網羅的な探索→別エージェントによる反証→構造化レポートの6段階で、指摘を confirmed / needs_validation / rejected に分けて出す。
Cloudflare が自社の脆弱性探索ハーネスの出発点として使っていたスキルを公開したもの。自分で読み切れないコード(AI に書かせたアプリなど)を、エージェントに監査させたいときの型として使える。
使い方
bash
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit
# ユーザー単位で入れるなら --global対象リポジトリでエージェントを起動し、「security audit this codebase」「find security vulnerabilities in ./src」のように頼むと発動する。出力先を指定しなければ ~/security-audit-skill/<repo>/run-<N> に書く。
6つの段階
- 偵察: アーキテクチャ、信頼境界、入力面を
architecture.mdとcoverage-ledger.jsonにまとめる - 探索: 台帳の単位ごとに独立したハンターを割り当て、抜けを批評役が探す
- 候補の検証: 候補ごとに新しい検証役が反証を試みる(見つけた本人は確かめない)
- 構造化出力:
findings.jsonをスキーマで検証 - 記録の再検証: 最終的なソース上の主張を別エージェントがもう一度確認
- レポート:
REPORT.mdなどを検証済みの記録から作る
注意点
- 並列サブエージェントを使えるモデルと Node.js が必要。対象コードを実際に動かして確かめるには、外部ネットワークを切った OS 強制のサンドボックスが要る。無ければその候補は needs_validation のまま残る
- Cloudflare の試験では、1回の実行で見つかったのは複数回の合計の半分ほど。2回目以降は前回の台帳を使って抜けを狙い直すので、何度か回す前提で使う
- 多層防御の一部が欠けているだけ(別の層で防げている)なら脆弱性ではなく強化メモ、という基準を持っている