Claude Security プラグインの使い方|脆弱性スキャンとパッチ提案の手順

  • URLをコピーしました!
目次

はじめに

生成 AI による開発が広がり、コードを書く速度が上がる一方で、インジェクションやハードコードされた認証情報といった脆弱性が短時間で紛れ込みやすくなっています。こうした問題を、リリース後ではなく開発の早い段階で見つけたいという需要が高まっています。

2026 年 7 月 22 日、Anthropic は Claude Code 向けの Claude Security プラグインをベータ版として公開しました。これは Claude Code のセッション内で、コードベースの脆弱性スキャンを実行する機能です。ただし Claude Code には名前や役割が似たセキュリティ機能が複数あり、混同しやすい状況があります。本記事では、この Claude Security プラグインが何をするツールかを整理した上で、動作条件・インストール・スキャン実行・パッチ適用までを、公式ドキュメントに基づいて解説します。

この記事でわかること
  • Claude Security プラグインの機能とマルチエージェントスキャンの仕組み
  • マネージド製品「Claude Security」や security-guidance プラグインとの違い
  • 動作条件と対応プラン(有料プラン・バージョン・Python 要件)
  • インストールから初回スキャンまでの手順
  • スキャン結果の出力ファイルとパッチの扱い、コスト面の注意点

結論を先に示すと、Claude Security プラグインは Claude Code のセッション内でマルチエージェントによる脆弱性スキャンを実行し、検出結果を人手でレビュー・適用するパッチに変換する機能です。ローカルで動作し、各スキャンは利用中のプランの使用制限にカウントされます。従来のルールベース(パターンマッチング)とは異なり、データフローの追跡やビジネスロジックの解析によって、複数ファイルにまたがる脆弱性の検出に向く点が特徴です。

Claude Security プラグインの概要

Claude Security プラグインは、Claude Code のセッション内で動作する脆弱性スキャン機能です。複数の Claude エージェントが役割を分担し、コードの構造把握から脆弱性の検出・検証までを進めます。

スキャンの流れは次のとおりです。まず対象リポジトリのアーキテクチャをマッピングし、脅威モデルを構築します。続いて脆弱性を探索し、検出した内容を別のエージェントが独立して検証してから、レポートとして出力します。検証を経た項目のみがレポートに載るため、誤検出が抑えられ、レポートも読みやすい分量に保たれます。

従来のセキュリティツールで用いられるルールベースのパターンマッチングとは異なり、Git の履歴を読み取ってデータフローを追跡し、ビジネスロジックを解析します。メモリ破損、インジェクション、認証バイパス、複雑な論理エラーなど、単純なパターン照合では見逃されやすい脆弱性の検出に向いています特に、複数のファイルにまたがるコンテキスト依存型の脆弱性で効果を発揮しやすい傾向があります。

参考: Claude Security(Anthropic 製品ページ)
“It understands context, traces data flows, and catches vulnerabilities that pattern-matching tools miss.”
(コンテキストを理解し、データフローを追跡し、パターンマッチング型のツールが見逃す脆弱性を検出する。)
https://claude.com/product/claude-security

マルチエージェントスキャンの仕組み

/claude-securityから実行するコードベーススキャンでは、複数のエージェントが以下の段階を順に進めます。

各段階の詳細は、スキャン実行中に/workflowsから確認できます。スキャンには一定の時間がかかり、消費トークンも相応に大きくなる場合があるため、Claude Code を開いたまま完了を待つ必要があります。実行前には確認が入り、承認するまでスキャンは始まりません。

なお、同一のコードに対しても、スキャンのたびに検出結果が変わることがあります(後述の非決定性)
定期的なスキャンと、結果に付与されるリビジョン情報での対応が推奨されます。

マネージド製品「Claude Security」との違い

「Claude Security」という名称は、今回のプラグインとは別に、マネージド製品(旧称 Claude Code Security)も指します。両者は同じ検出ロジックを共有しますが、実行場所と対象範囲が異なります。

プラグイン

Claude Code のセッション内でローカルに動作します。GitLab や Bitbucket でホストされているリポジトリ、あるいは受信接続を許可していないネットワーク上のコードなど、マネージド製品が到達できない場所のコードもスキャンできます。

マネージド製品 Claude Security

Enterprise プラン向けにパブリックベータとして提供され、接続済みリポジトリを継続的に監視します。管理者による有効化が必要です。

変更部分だけでなくリポジトリ全体を継続監視したい場合はマネージド製品が対象になりますが、まず手元のコードをセッション内でスキャンしたい場合はプラグインが選択肢となります。両者を含む Claude Code のセキュリティ機能全体の使い分けは、後半の「類似セキュリティ機能との使い分け」で表にまとめます。

動作条件と対応プラン

Claude Security プラグインを利用するには、Claude Code のバージョン・プラン・Python・Git に関する条件を満たす必要があります。特にプランの条件は、後述のとおり「すべての Claude Code ユーザーが利用可能」という案内と実際の実行要件にずれがあるため、導入前に確認しておくことをおすすめします。

公式ドキュメントが挙げる前提条件は次のとおりです。

項目要件
Claude Codev2.1.154 以降
プラン有料プラン(スキャンが利用する dynamic workflows のため)
Python3.9.6 以降(python3 として PATH に配置。標準ライブラリのみ使用のため追加インストールは不要)
OSLinux / macOS / Windows
Git変更スキャンとパッチ生成に必要(他のバージョン管理システムは非対応。フルスキャンは Git なしでも動作)

Python のバージョンはpython3 --versionで確認できます。Git は「変更セットのスキャン」と「検出結果のパッチ変換」で使われますが、リポジトリ全体のフルスキャンはバージョン管理下にないディレクトリでも実行できます。

参考: Claude Code Docs(Scan your codebase for vulnerabilities)
“Claude Code v2.1.154 or later on a paid plan”
(有料プランかつ Claude Code v2.1.154 以降が必要。)
https://code.claude.com/docs/en/claude-security

「すべてのユーザーが利用可能」という案内との違い

Anthropic の製品ページやアナウンスでは、Claude Security プラグインは「すべての Claude Code ユーザーが利用可能」と案内されています。一方で、公式ドキュメントの前提条件では、スキャンを実行するために有料プランと Claude Code v2.1.154 以降、そして dynamic workflows が必要とされています。

この差は、プラグインの導入自体はどのプランでも可能である一方、スキャン機能を動かすにはエージェントを制御する dynamic workflows が必須であり、これが有料プランの機能である点によります。Pro プランでは、/configの「Dynamic workflows」の項目から有効化します。無料プランで導入だけ済ませても、スキャンは実行できない点に注意が必要です。

インストールと有効化の手順

インストールは、Claude Code のセッション内で公式の Anthropic マーケットプレイスから行います。手順はコマンド 2 つ(インストールと有効化)で完了し、再起動は不要です。

プラグインのインストール

Claude Code のセッションで、以下を実行します。

/plugin install claude-security@claude-plugins-official

マーケットプレイスが見つからないというメッセージが表示された場合は、先に以下を実行してマーケットプレイスを追加し、その後インストールを再試行します。

/plugin marketplace add anthropics/claude-plugins-official

なお/pluginはインタラクティブなパネルを開くコマンドで、ターミナルの CLI でのみ利用できます。デスクトップアプリやクラウドセッションなど、環境によって導入方法が異なる場合があるため、詳細は公式ドキュメント(https://code.claude.com/docs/en/claude-security )を参照してください。

有効化(再起動不要)

インストール後、以下を実行するとプラグインが有効化されます。再起動せずに、保留中のプラグイン変更が現在のセッションに適用されます。

/reload-plugins

これで/claude-securityコマンドが利用可能になり、スキャンを実行できる状態になります。

アンインストール

プラグインを削除する場合は、/pluginメニューからアンインストールするか、ターミナルで以下を実行します。

claude plugin uninstall claude-security

スキャンの実行とパッチ適用の流れ

プラグインを有効化すると、/claude-securityという 1 つのコマンドが追加されます。このコマンドから 3 種類のジョブを選び、スキャンの実行から検出結果のパッチ化までを進めます。標準的な流れは、リポジトリ全体をフルスキャンし、その検出結果をパッチに変換する形です。

/claude-securityの 3 つのジョブ

/claude-securityを実行すると、次の 3 つのジョブメニューが開きます。

  • Scan codebase: リポジトリ全体、またはスコープを絞った一部をスキャンします。
  • Scan changes: ブランチの diff、プルリクエストの diff、単一のコミットなど、変更セットをスキャンします。
  • Suggest patches: レポートの検出結果を.patchファイルに変換します。

メニューから選ぶほかに、/claude-security scan my branchのようにコマンドの引数で直接指定したり、「scan commit abc1234」のように平易な言葉で依頼したりもできます。各ステップで許可を求めるプロンプトを挟まず、エージェントがスキャンを進められる auto モードでの利用が推奨されています。

コードベーススキャンでは、プラグインがまずリポジトリを読み込み、全体をスキャンするか、絞り込んだ領域をスキャンするかを、それぞれのファイル数と相対的なコストとあわせて提示します。判断に迷う場合は「わからない」を選ぶと、リポジトリの規模に応じた既定のスコープが選ばれます。スキャンには時間がかかり、消費トークンも大きくなる場合があるため、実行前に確認が入り、承認するまでスキャンは始まりません。実行中は Claude Code を開いたままにしておく必要があります。

スキャン対象の絞り込みと変更セットのスキャン

ブランチにベースとなるブランチにはないコミットがある場合、メニューはその差分だけをスキャンする選択肢を提示します。マージ前のブランチを検査したい場合に利用できます。開いているプルリクエストや、単一のコミット(「scan commit abc1234」)を対象にすることも可能です。

変更セットのスキャンで対象になるのはコミット済みの変更のみです。作業中の編集を含めたい場合は、あらかじめコミットまたは stash するか、作業ツリーを読み取るフルスキャンを実行します。変更セットのスキャンには Git リポジトリが必要ですが、バージョン管理下にないディレクトリのフルスキャンは動作します。

大規模なリポジトリでは、全体を一度にスキャンするのではなく、API 層や認証コードといった領域を 1 つずつスキャンする方法が案内されています。選んだ領域に応じてスキャンの規模が調整され、レポートの coverage(対象範囲)セクションに、何を検査し何を検査しなかったかが記載されます。

スキャン結果の出力ファイル

スキャンごとに、リポジトリ内にタイムスタンプ付きのCLAUDE-SECURITY-<timestamp>/ディレクトリが作成され、以下のファイルが出力されます。

CLAUDE-SECURITY-RESULTS.md

人が読むためのレポート。各検出結果の ID(F1など)、影響、攻撃シナリオ、深刻度、確信度、推奨対応が記載されます。

CLAUDE-SECURITY-RESULTS.jsonl

同じ検出結果を機械可読な形式にしたもの。1 行あたり 1 つの JSON オブジェクトです。

CLAUDE-SECURITY-REVISION-<commit>.json

リビジョン情報。どのコミットを、どの精度でスキャンしたか、未コミットの変更が対象に含まれたか、どの程度検証したかを記録します。バージョン管理外のスキャンでは、コミットの代わりにUNVERSIONEDが記録されます。

    参考: Claude Security Plugin(Anthropic プラグインページ)
    “Each finding comes back with a severity, a CWE category, potential impact, reproduction steps”
    (各検出結果には深刻度、CWE カテゴリ、影響、再現手順が付与される。)
    https://claude.com/plugins/claude-security

    このディレクトリはスキャンがチェックアウトに加える唯一の変更で、専用の.gitignoreを持ちます。そのため、誤ってgit addしてもレポートがコミットに紛れ込むことはありません。監査証跡として履歴に残したい場合は、その.gitignoreファイルを削除し、通常のディレクトリと同様にコミットします。

    また、検出結果は独立した検証エージェントによる分析を経たものだけがレポートに載ります。あわせて把握しておきたい点として、スキャンには非決定性があり、同じコードに対する 2 回のスキャンで異なる検出結果が出ることがあります。定期的にスキャンを実行し、リビジョン情報を使って各レポートを対象のコードと設定に紐付ける運用が推奨されます。

    パッチ提案と適用

    検出結果への対処は、/claude-securityメニューから Suggest patches を選ぶか、「fix finding F3」のように依頼して開始します。続いて、レポートのどの検出結果に対処するかを選びます。

    パッチはコミット済みのコードに対して作成され、レポートが現在のコードを正しく記述している必要があります。コードがすでに変更されている検出結果は、注記とともにスキップされ、古いレポートからパッチを当てる代わりに新しいスキャンが案内されます。各パッチはリポジトリのスクラッチコピー上で作成されるため、適用するまで元のソースファイルは変更されません。

    配信前には、パッチを作成したエージェントとは別のエージェントがレビューします。対象コードにテストがあれば実行し、差分を独自に読んで新たな問題を持ち込んでいないかを確認します。パッチが作成されるのは、「その検出結果に対処する」「新たな脆弱性を持ち込まない」「それ以外の挙動を変えない」の 3 点をレビューが保証できる場合のみで、保証できない場合はパッチの代わりに理由を記した注記が返されます。

    作成されたパッチは、レポート内のpatches/フォルダに、検出結果ごとにF<n>.patchとして、変更内容を説明する注記とともに置かれます。適用はターミナルから次のように実行します。

    git apply CLAUDE-SECURITY-<timestamp>/patches/F1.patch

    パッチが自動で適用されることはなく、適用するかどうかは常に利用者の判断に委ねられます。レビューとテストを個別に行えるよう、各パッチはそれぞれ独立したプルリクエストで適用することが推奨されています。対象コードにテストがない場合は注記にその旨が記され、テストによる検証を経ずにレビューされたことが分かるようになっています。

    類似セキュリティ機能との使い分け

    冒頭で触れたとおり、Claude Code には名前や役割の似たセキュリティ機能が複数あります。特に、今回の Claude Security プラグインと、5 月に公開された security-guidance プラグインは、名称が近いため混同しやすい機能です。security-guidance プラグインは Claude がコードを書くそばから Edit / Write を対象に警告を出す機能で、Claude Security プラグインは/claude-securityで明示的に実行する詳細スキャンという違いがあります

    公式ドキュメントでは、これらを含む各機能が防御の多層化(defense-in-depth)の中でどの層を担うかが整理されています。以下は、その対応関係をまとめたものです。

    タイミングツールカバー範囲
    セッション中security-guidance プラグインClaude が書くコードの一般的な脆弱性を、同一セッションで検出・修正
    オンデマンド(単発)/security-review現在のブランチに対する 1 回のセキュリティレビュー
    オンデマンド(詳細スキャン)Claude Security プラグインリポジトリや差分のマルチエージェントスキャン。独立レビュー済みの検出結果とパッチ
    プルリクエスト時Code Review(Team / Enterprise プラン)コードベース全体の文脈での正確性・セキュリティレビュー
    マネージドClaude Security(Enterprise プラン)接続済みリポジトリを監視するホスト型スキャン
    CI既存の静的解析・依存関係スキャナー言語固有のルール、サプライチェーンチェック、ポリシー適用

    Claude Security プラグインは、この中で「オンデマンドの詳細スキャン」を担う層です。人手によるコードレビューのように、データフローを追ってコードを読み解く点が、決定的なルールで検査する静的解析ツールとは異なります。既存のセキュリティツールを置き換えるものではなく、静的解析・依存関係スキャン・コードレビューと併用する位置づけです。

    参考: Claude Help Center(Use Claude Security)
    “Claude Security is now available in public beta for users on Enterprise plans.”
    (Claude Security はエンタープライズプラン向けにパブリックベータとして提供中。)
    https://support.claude.com/en/articles/14661296-use-claude-security

    利用上の注意点とコスト管理

    導入にあたって把握しておきたい注意点を、コスト・モデルの挙動・環境要件の観点で整理します。

    トークン消費とスコープ設計

    スキャンはセッション内でローカルに実行され、各スキャンは利用中のプランの使用制限にカウントされます。スキャンする範囲によっては長時間の動作となり、消費トークンも大きくなる場合があります。大規模なリポジトリでは、全体を一度にスキャンするのではなく、API 層や認証コードといった領域を 1 つずつスキャンする方法が案内されています。スキャン対象を選ぶ際には、各選択肢のファイル数と相対的なコストが提示されるため、これを参考にスコープを絞ることで、消費を抑えながら継続的に運用しやすくなります。

    Fable 5 利用時のモデルの自動ダウングレード

    Claude Fable 5 を利用している環境でスキャンを実行すると、「Fable 5’s safeguards flagged this message」という表示が出る場合があります。これは Fable 5 のサイバーセキュリティ安全分類器によって特定のモデル動作がブロックされ、Opus に自動的に切り替わるためのものです。公式ドキュメントでは想定内の挙動とされており、この場合もスキャン自体は問題なく完了します。Fable 5 のサイバーセーフガードでブロック対象となる分類や評価基準については、関連記事『Fable 5 サイバーセーフガード|ブロック対象 4 分類と CJS 評価基準』で解説しています。

    Python バージョンの警告

    /claude-securityメニューを開いた際に Python の警告が表示される場合は、python3のバージョンが要件を満たしていない可能性があります。python3が見つからない場合や、PATH の先頭にあるpython3が 3.9.6 より古い場合に警告が出ます。Python 3 をインストールするか、新しいpython3を PATH の先頭に配置した上で、新しいセッションを開始します。

    まとめ

    Claude Security プラグインは、Claude Code のセッション内でマルチエージェントによる脆弱性スキャンを実行し、検出結果を人手でレビュー・適用するパッチに変換する機能です。従来のパターンマッチングでは見逃されやすい、複数ファイルにまたがる脆弱性の検出に向いています。導入前には、対応プランやバージョン要件、名称の似た機能との違いを確認しておくとよいでしょう。

    • Claude Code のセッション内で動作するマルチエージェント型の脆弱性スキャン機能
    • アーキテクチャ把握から脅威モデル構築、探索、独立検証までを複数エージェントで実行
    • 実行には有料プランと Claude Code v2.1.154、Python 3.9.6 以降が必要
    • /claude-securityからコードベース・変更セット・パッチ提案の 3 ジョブを選択
    • 検出結果は RESULTS.md / .jsonl / REVISION.json として専用ディレクトリに出力
    • パッチは独立レビューを経て生成され、適用は git apply による手動操作
    • Edit / Write フックの security-guidance プラグインやマネージド製品との役割の違い

    以上、最後までお読みいただきありがとうございました。

    よかったらシェアしてね!
    • URLをコピーしました!

    この記事を書いた人

    関西を拠点に活動する、現役インフラエンジニア。経験20年超。

    大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

    保有資格
    CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

    ▶ 運営者プロフィール(詳細)

    目次