2026年5月にAnthropicが公式プラグイン「security-guidance」を公開して以降、Claude Codeのプラグインマーケットプレイスにはセキュリティ系の選択肢が一気に増えました。
この記事では、脆弱性を「検出」するだけでなく、危険な操作を「遮断」し、ルールを「統制」し、判断を「可視化」する4つの役割で、公式マーケットプレイスに実在する5つのプラグインを厳選し、導入前に知っておきたい注意点までわかりやすく解説します。
セキュリティプラグイン5選

検出 → 遮断 → 統制 → 可視化の4役割を、この5つのプラグインで埋めます。
| プラグイン | 提供元 | 役割 | 何をするか |
|---|---|---|---|
| security-guidance | Anthropic公式 | 検出 | 編集時・ターン終了時・コミット時の3層で生成コードの脆弱性を見つける |
| Semgrep(Semgrep Guardian) | Semgrep社 | 検出 | 編集のたびにSAST・サプライチェーン・シークレットの本格スキャンを走らせる |
| hookify | Anthropic公式 | 遮断 | rm -rfや.env編集などエージェントの危険操作をMarkdown1枚でブロックする |
| claude-md-management | Anthropic公式 | 統制 | CLAUDE.mdを監査・更新し、セッションで見つかったルールを次回から守らせる |
| explanatory-output-style | Anthropic公式 | 可視化 | 「なぜこの実装にしたか」を出力に添え、レビューでの見逃しを減らす |
④と⑤は脆弱性スキャナーではありません。それでも5選に入れたのは、「見つける」だけではAIコーディングのセキュリティは閉じないからです。
なぜ「検出」だけでは足りないのか
Claude Codeを使うときのセキュリティリスクは、大きく2種類あります。
1つ目は生成コードの脆弱性です。SQLインジェクション、XSS、安全でないデシリアライズ(pickle.loadやyaml.load)、ハードコードされたAPIキーなど、人間が書いても起きるミスをAIも起こします。
2つ目はエージェント自身の操作です。Claude Codeはファイルを書き、シェルを実行し、gitを操作します。rm -rfで作業ディレクトリを消す、.envを書き換える、本番ブランチにforce pushする、といった事故はコードの脆弱性とは別の問題になります。
さらに、見つけたり止めたりした結果を次回に引き継ぐ仕組みがないと、同じ指摘を毎セッション繰り返すことになります。
必要な基本要素は、検出 → 遮断 → 統制 → 可視化の4役割です。
前提・環境と想定コスト
- Claude Code CLI v2.1.144以降(
claude --versionで確認) - Python 3.8以上がPATHにあること(①③がPythonでフックを実装しているため)
- Claude Codeの契約プラン(Pro / Max / API / Bedrock・Vertex経由のいずれか)
プラグイン自体はすべて無料です。ただし追加コストが2種類あります。
- ①security-guidanceの第2層・第3層は、差分レビューのためにモデルを別途呼び出します。サブスクリプションなら利用枠を、APIならトークン料金を消費します。精度より費用を優先するなら
SECURITY_REVIEW_MODEL=claude-sonnet-4-6に下げられます。 - ⑤explanatory-output-styleは毎セッションの出力が長くなります。README自身が「トークンコストを許容できない場合はインストールしないこと」と警告しています。
Semgrepはアカウントが必要です。無料枠がありますが、チーム規模や機能によって有償になるため、Semgrepの料金ページで確認してください。

① security-guidance ── 検出の基本

Anthropicが2026年5月に公開した公式プラグインです。
Anthropic社内で導入した開発者のPRでは、コードレビュー時のセキュリティ関連の指摘が30〜40%減ったとされています。
3層構造で動く
| 層 | いつ動くか | 何をするか | モデル呼び出し |
|---|---|---|---|
| 第1層 パターン警告 | Edit / Writeの直前 | 約25種の危険パターンを正規表現で即座に警告 | なし |
| 第2層 LLM差分レビュー | Claudeがターンを終えるとき | 差分をモデルに送り、高リスクの指摘をClaudeに戻して、ユーザーに返答する前に修正させる | あり |
| 第3層 エージェント型コミットレビュー | git commit時 | Read / Grep / Globで関連ファイルを読み、ファイルをまたぐデータフローを追跡。 | あり |
第1層はモデルを呼ばないので、ほぼ遅延なしで動きます。
導入コマンド
bash
/plugin install security-guidance@claude-plugins-official
/reload-plugins
/reload-pluginsを実行すれば、セッションを再起動せずに有効化されます。
自社ルールを追加する
組み込みルールは一般的なWeb脆弱性をカバーしますが、「自社のコードベース固有の決まり」は知りません。それはclaude-security-guidance.mdに書きます。
markdown
# 自社セキュリティルール
- `customers` / `orders` テーブルへのSELECTは必ず `db.replica` を経由すること。`db.primary` は書き込み専用。
- バックグラウンドジョブはユーザーコンテキストの認証トークンを使わない。`jobs.get_service_account()` でサービスアカウント資格情報を取得する。
- ユーザー入力由来のURLを `requests.get()` に渡す場合は、SSRF許可リストラッパー `acme.net.safe_request` を使う。
置き場所は3か所で、ユーザー全体 → プロジェクト → ローカル上書きの順に連結されます。
| パス | 用途 |
|---|---|
~/.claude/claude-security-guidance.md | ユーザー全体のルール |
<project>/.claude/claude-security-guidance.md | プロジェクトのルール |
<project>/.claude/claude-security-guidance.local.md | ローカル上書き |
ハマりどころ
- Pythonが見つからないと第1層が動かない。
python3、python、py -3の順に探すので、Windowsではpy -3 --versionが通るか確認してください。 - 誤検知を黙らせたいときは、該当行に「なぜ安全か」をコメントで書きます。LLMレビューはインライン注釈を除外理由として扱います。
- マルチエージェント構成でHEADが動くと第2層が混乱します。その場合は
ENABLE_STOP_REVIEW=0でStop時レビューだけ切り、コミット時レビューは残せます。 - データ送信先は設定次第です。デフォルトでは差分と関連ファイルが
api.anthropic.comに送られ、Bedrock / Vertex / LLMゲートウェイを使っていればそちらに送られます。

② Semgrep(Semgrep Guardian)── 編集のたびに本格SASTが走る

Semgrep社が公式マーケットプレイスに出しているプラグインで、中身は「Semgrep MCPサーバー」と「hooks」のセットです。
- hooks: ファイルの書き込み・編集のたびに変更箇所へSemgrepスキャンを走らせます。指摘があればClaudeに再生成を促し、クリーンになるか人間が却下するまで続きます。
- MCPサーバー: Semgrep Code、Supply Chain、Secretsの結果をClaudeが直接問い合わせられます。
- セッション開始時と各プロンプトで、セキュアコーディングのデフォルト指示も注入されます。
security-guidanceの第1層が「約25種の正規表現」なのに対し、Semgrepは数千規模のルールライブラリと依存関係スキャンを持ちます。①が網、②が精密検査という関係です。
導入方法
Semgrep側のREADMEはプラグインマネージャー経由を案内しています。
bash
claude
/plugin # Discover から Semgrep を検索して Install
/reload-plugins
その後、Claudeに「login to semgrep」と頼むとMCPサーバー経由でオンボーディングが始まります。
セットアップコマンド/semgrep-plugin:setup_semgrep_pluginでも可能です。
ハマりどころ
- ログインに失敗したら
/clearで再起動。README自身が「Claudeがうまくいかない場合は/clearするか、手動で再起動」と書いています。 - コードはSemgrepのクラウドに送られます。社外に出せないコードがある場合は、ローカル実行版(semgrep/guardian-local)を検討してください。
- ①と重なって警告が二重に出ることがあります。チーム導入時は「①は編集時の即時警告、②はPostToolUseの精密スキャン」と役割を言語化しておくと、警告疲れが減ります。
③ hookify ── 「やってはいけない操作」を遮断する

①②は生成コードを見ますが、エージェントの操作そのものは止めません。
本来hooks.jsonに書くフックを、hookifyではMarkdownファイル1枚で定義できます。
hookifyのルールは、プロジェクト直下の.claude/hookify.<名前>.local.mdに置くMarkdownファイルです。構造は2部構成で、上のYAMLフロントマターが「いつ・何にマッチしたら発火するか」、下の本文が「発火したときにClaudeへ見せるメッセージ」です。
markdown
---
name: ルール名
enabled: true
event: bash
pattern: 正規表現
action: block
---
(ここに書いた本文が、発火時にClaudeへ表示される)
使い方は1行で完了
bash
/hookify rm -rf コマンドを使ったら警告して
これで.claude/hookify.warn-rm.local.mdが生成され、再起動なしで次のツール使用から効きます。引数なしで/hookifyを実行すると、直近の会話を分析して「ユーザーが修正・不満を示した挙動」からルールを提案してくれます。
セキュリティ用途の設定例
破壊コマンドをブロックする例です。
markdown
---
name: block-destructive-ops
enabled: true
event: bash
pattern: rm\s+-rf|dd\s+if=|mkfs|git\s+push\s+.*--force
action: block
---
🛑 **破壊的な操作を検出しました**
この操作はデータ損失や履歴の破壊につながるためブロックしました。
パスとブランチを確認し、必要なら人間が手動で実行してください。
.envや認証情報ファイルへの書き込みで、かつ内容にKEYを含む場合だけ警告する例です。複数条件はすべて一致したときに発火します。
markdown
---
name: warn-sensitive-files
enabled: true
event: file
action: warn
conditions:
- field: file_path
operator: regex_match
pattern: \.env$|credentials|secrets
- field: new_text
operator: contains
pattern: KEY
---
🔐 **機密ファイルの編集を検出しました**
認証情報をハードコードしていないか、このファイルが .gitignore に入っているか確認してください。
| 設定項目 | 値 |
|---|---|
event | bash(Bashコマンド)/ file(Edit・Write・MultiEdit)/ stop(Claudeが終了しようとするとき)/ prompt(ユーザー入力時)/ all |
action | warn(警告して続行、デフォルト)/ block(PreToolUseでは実行を阻止、Stopでは終了を阻止) |
| 参照できるフィールド | bash: command、file: file_path / new_text / old_text / content、prompt: user_prompt |
ハマりどころ
- ルールファイルはプロジェクト直下の
.claude/に置く。プラグインのディレクトリではありません。 - YAMLのパターンはクォートしない。
"rm\s+-rf"のように引用符で囲むとエスケープが崩れます。 event: allは遅くなります。bashかfileに絞り、ルール数も抑えてください。

④ claude-md-management ── セキュリティルールをCLAUDE.mdに定着させる

①②③で見つけたことを、次のセッションでも最初から守らせるには、CLAUDE.mdに書く必要があります。
CLAUDE.mdは放っておくと古くなり、保守していく必要があります。
それを担うのがclaude-md-managementです。
claude-md-improver(スキル) | /revise-claude-md | |
|---|---|---|
| 目的 | CLAUDE.mdをコードベースの現状に合わせる | セッションで得た学びを取り込む |
| きっかけ | コードベースの変化 | セッション終了時 |
| 使いどころ | 定期メンテナンス | 「今回のセッションで足りない前提が判明した」とき |
セキュリティ運用での使い方
たとえばsecurity-guidanceが「このリポジトリではsubprocessにshell=Trueを渡している箇所が多い」と警告し、修正したとします。セッションの最後に次を実行します。
bash
/revise-claude-md
Claudeがセッションを振り返り、CLAUDE.mdに追記すべき内容を提案します。
markdown
## セキュリティ規約
- `subprocess` は `shell=True` を使わない。引数はリストで渡す。
- 外部入力を `yaml.load` に渡さない。常に `yaml.safe_load` を使う。
- APIキーは環境変数から読む。コードや設定ファイルにベタ書きしない。
一方、定期的にaudit my CLAUDE.md filesと頼むと、claude-md-improverスキルが品質スコアと推奨更新を出してくれます。コードベースの構成が変わってCLAUDE.mdの記述が嘘になっている、といった「静かな腐敗」を見つけるのに向いています。
claude-security-guidance.mdとの使い分け
①のルールファイルとCLAUDE.mdは役割が違います。
- CLAUDE.md:Claudeがコードを書くときに参照する。生成の段階でミスを減らす。
claude-security-guidance.md:security-guidanceのLLMレビューが参照する。レビューの段階で見逃しを減らす。
両方に同じルールを書いておくと、生成とレビューの二段で有効化ができます。
ハマりどころ
- 自動更新の差分は必ず目視レビューしてください。CLAUDE.mdはすべてのセッションに影響するので、誤った規約が入ると全セッションで誤った挙動になります。
- CLAUDE.mdが長すぎると守られない。規約は箇条書きで短く、根拠や背景は別ファイルにリンクする形にします。
claude-md-improverの監査はこの肥大化も指摘してくれます。
⑤ explanatory-output-style ── 判断の根拠を可視化する

explanatory-output-style はClaude Codeで廃止された「Explanatory」出力スタイルをSessionStartフックとして再現したプラグインで、コードを書く前後に次のような解説ブロックを挟むようになります。
★ Insight ─────────────────────────────────────
[この実装選択に関する2〜3点の要点]
─────────────────────────────────────────────────
解説の対象は一般的なプログラミング知識ではなく、このコードベース固有の実装選択・慣習・トレードオフです。
なぜセキュリティの文脈で入れるのか
①②③は機械的に守る層ですが、最後に「このコードを入れてよいか」を決めるのは人間です。⑤はその判断を支える、人間が最終判断できる状態を保つ層です。
- レビューの時間を「推測」から「確認」に変える:AIが書いたコードのレビューでいちばん時間がかかるのは、「なぜこうしたのか」を読み解く作業です。理由が出力に添えられていれば、レビュアーは判断の妥当性だけを確認できます。
- セキュリティ上の判断が文章で残る:「なぜここでパラメータ化クエリにしたのか」「なぜこの認可チェックをミドルウェアではなくハンドラに置いたのか」といった判断が言葉になるので、意図とずれた実装に気づきやすくなります。
- ブラックボックス化を防ぐ:中身を理解しないまま承認する状態が続くと、危険な実装を見逃す土台になります。解説が読めるので、承認前に内容を把握できます。
- スキャナーに映らない問題を拾う手がかりになる:①②は既知のパターンを検出しますが、設計判断そのものの誤りは検出できません。根拠が読めれば、人間が違和感に気づけます。
- コードベース固有の説明が出る:解説の対象は一般論ではなく、このコードベースの実装選択・慣習・トレードオフです。チームの規約とのずれも確認できます。
- 経験の浅いレビュアーの助けになる:レビュー経験が浅いメンバーでも、根拠が書かれていれば確認すべき観点をつかみやすくなります。
導入方法
bash
/plugin install explanatory-output-style@claude-plugins-official
設定は不要で、次のセッションから自動で有効になります。以前settings.jsonで"outputStyle": "Explanatory"を使っていた人は、その置き換えとして使えます。
ハマりどころ
- トークンを消費します。READMEが明示的に警告しているとおりで、バッチ的な作業や定型リファクタリングのときは
/pluginから一時的にdisableするのが現実的です。 - 他の出力スタイル系プラグイン(learning-output-styleなど)と併用しない。SessionStartで指示が二重に注入され、出力が冗長になります。
- SessionStartフックはCLAUDE.mdに指示を足すのとほぼ同じ仕組みです。自社向けにカスタマイズしたいなら、プラグインをローカルにコピーして指示文を編集できます。
【図解】発火タイミング別・多層防御マップ

5つがClaude Codeのどのタイミングで動くかを1枚にまとめました。横軸がセッションの時間の流れ、縦軸がプラグインです。
図を見ると、穴がどこにあるかが分かります。
- PostToolUseはSemgrepだけ。①はPreToolUseの正規表現とStop時の差分レビューなので、「書いた直後にルールライブラリで検査する」層は②でしか埋まりません。
- Bashコマンドを見ているのはhookifyだけ。①②はファイルの中身しか見ないので、
rm -rfやgit push --forceは③がなければ素通りします。 - git commit時に動くのは①だけ。コミット前のファイル横断レビューは①の第3層が唯一です。
- ④はフックではなく、SessionStartで読み込まれるCLAUDE.mdを通じて効き、Stop後に
/revise-claude-mdで次回分を仕込みます。⑤はSessionStartで一度注入すると、以降の出力全体に影響します。
おすすめの組み合わせ
| 状況 | 入れるもの | 考え方 |
|---|---|---|
| 個人開発・まず試す | ① + ③ | 無料で即効性があり、外部送信は①のレビュー層のみ。破壊的操作はhookifyで止める |
| チーム開発 | ① + ② + ③ + ④ | ②でルールライブラリと依存関係まで見て、④で見つけたルールをCLAUDE.mdに定着させ、チーム全員に配る |
| レビュー体制が薄いチーム | 上記 + ⑤ | レビュアーが少ない・経験が浅い場合、⑤の★ Insightがレビューの手がかりになる |
| 社外にコードを出せない | ① + ③ + ④(+ ②のローカル版) | ①はBedrock / Vertex / ゲートウェイ経由にし、②はguardian-localを使う |
重なりについて1点。①と②はどちらも「検出」なので、両方入れると警告が二重に出ることがあります。
それ自体は害ではありませんが、チームでは「①は即時警告、②は精密検査」と役割を言語化しておくと、警告疲れで両方無視される事態を防げます。

セキュリティプラグインに関するよくある質問

- 組み込みの
/security-reviewコマンドとは何が違う? -
/security-reviewは「今のブランチの変更を1回レビューして」と頼むオンデマンドのコマンドです。security-guidanceは編集・ターン終了・コミットのたびに自動で動く常駐型で、人間が思い出さなくても走る点が違います。両方使えます。 - Enterprise向けの「Claude Security」とは別物?
-
別物です。Claude Securityはコードベース全体をスキャンし、ファイルをまたぐデータフローを追跡して修正案を出すEnterprise向け製品(パブリックベータ)です。本記事のプラグインは個人・チームが今日から無料で入れられるものを対象にしています。なお公式マーケットプレイスには「claude-security」という名前のプラグインも別にあり、セッション内でのディープスキャンを提供します。名前が似ているので混同に注意してください。
- CIのSASTは不要になる?
-
なりません。security-guidanceのREADME自身が「人間のコードレビュー、SAST/DAST、依存関係スキャン、ペネトレーションテストの代替ではない」と明記しています。本記事の5つは「PRを出す前に、AIが作る問題をAIの手元で減らす」ためのものです。CI側の検査はそのまま残してください。
- Coworkでも使える?
-
Coworkもプラグインに対応していますが、本記事はClaude Code CLIでの動作を前提に書いています。特に①③はPythonフックを使うので、CLI環境で検証してから展開することをおすすめします。

Claude Codeののセキュリティプラグインで環境を強化しよう!
AIコーディングのセキュリティは、脆弱性を「見つける」だけでは閉じません。
本記事の5つは次の四段構えになっています。
- 検出(① security-guidance、② Semgrep)で生成コードの問題を見つける
- 遮断(③ hookify)でエージェントの危険操作を止める
- 統制(④ claude-md-management)で見つけたルールを次回から守らせる
- 可視化(⑤ explanatory-output-style)で人間が最終判断できる状態を保つ
まずは①と③を入れて、警告の傾向が見えてきたら②④を足す、という順番がおすすめです。
公式ドキュメント
- Claude Code プラグイン(公式ドキュメント)
- Claude Code hooks(公式ドキュメント)
- anthropics/claude-plugins-official(公式マーケットプレイス)
- Semgrep Guardian
📌 本記事の情報は2026年10月時点のものです。Claude Code・プラグインともにアップデートが頻繁なため、最新の仕様は公式ドキュメントをあわせてご確認ください。
GPUSOROBAN

GPUSOROBANは、高性能なGPU「NVIDIA A4000 16GB」を業界最安値の1時間50円で使用することができます。
さらに、クラウドGPUを利用しない時は停止にしておくことで、停止中の料金はかかりません。
クラウドGPUを使えばいつでもStable Diffusionの性能をフルに引き出すことができるので、理想の環境に近づけることができます。
\快適に生成AI!1時間50円~/


