Cloudflare の security-audit スキルを Claude Code と Codex で比較: 3つとも見つけ、進め方に差
Cloudflare の security-audit スキルを入れた Claude Code と Codex に同じ小さな API を点検させたところ、どちらもわざと入れた3つの弱いところを見つけ、差は進め方に出ました。2026年11月6日に、Claude Code 2.1.309 と Codex CLI 0.166.0 で確かめました。
経緯
Cloudflare が2026年9月に公開した security-audit スキルは、Claude Code でも Codex でも使えると紹介されています。同じアプリを両方に点検させて、見つけるものと進め方がどう違うかを並べました。1回ずつの結果なので、どちらが上かを決めるものではありません。
環境
- macOS 26.6.2、Node.js 24.19.0
- Claude Code 2.1.309(モデルは初めの設定の Claude Opus 5.5)
- Codex CLI 0.166.0(モデルは初めの設定の GPT-6.1-Sol)
- security-audit スキル(2026年9月14日の版)。Skills CLI 1.7.6 で入れた
比べ方
課題
メモの API(src/server.js と src/db.js の2つ、合わせて約60行)に、弱いところを3つ入れました。
| 場所 | 入れた弱いところ |
|---|---|
/users?name= | 名前をそのまま SQL の文に埋め込む |
/files?name= | ファイル名に ../ を入れると、決めたフォルダーの外を読める |
/ping?host= | 入力をそのままシェルのコマンドに埋め込む |
ID で探す /users/{id} だけは、? を使った安全な書き方にしておきました。
頼み方とそろえた条件
- スキルの README にある例のとおり、「security audit this codebase」とだけ頼みました。
- スキルは、プロジェクトのフォルダーに
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-auditで入れました。 - 1回の指示を渡して終わるまで任せる使い方(Claude Code は
claude -p、Codex はcodex exec)で動かしました。 - 自分で足した設定、MCP サーバー、指示のファイルは読み込ませませんでした。
- Claude Code にはファイルの読み書きと
nodeなどだけを許し、Codex は作業のフォルダーだけに書き込める設定(workspace-write)にしました。
結果
| Claude Code | Codex | |
|---|---|---|
| かかった時間 | 62秒 | 531秒(約9分) |
| SQL の埋め込み | 見つけた(Medium) | 見つけた(確かめが必要) |
ファイル名の ../ | 見つけた(High) | 見つけた(確かめが必要) |
| シェルへの埋め込み | 見つけた(Critical) | 見つけた(確かめが必要) |
| 不正な名前で、サーバーが落ちる | SQL の項目の中で指摘 | 4つ目の項目として指摘(確かめが必要) |
安全な /users/{id} | 問題なしとした | 良い書き方として挙げた |
| 作ったファイル | なし(返事だけ) | 報告と記録のファイル 20 個ほど |
| 読み込んだ量 / 書き出した量 | 約23万 / 4,571 トークン | 約240万 / 12,925 トークン |
使った量は、トークン(AI が文を数える単位)で記録しました。数え方がツールごとに違うので、同じツールの中での重さの目安として見てください。Codex の読み込みの多くは、前に読んだ分の使い回し(キャッシュ)でした。
違いが出たところ
Claude Code は、スキルの手順を省いて自分で読んだ
Claude Code の返事の最初には、次のように書かれていました。「アプリは2つのファイルで約60行なので、スキルの何段階もの手順と報告のファイルは省いて自分でコードを読んだ」。そのうえで、3つに重さ(Critical、High、Medium)を付けて、攻撃の例と直し方を並べました。返事は1回で、ファイルは作っていません。
Codex は手順どおりに進め、すべて「確かめが必要」とした
Codex は、スキルの説明のファイルを読んでから、手分けして調べる役(サブエージェント)を5回呼びました。見つけたものは別の役に確かめさせていて、スキルの手順どおりの進め方でした。報告(REPORT.md)の結論は「確定は0件、確かめが必要なものが4件」でした。
理由も報告に書かれていました。スキルは、コードを動かして確かめる前に、外のネットワークを切った隔離の環境を用意するよう求めています。その環境が用意できなかったので、コードは一度も動かさずに読むだけで終えた、という説明です。動かして確かめていないので、重さも付けていません。
Codex の報告は、リポジトリの外に置かれた
Codex は、報告を ../security-audit/memo-api/run-1/ に書き出しました。点検したフォルダーの隣です。報告の本文(REPORT.md)、確かめが必要なものの詳しい説明(NEEDS-VALIDATION.md)、見つけたものの一覧(findings.json)などが入っていました。
使い分け
小さなコードをすぐ見てほしいときは、Claude Code の返事の形が読みやすく、直す順番も付いていました。手順と記録を残したいとき、続けて何度か点検して結果を積み重ねたいときは、Codex のようにスキルの手順どおりに進めた形が合います。スキルの README には、1回の点検で見つかるのは、何度か繰り返したときの合計の半分ほどだったと書かれています。
注意点
1回ずつの結果で、やり直すと変わることがある
同じ頼み方でも、もう一度させると、手順を省くかどうかや見つけるものが変わることがあります。
「確かめが必要」は、安全という意味ではない
Codex の報告にも、確定が0件なのは動かして確かめられなかったからだと書かれています。安全だという意味ではありません。挙がったものは、自分で直すか、隔離した環境で確かめます。
大きなリポジトリでは、時間と量が大きく増える
今回は60行のアプリです。大きなリポジトリで手順どおりに進めると、時間と使う量はさらに増えます。入れる前にスキルの中身を確かめる手順は、スキルを入れる前に中身を確かめる手順に書きました。
参考文献
著書
articleClaude Code と Codex を並列で動かしたときの動き: 同じファイルでも書き換えは消えない
articleClaude Code の Stop フックで、終わる前にテストを走らせる手順: 失敗が残ったまま終わらない
articleClaude Code と Codex のスキルの置き場所の動き: .claude/skills と .agents/skills は互いに読まない
articleClaude Code の /security-review で変更を点検する手順: origin/HEAD がないと止まる
articleClaude Code と Codex のスキルを入れる前に中身を確かめる手順: security-audit で見る5か所
articleCloudflare の security-audit スキルを Claude Code と Codex で比較: 3つとも見つけ、進め方に差
articleClaude Code と Codex を並列で動かしたときの動き: 同じファイルでも書き換えは消えない
articleClaude Code と Codex のスキルの置き場所の動き: .claude/skills と .agents/skills は互いに読まない
articleClaude Code と Codex のスキルを入れる前に中身を確かめる手順: security-audit で見る5か所
articleCloudflare の security-audit スキルを Claude Code と Codex で比較: 3つとも見つけ、進め方に差
articleCodex の常駐プロセス(app-server)と会話の記録: 画面を閉じても動き続ける
articleClaude Code と Codex の違いを同じ課題で比較: 3つともテストは通り、差はテストの数と説明に出た
articleCloudflare の security-audit スキルを Claude Code と Codex で比較: 3つとも見つけ、進め方に差
articleCloudflare Zero Wire の php2shell のプロンプトを Claude Code で使う手順: 77秒で古い版を特定
articleClaude Code と Codex を並列で動かしたときの動き: 同じファイルでも書き換えは消えない
articleClaude Code の Stop フックで、終わる前にテストを走らせる手順: 失敗が残ったまま終わらない
articleClaude Code と Codex のスキルの置き場所の動き: .claude/skills と .agents/skills は互いに読まない
articleClaude Code の /security-review で変更を点検する手順: origin/HEAD がないと止まる
articleClaude Code と Codex のスキルを入れる前に中身を確かめる手順: security-audit で見る5か所
articleCloudflare の security-audit スキルを Claude Code と Codex で比較: 3つとも見つけ、進め方に差
