Claude Codeのセキュリティ監査スキルで脆弱性発見はどれだけ変わる?security-auditを徹底検証
Cloudflare公開のsecurity-auditでClaude Codeの脆弱性発見はどれだけ変わるのか。実在OSSの公開済み脆弱性9件で、普通の依頼0〜1件、全工程8〜9件という差と費用、限界まで報告します。

この記事の結論
- 実在OSS paperless-ngx v2.20.3の公開済み脆弱性9件で比べると、Sonnet 5.5への普通の依頼は0〜1件、security-auditの全工程指定は8〜9件でした(各3回)。
- スキルを入れて普通に頼むだけでは2〜6件で、スキルなしで徹底的にと頼んだ3〜7件と同程度でした。スキルは3回とも自ら簡易な手順を選びました。
- 全工程は1回25〜32ドル(定価換算)、48〜70分、93〜129エージェントかかり、スキルなしの丁寧な依頼の平均約12倍の費用でした。
- 約800行の架空アプリでは普通の依頼でも仕込んだ20件を3回とも検出し、差は出ませんでした。差が開いたのは約2万8千行の実在アプリです。
- 全工程でも、見つけた公開済み脆弱性のうちconfirmedは9件・5件・0件と揺れました。対象は実行しておらず、結果は1リポジトリのものです。
Cloudflareのセキュリティ監査スキル「security-audit」を入れると、Claude Code(Anthropic)が見つける脆弱性はどれだけ増えるのでしょうか。実在のオープンソースアプリの公開済み脆弱性9件を答えにして、Sonnet 5.5で各3回試しました。普通に頼むと0〜1件、スキルの全工程を指定すると8〜9件です。ただし、スキルを入れて普通に頼むだけでは2〜6件にとどまり、スキルなしで徹底的にと頼んだ3〜7件と同程度でした。1リポジトリでの結果ですが、差の大きさとその条件、費用を報告します。
目次
security-auditの有無で発見数はどれだけ変わるのか?
頼み方を含めて比べると、差は9件中で0〜1件から8〜9件まで開きました。ただし、スキルの有無だけで決まるわけではありません。入れただけの場合は、スキルなしで徹底的にと頼んだ場合と同程度で、差が明確になったのは全工程を指定したときです。
| 頼み方(Sonnet 5.5・各3回) | 公開済み9件のうち発見 | 3回の合計(27件中) | 1回の費用 | 1回の時間 |
|---|---|---|---|---|
| スキルなし・普通に頼む | 0件・1件・0件 | 1件 | 0.14〜0.24ドル | 37〜51秒 |
| スキルあり・普通に頼む | 2件・5件・6件 | 13件 | 0.46〜4.59ドル | 約2〜12分 |
| スキルなし・徹底的にと頼む | 3件・6件・7件 | 16件 | 1.68〜3.50ドル | 約3〜8分 |
| スキルあり・全工程を指定 | 9件・8件・8件 | 25件 | 25.12〜32.34ドル | 48〜70分 |
※ 対象は paperless-ngx v2.20.3、Claude Code v2.1.318、claude -p で2026年11月6日に実測。発見数は当研究所が各結果と公開アドバイザリを照合して数えました。費用は total_cost_usd(APIの定価換算、サブエージェント分を含む)で、25〜32ドルは1ドル=157円で約3,900〜5,100円です。全工程の時間は2本を並列で動かしたときの値です。
読み取れることは3つあります。1つ目は、普通の依頼はこの規模のコードにはほぼ歯が立たなかったことです。3回とも危険な語の検索を軸に調べ、指摘の中心は既定の秘密鍵やpickleといった設定や書き方の問題でした。2つ目は、「徹底的に」の一言とサブエージェントの許可だけで3〜7件まで増えたことです。スキルを入れるより先に試す価値があります。3つ目は、全工程には明確な上積みがある一方で、費用は平均で約12倍になることです。1件あたりでは丁寧な依頼の約0.44ドルに対し、全工程は約3.5ドルでした。
複数回の実行も効きます。丁寧な依頼は3回を合わせると7件(計7.05ドル)で、全工程の1回の費用を大きく下回ります。全工程3回を合わせると9件すべてに届きました。
どのような条件で比べたのか?
答えが分かっている実在のアプリを使い、依頼文だけを変えて同じモデルで3回ずつ実行しました。対象は文書管理のオープンソースアプリ paperless-ngx の v2.20.3(2025年12月18日の版)で、テストと移行を除くPythonは約2万8千行あります。
答えには、この版より後の v2.20.4〜v2.20.15 で修正された公開アドバイザリ9件をすべて使いました。すでに修正済みで、開発元が内容を公開しているものです。古い版をあえて監査したのは比較のためで、このアプリの品質を評価する意図はありません。利用中の方は最新版への更新をおすすめします。
| 条件 | 依頼文 |
|---|---|
| 普通に頼む | このリポジトリは当社が開発したアプリです。セキュリティ監査をしてください。修正はしないでください。 |
| スキルあり・普通に頼む | 同じ文(スキルは入れてあり、自動で起動) |
| 徹底的にと頼む | 同じ文+「コード全体を徹底的に調べてください。サブエージェントも使ってかまいません。」 |
| 全工程を指定 | 同じ文+「security-audit スキルの standard プロファイルの全工程を、手順を省略せずに実行してください。」 |
結果を読むときの前提
- 規模:1リポジトリ、1モデル、各3回です。他の言語や規模、Opusでも同じ差が出るとは言えません
- 答えの偏り:9件の大半は権限確認の抜けです。インジェクションのように危険な語で探せる種類が中心なら、普通の依頼の成績はもっと高い可能性があります
- モデルの知識:対象はコードから paperless-ngx と分かります。公開情報を学習している可能性は除けません。ただしWeb検索は無効にし、9件のアドバイザリ番号を挙げた実行はありませんでした
- 測っていないこと:答えの9件以外の指摘が正しいかは確かめていないので、誤検知率は出していません
- 実行方法:すべて claude -p です。対話モードで同じ省略や工程が起きるかは確かめていません
どの脆弱性で差がついたのか?
差がついたのは、ソースを横断して読まないと気づきにくい権限確認の抜けです。全工程は7件を3回とも見つけ、グローバル検索の権限漏れは全工程だけが見つけました。一方、共有リンクのように、入れただけのスキルが3回とも見つけた項目もあります。
| 公開済みの脆弱性(公式の深刻度) | 普通 | スキルあり | 徹底的に | 全工程 |
|---|---|---|---|---|
| 保存先テンプレートのパストラバーサル(medium) | 0 | 2 | 3 | 3 |
| 編集者が権限を変更できる(medium) | 0 | 1 | 2 | 3 |
| 閲覧専用ユーザーが文書を作成できる(low) | 0 | 0 | 3 | 3 |
| 保存先テストAPIの権限不備(medium) | 0 | 2 | 3 | 3 |
| メールアカウントの認可回避(medium) | 1 | 2 | 2 | 3 |
| 共有リンク作成の認可不足(medium) | 0 | 3 | 2 | 3 |
| 管理者権限への昇格(high) | 0 | 2 | 1 | 3 |
| グローバル検索の権限漏れ(medium) | 0 | 0 | 0 | 2 |
| 管理者でない利用者が管理者を削除できる(low) | 0 | 1 | 0 | 2 |
| 合計(27件中) | 1 | 13 | 16 | 25 |
※ 数字は3回中その脆弱性を指摘した回数。深刻度はアドバイザリの表記です。悪用手順は載せず、詳細は各アドバイザリに譲ります。
この差は、読んだ量で説明できそうです。権限確認の抜けは「書かれていないこと」なので、危険な語を検索しても見つかりません。普通の依頼は検索と部分的な読み取りで40秒前後で終わりました。Readで開いたファイルの数は、徹底的にと頼むと36〜68、全工程では150〜269でした。もちろん相関であって、読む量だけが原因と断定はできません。
なぜ入れただけでは全工程が動かないのか?
スキルは手順書であって、実行を強制する仕組みではないからです。今回、普通の依頼で起動したスキルは3回とも自らquick相当の手順を選び、そのうち1回はエージェントを1つも使わず、手順を実行していないと自ら報告しました。
| 段階 | すること |
|---|---|
| 1. 偵察 | 構成、信頼の境界、入力の入口を調べ、点検する単位を決める |
| 2. 探索 | 隔離した探索役に単位を割り当て、批評役が漏れを探す |
| 3. 候補の検証 | 発見者ではない検証役が、各候補の反証を試みる |
| 4. 記録 | JSONスキーマと検証スクリプトで記録の形式を確かめる |
| 5. 記録の再検証 | 別の新しいエージェントが、記録の内容をソースと照合する |
| 6. 報告 | 検証済みの記録だけから報告書を作る |
※ README と SKILL.md(コミット c1c8a8c)から当研究所が要約。
Cloudflareの開発者向けアカウントが11月5日に紹介したこの6段階は、全工程を指定すれば実際に動きました。3回とも standard で完了し、93〜129のエージェントが動いています。依頼文では、工程の省略を明示的に禁じるのがポイントです。なお、公開されているのはスキルで、同社のブログにある社内ハーネスそのものではありません。ブログの大規模な数字は、スキル単体の性能を示すものではないので注意してください。
npx skills add https://github.com/cloudflare/security-audit-skill \
--skill security-audit --agent claude-code
このリポジトリは当社が開発したアプリです。
セキュリティ監査をしてください。修正はしないでください。
security-audit スキルの standard プロファイルの全工程を、
手順を省略せずに実行してください。
出力先は ~/audits/portal にしてください。
実行後は、報告書の冒頭と run-metadata.json のプロファイル、完了状態、エージェント数を確認してください。導入時の注意は次のとおりです。
導入前に確認したいこと
- 取得元:スキルの一覧サイトには似た名前の第三者版も載っています。cloudflare のリポジトリから入れてください。CLIも、スキルはエージェントの全権限で動くので使う前に確認するよう表示します
- 権限:公式ドキュメントは allowed-tools の確認を求めています。このスキルのSKILL.mdには指定がありません(コミット c1c8a8c 時点)
- 送信:skills CLI は匿名の利用データを送ります。DISABLE_TELEMETRY=1 または DO_NOT_TRACK=1 で止められます。Node.js 22.20以降が必要です
- 監査する相手:権利のあるコードに限ります。委託先や顧客のコードは、モデルへの送信を含めて契約上問題がないかを先に確かめてください。第三者のリポジトリを開く危険はダウンロードフォルダの指示ファイルを狙う攻撃の記事でも扱っています
- 日本語での起動:「セキュリティ監査をして」「脆弱性を診断して」では読み込まれ、「to_pdfは安全ですか?」では読み込まれませんでした(各1回)。確実に使うなら /security-audit と入力します
小さなアプリで差が出ないのはなぜか?
小さなコードなら、普通の依頼でも全体を読み切れてしまうからです。お手本どおりの脆弱性を仕込んだ架空のアプリでは、スキルの有無で検出数にほぼ差がありませんでした。自社の小さなツールなら、まず普通の依頼で十分な可能性があります。
| 対象(架空のFlaskアプリ) | 普通に頼む | スキルあり・普通に頼む |
|---|---|---|
| 11ファイル・仕込み9件 | 9件・9件(約0.09〜0.10ドル) | 8〜9件を記録(1.00〜2.54ドル) |
| 31ファイル・803行・仕込み20件 | 20件・20件・20件(0.15〜0.19ドル) | 19〜20件(0.38〜0.99ドル) |
※ 11ファイルの普通の依頼は2回、スキルはquickとstandardを各1回。803行は各3回。Sonnet 5.5。答えを当研究所が作ったテストなので、実在のアプリより見つけやすい可能性があります。
この記事の初版は11ファイルのアプリの結果だけを載せ、スキルは「見つける数を増やしませんでした」と書いていました。小さなアプリの結果としては正しいものの、実在の規模には当てはまらなかったので、今回の検証に差し替えました。誰もが満点を取るテストでは、道具の差は測れません。脆弱性診断の記事で扱った比較も、この点を踏まえて読んでください。
監査結果はどこまで信じてよいのか?
見つかった候補は事実の一覧ではなく、人が確かめる順番の案として読むのが安全です。全工程の3回でも判定は大きく揺れ、対象のコードは一度も実行していません。発見数が増えた分、確認の仕事も増えます。
| 全工程の実行 | 候補(rejected除く) | 見つけた公開済み脆弱性 | そのうちconfirmed |
|---|---|---|---|
| 1回目 | 27件 | 9件 | 9件 |
| 2回目 | 40件 | 8件 | 5件 |
| 3回目 | 39件 | 8件 | 0件(全件needs_validation) |
※ 判定は confirmed(根拠あり)、needs_validation(未解決の事実が残る)、rejected(反証された)の3種類。公開済みの9件が rejected になった例はありませんでした。
confirmedは動作確認ではない
スキルは、ネットワークの遮断などをOSで強制できない環境では対象を実行しません。今回の全工程も、ソースの追跡だけで判定したと記録しました。
残りの候補は未検証
答えの9件以外は、正しいとも誤りとも確かめていません。修正済みと確認できないものが含まれる可能性があるので、この記事では内容を載せていません。自社の監査でも、報告書は秘密情報として扱ってください。
1回で安全とは言えない
全工程でも2回は9件に届きませんでした。指摘が無い箇所は、安全という意味ではありません。
「1回の実行で見つかるのは、複数回の実行で捕まえられるバグのおよそ半分だけです。」
"a single run finds only about half the bugs you'd catch across multiple runs."
Cloudflare — Build your own vulnerability harness
Cloudflareは社内の実験について、見逃しの割合は主張していません。今回の結果でも、9件すべてを見つけたのは全12回の実行のうち1回だけで、9件はあくまで公開された分です。全部で何件あるのかは、誰にも分かりません。
Claude Codeでどう使い分けるべきか?
当研究所の見解では、対象の規模と失敗したときの影響で決めるのが現実的です。全工程を常に動かす必要はなく、まず徹底的にと頼み、重要な節目で全工程に切り替えるのが費用に見合います。
| 場面 | 頼み方 | 今回の目安 |
|---|---|---|
| 日々の変更の確認 | /security-review | 差分のみが対象。今回の実在OSSでは未比較 |
| 数百行の社内ツール | 普通に頼む | 803行で20件中20件、0.2ドル未満 |
| 数万行のアプリの定期点検 | スキルなしで徹底的にと頼む。できれば複数回 | 1回3〜7件、3回の合計7件、計約7ドル |
| 公開前、個人情報や権限が複雑なシステム | security-auditの全工程+人の確認 | 1回8〜9件、25〜32ドル、約1時間 |
※ 件数は paperless-ngx v2.20.3 の公開済み9件に対する値で、他のアプリでの発見数を保証するものではありません。
全工程の価値は件数だけではありません。調べた範囲を coverage-ledger.json に記録し、検証役による判定が残るので、前回の続きから再監査することもできる設計です(再監査は今回未検証)。一方で利用枠の消費は大きく、並列で動かした初回は定額プランの5時間枠の上限で止まって取り直しました。大きなリポジトリでは、まず範囲を絞るか「エージェントは最大30回まで」のように予算を指定してください。予算はエージェント数の指定で、金額の上限ではありません。
士業や中小企業の社内ツールなら、公開や大きな改修の前に1回監査し、needs_validation の項目を開発担当者や委託先と確認する流れが無理のない形です。最終的な優先順位は、誰がコードに触れるか、本番の鍵は別かといった事情を知る人にしか決められません。基本の設定はClaude Codeの必須セキュリティ設定、スキル自体の考え方はCLAUDE.mdとskillsの使い分けで解説しています。
まとめ
この記事のまとめ
- paperless-ngx v2.20.3の公開済み脆弱性9件に対し、普通の依頼は0〜1件、スキルあり普通の依頼は2〜6件、スキルなしで徹底的には3〜7件、全工程指定は8〜9件(Sonnet 5.5・各3回)
- 入れただけのスキルは自ら簡易な手順を選んだ。効果を出すには全工程の実行を依頼文で明示し、完了状態とエージェント数を確認する
- 全工程は1回25〜32ドル、48〜70分で、丁寧な依頼の平均約12倍。丁寧な依頼を3回重ねても7件に届く
- 約800行以下の架空アプリでは普通の依頼でもほぼ全件を検出し、差は出なかった
- 全工程でもconfirmedの数は実行ごとに大きく揺れ、対象は実行していない。残りの候補の真偽は未確認
- 1リポジトリ、1モデル、答えは権限確認の抜けに偏る。自社のコードでの効果は小さな範囲で試して確かめる
安全な設定まで含めて、Claude Codeを社内に入れる。
防衛省主催のサイバーセキュリティコンテストで入賞した専門家が教材を設計。機密情報を扱う士業事務所でも使える運用設計を、一社ごとの対面研修で身につけます。
- 一社ごとに業務をヒアリングして設計
- 実際の業務データでハンズオン
- スパルタ以上は全額返金保証
- 受講法人数100社超
オンライン30分・無料。フォームは入力1分で、2営業日以内にご連絡します。
よくある質問
security-auditスキルを入れるだけで、Claude Codeが見つける脆弱性は増えますか?
当研究所の検証では増えましたが、入れるだけでは最大の効果は出ませんでした。実在OSSの公開済み脆弱性9件に対し、普通の依頼は0〜1件、スキルを入れた同じ依頼は2〜6件、スキルの全工程を明示すると8〜9件でした。Sonnet 5.5で各3回、1リポジトリでの結果です。入れただけの場合は、スキルが自ら簡易な手順を選びました。
スキルなしでも「徹底的に調べて」と頼めば十分ですか?
小さなアプリや手早い点検なら有力です。同じ検証で、徹底的に調べてサブエージェントも使ってよいと頼むと、スキルなしで3〜7件を見つけ、費用は1回1.68〜3.50ドルでした。3回の結果を合わせると7件です。ただし全工程で見つかった8〜9件には届かず、調査範囲の台帳や検証役による判定も残りません。
security-auditスキルの費用はどのくらいですか?
対象の規模と頼み方で大きく変わります。当研究所の実測(Sonnet 5.5、APIの定価換算)では、約2万8千行のPythonを持つOSSで、スキルに任せると0.46〜4.59ドル、全工程を指定すると25.12〜32.34ドル(約3,900〜5,100円)でした。定額プランでは利用枠の消費になり、並列で動かした初回は5時間枠の上限で中断しました。
Claude Codeにsecurity-auditスキルを入れるにはどうすればいいですか?
監査したいリポジトリで npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit --agent claude-code を実行します。当研究所の環境では .claude/skills/security-audit に置かれました。CLIにはNode.js 22.20以降が必要で、匿名の利用データの送信はDISABLE_TELEMETRY=1で止められます。似た名前の第三者版があるので、取得元はcloudflareのリポジトリにしてください。
/security-reviewとsecurity-auditスキルはどう使い分けますか?
/security-reviewはClaude Code組み込みのコマンドで、作業ブランチとoriginの既定ブランチとの差分を点検するため、変更ごとの確認に向きます。security-auditはリポジトリ全体の監査を判定の記録と検証スクリプトつきで行う第三者製のスキルで、公開前や節目の点検に向きます。今回の実在OSSでの比較に/security-reviewは含めていません。
security-auditスキルで監査すれば脆弱性診断の外注は不要になりますか?
不要にはなりません。今回の全工程でも対象のコードは実行せず、ソースの読解だけで判定しました。デプロイ先の設定や実際の動作は確かめられません。Cloudflare自身も見逃しの割合を主張していません。社内の一次点検として使い、公開サイトや個人情報を扱うシステムでは専門家の診断も併用するのが当研究所の見解です。
参考資料・出典
- スレッドWith the recent wave of vulnerability disclosures, it's a good time to take a closer look at your own code.
この記事の出発点。6段階の説明と反響の実数(2026年11月6日時点)
- GitHubcloudflare/security-audit-skill
検証したスキル本体。6段階、3つの判定、プロファイル、サンドボックスの条件(コミットc1c8a8c)
- 公式ブログ・記事Build your own vulnerability harness
スキルからハーネスへの発展、失敗談、1回の実行で約半分という記述、見逃し率を主張しないこと
- GitHubpaperless-ngx v2.20.3
検証の対象にした版(コミットeca2ba3)
- GitHubpaperless-ngx Security Advisories
採点の答えにした、v2.20.4〜v2.20.15で修正された公開アドバイザリ9件
- 公式ドキュメントExtend Claude with skills
スキルの置き場所、自動起動、allowed-toolsを確認すべきという注意
- GitHubvercel-labs/skills
npx skills add の導入先とオプション、Node.jsの要件、テレメトリの止め方
- 公式ドキュメントCommands
/security-reviewが差分を点検すること
Claude Codeを実務で活用したい方へ
一社ごとにカスタマイズする対面のClaude Code研修は「スパルタClaude Code塾」。経営者・士業・エンジニア・マーケター・営業職まで、業務をヒアリングしてカリキュラムを設計します。まずは30分の無料相談で、自動化プランと費用対効果をご確認ください。

