Anthropicは、開発ツール「Claude Code」向けに、コードの脆弱性をAIが診断する「Claude Security」プラグインをベータ公開しました。ターミナルで /claude-security と入力するだけで、リポジトリ全体や変更差分をマルチエージェントが点検し、見つかった問題を修正パッチの候補にまとめます。コミット前のちょっとした確認から、コードベース全体の本格的な監査まで、普段の開発の流れを崩さずにセキュリティ点検を組み込める点が特徴です。
ターミナルから3つのジョブを呼び出せる
Claude Securityは、すでに動いているClaude Codeのセッションの中で動作します。/claude-security と打つと、次の3つのジョブから選ぶメニューが開きます。
まず「Scan codebase」は、リポジトリ全体、または範囲を絞った一部を対象にした診断です。「Scan changes」は、ブランチの差分やプルリクエストの差分、単一のコミットだけを点検します。そして「Suggest patches」は、診断結果として挙がった問題を .patch ファイルに変換します。手元で普段使っているClaudeの推論をそのまま使うため、別のスキャナーへ切り替える必要がありません。
導入はAnthropic公式のマーケットプレイスから2つのコマンドで完了します。
/plugin install claude-security@claude-plugins-official
/reload-plugins
マーケットプレイスが見つからない場合は、先に /plugin marketplace add anthropics/claude-plugins-official を実行します。プラグインのソースは claude-plugins-official リポジトリで公開されており、記事執筆時点のバージョンは 0.10.0 です。
6段階のマルチエージェントで点検する
診断の中身は、作業を複数のサブエージェントに振り分ける動的ワークフローとして組まれています。処理は6つのフェーズに分かれます。最初の「Inventory」でリポジトリを部品ごとに分割し、続く「Threat model」で部品ごとに入口・出口・信頼境界を洗い出します。「Research」で個別に調査し、「Sweep」で取りこぼしを埋め、「Panel」で3つの観点から検証、最後の「Adversarial」は最大強度のときだけ残った候補を叩き直します。
調査は、injection-and-input(入力・注入)、auth-and-access(認証・アクセス)、memory-and-unsafe(メモリ安全性)、crypto-and-secrets(暗号・機密情報)の4カテゴリで進みます。PythonやTypeScriptのようにメモリ安全な言語だけで書かれた部品では、メモリ関連の観点が外れ、3観点での確認になります。
処理の規模は low・medium・high・max の4段階で調整できます。対象部品の上限は low と medium で12、high と max では24に広がり、調査担当も high 以上で1人から2人に増えます。差分が小さいときは行列全体を展開せず、担当1人の構成に自動で圧縮され、規模に見合った点検になります。エージェントには役割ごとにモデルが割り当てられ、全体を束ねる指揮役は Opus、リポジトリの地図づくりと読み取り専用の探索は Sonnet が担います。スキャン用のエージェントは読み取り専用のツールだけに制限されます。
「本当に問題か」を検証してから報告する
Claude Securityで注目したいのが、報告に載せる基準の厳しさです。候補として挙がった問題は、見つかっただけでは報告に入りません。REACHABILITY(到達可能性)、IMPACT(影響)、DEFENSES(防御)の3観点について、それぞれ独立した検証役が「本物か、誤検知か」を判定し、根拠となる該当行を示します。3票中2票がそろって初めて採用され、票が3つ集まらなければ採用されません。しかも3票そろって一致したときだけ確信度を「high」まで上げられ、2対1のときは「medium」が上限になります。
この集計は、問題を見つけたモデル自身ではなく、報告を書き出す処理がプログラム側で数え上げます。すべての問題について検証が実行されたと票の記録で確認できたときだけ「検証済み」と刻まれ、そうでなければ理由付きで「未検証」と記録されます。報告書の信頼性を、鵜呑みにするのではなく後から確かめられる形にしているわけです。
診断を実行すると、日時付きのフォルダに3種類の成果物が書き出されます。人が読むための報告書、1行1件のJSON形式の一覧、そしてどのコミットをどの強度で点検したかを記した改訂スタンプです。報告書の各項目には、識別子や深刻度、確信度、CWE番号、問題箇所の行、想定される攻撃シナリオまで並びます。このフォルダには専用の .gitignore が同梱され、うっかり git add で報告書をコミットに混ぜてしまわないよう配慮されています。
修正はパッチ提案まで、適用は人が判断する
修正パッチは、リポジトリの使い捨てのクローン上で作られるため、作業中のツリーやインデックスには一切触れません。パッチを書いたエージェントとは別のエージェントが差分を確認し、プロジェクト自身のテストを走らせます。
パッチが実際に書き出されるのは、検証役が「その問題だけを直している」「新たな脆弱性を持ち込んでいない」「それ以外の挙動は変わらない」の3点を自信を持って言い切れるときだけです。受け付ける入力が変わることも挙動の変化とみなされ、認証を緩めたりテストを無効化したりといった、セキュリティを下げながら直したと主張する変更は自動的に却下されます。条件を満たせない場合は、パッチの代わりに理由を添えた短いメモが返ります。生成されたパッチは自動では当たらず、git apply で開発者が手作業で適用する形です。Anthropicは、パッチごとに個別のプルリクエストで取り込むことを勧めています。
使う条件と気をつけたい点
利用には有料プランと Claude Code v2.1.154 以降が必要で、設定で動的ワークフローを有効にしておきます。加えて python3 として呼べる Python 3.9.6 以降と、差分の点検やパッチ生成のための Git が要ります。Linux・macOS・Windowsに対応し、スキャンはプランのトークン上限を消費します。
診断は利用者の権限のもとでセッション内を動くため、それ自体は隔離環境を用意しません。コミット済みの設定やフックはそのまま効くので、素性の分からないコードを点検するときは、別の仕組みでサンドボックス化してから実行するようAnthropicは注意を促しています。結果は毎回まったく同じにはならず、従来の静的解析や依存関係の点検、人によるレビューを置き換えるものではないと位置づけられています。
まとめ
Claude Securityは、Claude Codeのセッション内で6段階のマルチエージェントがコードを点検し、3観点の検証を通った問題だけを報告する脆弱性診断プラグインです。報告の集計はプログラム側で行い、検証済みかどうかも記録として残ります。修正はパッチの提案までで、適用は必ず人が判断します。ターミナルから普段の開発に組み込める手軽さと、報告の確かさを後から確認できる設計が、他のツールとの違いになりそうです。
