前提条件
- Claude Code CLI バージョン 2.1.144 以降
PATH上の Python 3.8 以降。プラグインはpython3、python、py -3をこの順序で試します- 作業するディレクトリ用の git リポジトリ。ターン終了とコミットレビューは git 状態に対して diff を行い、リポジトリ外では無音でスキップします。編集ごとのパターンチェックはどこでも機能します
~/.claude/security/ の下に仮想環境を作成し、Claude Agent SDK をインストールします。これには pip とネットワークアクセスが必要です。そのインストールが失敗した場合、コミットレビューは agentic なものではなく、単一ショットレビューにフォールバックします。Windows では仮想環境ステップはスキップされるため、agentic コミットレビューは claude-agent-sdk が既にインポート可能な場合にのみ実行され、そうでない場合は同じようにフォールバックします。
プラグインをインストールする
Claude Code セッションで、公式 Anthropic マーケットプレイス からインストールします:/plugin marketplace add anthropics/claude-plugins-official を実行してから、インストールを再試行してください。
次に、現在のセッションで /reload-plugins を使用して有効化します。これはプラグインの変更を再起動なしで適用します:
クラウドセッションと共有リポジトリで有効化する
ユーザースコープのプラグインは、Anthropic インフラストラクチャで実行されるため、ウェブ上の Claude Code には引き継がれません。そこで有効化するか、リポジトリをクローンするすべてのユーザーに対して有効化するには、プロジェクトのチェックイン設定で宣言します:.claude/settings.json
enabledPlugins を設定することで、組織全体でプラグインを有効化できます。
プラグインがチェックする内容
プラグインは 3 つのポイントで Claude の作業をレビューし、それぞれ異なる深さです:- 各ファイル編集時:リスキーな呼び出しの高速パターンマッチ、モデル呼び出しなし
- 各ターンの終了時:そのターンが変更したすべてのバックグラウンドモデルレビュー
- Claude が行う各コミットまたはプッシュ時:周囲のコードを読む深い agentic レビュー
各ファイル編集時
Claude がファイルに書き込むと、プラグインは新しいコンテンツをスキャンして既知のリスキーなパターンを探します。これはモデル呼び出しのないパターンマッチなので、使用コストは追加されません。 パターンカテゴリの例:- 動的コード実行:
eval(、new Function、os.system、child_process.exec - 安全でないデシリアライゼーション:
pickle - DOM インジェクション:
dangerouslySetInnerHTML、.innerHTML =、document.write - ワークフローファイル:
.github/workflows/下の編集。リポジトリレベルの権限を付与できます
security-patterns.yaml ファイルを使用して、このレイヤーに 独自のパターンを追加 できます。
各ターンの終了時
ターンは Claude が応答する 1 ラウンドです:メッセージを送信し、Claude が作業して返信し、ターンが終了します。各ターンの後、プラグインはターン中に作業ツリーで変更されたすべてのもの(Claude の編集ツール、Bash コマンド、サブエージェントからの変更を含む)の git diff を計算し、セキュリティに焦点を当てた別の Claude レビューに送信します。レビューはバックグラウンドで実行されるため、Claude の返信は遅延しません。レビューが問題を見つけた場合、Claude は結果を使用して再度プロンプトされ、フォローアップとして対処します。 これは文字列マッチでは捕捉できない問題をキャッチします。例えば:- 認可バイパス
- 安全でない直接オブジェクト参照
- インジェクション
- サーバー側リクエストフォージェリ
- 弱い暗号化
Claude が行う各コミットまたはプッシュ時
Claude が Bash ツールを通じてgit commit または git push を実行すると、プラグインはバックグラウンドで変更の深い agentic レビューを実行します。このレビューは、呼び出し元、サニタイザー、関連ファイルを含む周囲のコードを読んで、結果が実際のものであるかどうかを判断してから報告します。追加のコンテキストは、分離されたときは危険に見えるが、コードベースでは安全なパターンの偽陽性を低く保ちます。
このレイヤーは、Claude が Bash ツールを通じて行うコミットとプッシュでのみ発火します。独自のシェルから実行するコミット(セッション内の ! シェルエスケープを含む)はレビューされません。コミットとプッシュレビューはローリング 1 時間あたり 20 に制限されています。コミットレビューの結果がターン終了レビューが既に報告したものと重複する場合、Claude は再度プロンプトされないため、クリーンなコミットはこのレイヤーから目に見える出力を生成しません。
レビューの独立性と制限
プラグインは、コードを書いた同じ Claude インスタンスに自分自身を採点するよう求めません。編集ごとのチェックは、モデルが関与しない決定論的な文字列マッチです。ターン終了とコミットレビューは、新しいコンテキストとセキュリティに焦点を当てたプロンプトを持つ別の Claude 呼び出しとして実行されます:レビュアーは diff から開始し、元のアプローチに投資がなく、問題を見つけるだけの指示を受けます。 どのレイヤーも書き込みやコミットをブロックしません。結果は書き込み Claude に指示として到達し、Claude は会話で対処し、レビューモデルは問題を見落とす可能性があります。プラグインを完全なセキュリティソリューションではなく、多層防御の 1 つのレイヤーとして扱ってください。これが他のセキュリティツールとどのように適合するか を参照してください。独自のルールを追加する
プラグインには 2 つの拡張ポイントがあります:モデルバックアップレビュー用の Markdown ガイダンスファイルと、編集ごとの文字列マッチ用の YAML または JSON パターンファイルです。どちらも加算的です。チェックを追加できますが、これらのファイルから組み込みのものを無効化することはできません。モデルバックアップレビュー用のガイダンスを追加する
プロジェクトに.claude/claude-security-guidance.md を作成し、脅威モデルとレビューチェックリストを平文で説明します。モデルバックアップレビューは、組み込みの脆弱性チェックリストと一緒に追加のコンテキストとして読み込みます。
以下の例は、ロールゲートされた管理ルートとカスタマーデータロギングポリシーを持つウェブサービス用です:
.claude/claude-security-guidance.md
カスタム編集ごとのパターンを追加する
.claude/security-patterns.yaml を作成して、編集ごとのパターンチェック に正規表現またはサブストリングルールを追加します。これらは組み込みパターンと一緒に決定論的な文字列マッチとして実行されます:
.claude/security-patterns.yaml
| フィールド | タイプ | 説明 |
|---|---|---|
rule_name | string | 警告に表示される識別子 |
reminder | string | Claude のコンテキストに追加される警告テキスト、1 KB でキャップ |
regex | string | 編集されたコンテンツに対してマッチされる Python 正規表現 |
substrings | list | リテラルサブストリング;これまたは regex を提供してください |
paths | list | オプションのグロブパターン;ルールはマッチするファイルにのみ適用されます。グロブはフルファイルパスに対してマッチするため、プロジェクト相対パターンの前に **/ を付けてください |
exclude_paths | list | スキップするオプションのグロブパターン;paths と同じマッチング |
.claude/security-patterns.yml と .claude/security-patterns.json も読み込みます。JSON はすべての Python インストールで機能します。YAML フォームは PyYAML をインポート可能にする必要があり、プラグインはそれをインストールしません。プラグインは最大 50 個のカスタムルールを読み込み、壊滅的なバックトラッキングの傾向がある正規表現をスキップします。
ルールファイルの検索場所
プラグインは、プラグインがどのように有効化されたかに関係なく、同じ場所でclaude-security-guidance.md と security-patterns.yaml を探します:
| スコープ | パス | 注記 |
|---|---|---|
| ユーザー | ~/.claude/claude-security-guidance.md | マシン上のすべてのプロジェクトに適用されます |
| プロジェクト | .claude/claude-security-guidance.md | リポジトリでチェックインされます |
| プロジェクトローカル | .claude/claude-security-guidance.local.md | Gitignored、個人的なオーバーライド用 |
~/.claude/ にユーザースコープファイルをプッシュすることで、組織全体のルールを配布できます。同じパスが security-patterns.yaml に適用されます。
使用コスト
編集ごとのパターンチェック はモデル呼び出しを行わず、コストを追加しません。ターン終了 と コミット レビューはそれぞれ、他の Claude リクエストと同様に 使用 にカウントされる追加のモデル使用を費やします。コミットレビューは agentic であり、コミットごとに複数のモデルターンを取る可能性があり、ローリング 1 時間あたり 20 レビューに制限されています。ターンごとにファイルを変更する 1 つのレビュー呼び出しと、コミットごとに 1 つの深いレビューを期待してください。どちらも上記のキャップの対象です。 両方のモデルバックアップレビューはデフォルトで Claude Opus 4.7 を使用します。SECURITY_REVIEW_MODEL を設定して、ターン終了レビュー用に別のモデルを選択し、SG_AGENTIC_MODEL をコミットレビュー用に設定します。
プラグインはすべてのプランで利用可能です。
無効化またはアンインストール
残りを保持しながら個別のレイヤーをオフにするには、マッチング環境変数を設定します:| 変数 | 効果 |
|---|---|
ENABLE_PATTERN_RULES=0 | 編集ごとのパターンチェック を無効化 |
ENABLE_STOP_REVIEW=0 | ターン終了 diff レビュー を無効化 |
ENABLE_COMMIT_REVIEW=0 | コミットとプッシュレビュー を無効化 |
ENABLE_CODE_SECURITY_REVIEW=0 | すべてのモデルバックアップレビューを一度に無効化 |
SECURITY_GUIDANCE_DISABLE=1 | アンインストールせずにプラグイン全体を無効化 |
.claude/settings.json を通じて有効化された場合、/plugin から無効化すると、チェックインファイルを編集するのではなく、.claude/settings.local.json にオーバーライドを書き込むため、プラグインはあなたにとってオフのままで、チームメイトは影響を受けません。管理設定 を通じて有効化された場合、管理者のみがそれを無効化できます。
プラグインが Claude Code とどのように統合されるか
プラグインは完全に hooks 上に構築されています。これは Claude のループの特定のポイントで独自のコードを実行するメカニズムです。登録されます:| フックイベント | 目的 |
|---|---|
SessionStart | プラグインの Python 環境をブートストラップ |
UserPromptSubmit | ターン終了レビューが diff を行う作業ツリーベースラインをキャプチャ |
PostToolUse on Edit、Write、NotebookEdit | 編集ごとのパターンマッチ |
Stop | ターン終了 diff レビュー、バックグラウンドで実行 |
PostToolUse on Bash、git commit と git push にフィルタリング | コミットとプッシュレビュー、バックグラウンドで実行 |
これが他のセキュリティツールとどのように適合するか
プラグインは多層防御アプローチの 1 つのレイヤーです。コードがまだエディタにある間に最も早く問題をキャッチしますが、保証ではなく、後の確認を置き換えません。典型的なスタック:| ステージ | ツール | カバーするもの |
|---|---|---|
| セッション内 | Security guidance プラグイン | Claude が書くコードの一般的な脆弱性。同じセッション内で修正 |
| オンデマンド | /security-review | 現在のブランチでの 1 回限りのセキュリティパス。要求時に実行 |
| プルリクエスト | Code Review、Team および Enterprise プラン | 完全なコードベースコンテキストを持つマルチエージェント正確性とセキュリティレビュー |
| CI | 既存の静的分析と依存関係スキャナー | 言語固有のルール、サプライチェーンチェック、プラグインが試みないポリシー実装 |
トラブルシューティング
プラグインはランタイム診断を~/.claude/security/log.txt に書き込みます。レビューが表示されない場合は、まずそこを確認してください。
レビューレイヤーが会話にメッセージなしでスキップする一般的な理由:
- ディレクトリが git リポジトリではない:ターン終了とコミットレビューは git 状態を必要とし、リポジトリ外ではスキップします
- セッションに Anthropic 認証がない:モデルバックアップレビューはスキップされ、編集ごとのパターンチェックのみが実行されます
security-patterns.yamlファイルが存在するが PyYAML がインポート可能ではない:ファイルは無視されます。代わりにsecurity-patterns.jsonを使用してください
関連リソース
このページが触れるピースについてさらに深く掘り下げるには:- Code Review:PR 時のマルチエージェントレビューをセットアップ
- フックでワークフローを自動化:同じライフサイクルポイントで独自のチェックを構築
- プラグインを発見してインストール:他の公式プラグインを参照