Claude Code を触っていて、「AIが勝手に書いたコードに、地雷が混じってないか心配」と感じたことはありませんか?
2026年5月26日に Anthropic から公開された security-guidance は、その不安に正面から答える公式のセキュリティ系プラグインです
この記事では、Claude Code Desktop を使い始めた方〜慣れてきた方向けに、security-guidance が何をしてくれて、どう入れて、どう使えばいいのかを一通り解説します
ついでに、このプラグインだけでは守りきれない部分をどう補うか(deny リスト・自動モード・MCP の注意点など)も横展開で触れます
Claude Code のセキュリティ全体像はClaude Code Desktop 初心者向けセキュリティ5選、プラグインを支える土台はClaude Code 拡張機構入門でも扱っているので、合わせて読むと位置づけが立体的になります

※ 本記事は Claude Code Desktop での導入手順をベースに書いています、ターミナル(黒い画面)で claude コマンドを使う CLI 環境では別のコマンド操作が用意されていますが、ここでは Desktop 前提で進めます
※ 動作には3つの前提があります、Claude Code が比較的新しめのバージョン(2.1.144以降)、パソコンに Python 3.8 以降が入っている、対象フォルダが git で管理されている、この3つが揃っていればOKです、git で管理されていない場所だと、ターン終了時とコミット時のレビュー(後述のレイヤー2と3)は静かにスキップされます(レイヤー1のパターン照合はどこでも動きます)
そもそも security-guidance って何のプラグイン?
ざっくり言うと、Claude がコードを書いた瞬間に、その内容を別の Claude がセキュリティ目線でレビューしてくれる仕組みです
もう少し正確に言うと、Claude Code には「プラグイン」と呼ばれる拡張パッケージの仕組みがあり、その公式マーケットプレイス claude-plugins-official に並んでいる中の1つが security-guidance です
大事なポイントは次の3つです
- Anthropic 公式のプラグインなので、出どころの安心感が大きい
- 無料・全プラン対応、課金プランでなくても使える
- 導入後は裏で勝手に動く、毎回コマンドを打つ必要はない
公開直後から大きな注目を集め、Claude にコードを書かせる人ほど効きやすい性質のプラグインとして広く紹介されています
プラグインそのものの概念がピンとこない方は、先に拡張機構入門の記事を読んでおくと「Skills / MCP / Hooks / Subagents / Plugins」の位置関係が整理できますよ
何ができる? 3層のレビューでコードを見張る
security-guidance が偉いのは、3つのタイミングで深さの違うレビューを走らせてくれるところです
レイヤー1:ファイルに書き込んだ瞬間のパターン照合
Claude がファイルを編集するたびに、「危ない書き方」が含まれていないかを高速チェックします
ここは AI の追加呼び出しを伴わない、いわゆる文字列マッチによる照合なので、余分な利用料金は発生しません
「ファイルが書かれたら、その内容を辞書と突き合わせて怪しい言葉が出てきたら警告する」というイメージです
レイヤー2:ターンの終わりにまとめてレビュー
Claude が「はい、ここまでで一区切りです」と返した瞬間、そのターンで変わったファイルをまとめて 別の Claude にセキュリティレビューさせる動きが入ります
ここで言う ターンとは、こちらが1回メッセージを送って、Claude が動いて返事して、その応答が終わるまでの1往復のことです
このレイヤーは、文字列マッチでは見抜けない 権限まわりの抜け穴・脆弱な暗号化・想定外の入力経路みたいな話を拾ってくれます
裏で動くため、Claude の返答自体は遅くなりません、見つかった指摘は次の応答で「ここ直しておきますね」と本人(Claude)が修正してくれるイメージです
レイヤー3:コミットの直前にじっくりレビュー
Claude が git commit や git push を実行しようとしたタイミングでも、もう一段深いレビューが走ります
このレベルになると周辺コード(呼び出し元・サニタイズ処理など)まで読んだ上で「これは実際にヤバいやつ」か「文脈上は安全」かを判定してくれます
このおかげで 「形だけ見ると危なそうだけど、実は文脈的に大丈夫なコード」を誤検出しすぎないように調整されています
※ このレビューが走るのは 「Claude が裏で git commit / git push を実行したとき」だけです、自分でターミナルから手動で commit したものは対象外なので、 Claude に作業を任せた区間だけが見られるイメージです
3層とも 「書き込みを止める」訳ではないのがポイントです、見つけたら Claude に指摘を返して、Claude が修正する流れになります、ガード(門番)ではなくレビュワー(同僚)に近いイメージで捉えるのが正解です
どんな脆弱性パターンを見つけてくれる?
レイヤー1(ファイル編集時)で照合される代表的なパターンを、噛み砕いて紹介します
専門用語が多めなので、それぞれ「要は何が問題なのか」をセットで書きます
eval() や new Function() :「文字列を実行コードにしてしまう」系
JavaScript の eval() や new Function() は、文字列をそのままプログラムとして実行する関数です
つまり、外部から渡された文字列がうっかり混ざると、悪意のあるコードがそのまま動いてしまう恐れがあります
child_process.exec() や os.system() :「コマンドをそのまま投げる」系
Node.js の child_process.exec() や Python の os.system() は、シェル(=Windowsで言うコマンドプロンプト的なもの)に命令文を渡す関数です
ユーザーが入力した値をそのまま結合してしまうと、想定外のコマンドが任意に実行される事態になります、いわゆるコマンドインジェクションです
dangerouslySetInnerHTML や innerHTML :「画面表示がそのまま乗っ取られる」系
React の dangerouslySetInnerHTML や、素の JavaScript の .innerHTML = は、HTML を直接埋め込む書き方です
ここに ユーザーが入力した文字列をそのまま入れると、スクリプトタグごと埋め込めてしまう=いわゆる XSS(クロスサイトスクリプティング)の温床になります
pickle :「保存したデータを読むだけのつもりが、コードまで動く」系
Python の pickle は、データを丸ごとファイルに保存して、後で読み戻すための仕組みです
便利な反面、信頼できないファイルを pickle で読み込むと、読み込み処理の中で任意のコードが実行される設計になっています、外部から受け取ったファイルを pickle で開くのは原則として避けるのがおすすめです
.github/workflows/ 配下の編集 :「GitHub Actions の権限を握る」系
GitHub Actions の設定ファイル(.github/workflows/ 配下の YAML)は、ビルドやデプロイの自動化を定義する場所です
ここを書き換えられると リポジトリ単位の権限を握られることになるので、Claude が触ろうとしたら一律で注意喚起されます
ほかにも document.write などの古い書き方をはじめ、いくつかの代表的な落とし穴に反応するようになっています
レイヤー1のパターン照合は「同じファイルで同じパターンが連発したら1回だけ警告」する設計になっているので、同じ警告が会話を埋め尽くす心配はありません、ただしパターンに無い未知の脆弱性は素通りするので、これだけに頼り切らないのが大事です
導入方法 Desktop ユーザーの最短ルート
Claude Code Desktop での導入は、3ステップで終わるかんたんさです
チャット欄の左下にある「+」メニューを開いて 「プラグイン」 を選ぶと、右側にサブメニューが開きます、その中の 「+ プラグインを追加」 から、security-guidanceを検索→選択→インストール画面へ
クリックするとインストールが走ります、スコープを聞かれたら user スコープを選ぶと、この PC で立ち上げる全セッションで自動的に効くようになります
インストール直後から効きはじめます、念のため Claude Code Desktop を再起動すると確実に有効化された状態で使えます
Desktop の「プラグイン」サブメニューは シンプルな作りで、上にインストール済みプラグインが並び、下に 「プラグインを管理」(歯車アイコン)と 「+ プラグインを追加」のボタンがあるレイアウトです、迷う要素はあまりないので、追加のボタンから順に進めば security-guidance が一覧に並びます
UI の細かいボタン名や配置はバージョンで変わることがあるので、実機の画面表示を優先してくださいね、Desktop 版の「プラグイン」サブメニューは インストール済み一覧+「プラグインを管理」+「+ プラグインを追加」というシンプルな構成、と理解しておけば大丈夫です

使ってみるとどう動く? 実際の見え方
導入直後は、基本的に 普段どおりに Claude を使うだけでかまいません
「コードを書いて」「ここを直して」とお願いしている裏で、上で説明した3層レビューが勝手に走っている感じです
レビューで何か見つかった時の会話の流れ
たとえば Claude が JavaScript で eval() を含むコードを書いたとします
すると次のターンの冒頭で Claude が 「security-guidance から指摘が来ました、eval は危ないのでこちらの書き方に直しますね」のような前置きと一緒に、安全な実装に書き換えてくれます
こちらが「セキュリティチェックして」と頼まなくても、コードに変更があった時点でレビューが走るのがこのプラグインの一番の旨味です
プロジェクト固有のルールも足せる
「うちのアプリでは admin ルートには原則として権限チェックを入れたい」みたいな プロジェクト固有のルールも、追加で食わせられます
プロジェクト直下に .claude/claude-security-guidance.md という Markdown を置き、普段の日本語で「これは NG」「ここは原則として通す」と書いておけば、レビュー時に追加のお作法として参照してくれます
そのほか、決まった文字列(例:本番用 API キーの先頭文字列)を機械的に検出したいときは .claude/security-patterns.yaml に独自の正規表現を書く手もあります
※ チーム共有はしたくない自分だけのローカルルールを足したいときは .claude/claude-security-guidance.local.md という別ファイル名を使います、こちらは gitignore 対象なので、リポジトリには上がらず自分の手元だけで効きます
ファイル形式の細かい仕様(YAML スキーマ・JSON 形式での代替・User / Project / Project local の3階層での探索順など)は Anthropic 公式ドキュメントのAdd your own rulesセクションに一次情報がまとまっているので、独自ルールを本気で書き込むときはそちらが正本になります
他の安全対策と組み合わせる プラグイン以外の打ち手
security-guidance は強力ですが、これ単体で Claude Code のセキュリティが完成する訳ではありません
あくまで「書いた瞬間に一次レビューを挟む」というレイヤーなので、それと並行して整えておきたい安全策を横並びで紹介します
settings.json の deny リストで「触らせない」枠を作る
Claude Code には settings.json という設定ファイルがあり、ここに「触ったらアウトのファイル」を列挙できます
具体的には permissions.deny セクションで、見られたくない・書き換えてほしくないパスを指定する形です
最低限デフォルトで入れておきたいのは次のあたりです
- .env 系(APIキー・パスワードがよく入っているファイル)
- .pem .key(SSL 証明書・秘密鍵)
- id_rsa(SSH の秘密鍵)
- credentials.json(各種クラウドサービスの認証情報)
イメージとしては次のような書き方になります
{
"permissions": {
"deny": [
"Read(./**/.env)",
"Read(./**/*.pem)",
"Read(./**/*.key)",
"Read(./**/id_rsa)",
"Read(./**/credentials.json)"
]
}
}これにより、security-guidance が 「書いた後」にレビューするのに対し、deny リストは 「そもそも触らせない」側のガードを担当します、役割が違うのでセットで使うと安心感が増します
「自動モード」と「許可をバイパス」は別物
Claude Code Desktop の挙動モードでよく混同されるのが、「自動モード」と「許可をバイパス」の2つです
名前が似ていて紛らわしいですが、中身はまるで違います
| モード | 何をするか | 使いどころ |
|---|---|---|
| 自動モード | deny リストや事前許可を守りつつ、操作を自動で進めるモード | 普段使い向け、安全寄りの自動進行 |
| 許可をバイパス | 権限確認をすべてすっ飛ばすモード(設定画面の「バイパス権限モードを許可」トグルで有効化) | 一時的な検証用、本番作業には不向き |
「自動モード」と「許可をバイパス」を混同しないのは本当に大事です、自動モードは deny を守ってくれる安全な推奨モード、許可をバイパスは そのガードを外す危険寄りの設定です、名前が似ているからといって同じ気分で切り替えると、意図せず deny が無効になりかねません
respectGitignore で .gitignore のファイルを除外する
地味に効くのが respectGitignore: true という公式オプションです
これを settings.json に入れておくと、プロジェクトの .gitignore に書かれているファイルが、そのまま Claude のファイル選択画面からも除外されます
.gitignore は 「Git に管理してほしくない=GitHub にもアップしないでほしい」リストで、もともと .env や ビルド成果物などが入っていることが多いので、それがそのまま Claude の対象外になるのはありがたい挙動です
余談ですが、ネットで時々見かける .claudeignore という除外ファイルは、2026年5月時点で公式機能には含まれていません、除外設定は settings.json の deny か respectGitignore に一本化するのが安全です
MCP サーバーを入れる時の確認ポイント
もう1つ、忘れずに整えておきたいのが MCP 関連の確認です
MCP(Model Context Protocol)は、Claude に外部ツールやデータベースを使わせるための仕組みですが、MCP サーバーやプラグインはあなたの権限で任意のコードを実行できる高信頼コンポーネントです
つまり、出どころが怪しい MCP サーバーを入れるのは、得体のしれないソフトをインストールするのと変わりません
- 公式・有名なソース(Anthropic・大手 OSS プロジェクト)からのみ入れる
- 説明文だけで判断せず、READMEやコードに目を通す
- 必要が無くなった MCP サーバーは早めに無効化する
security-guidance 自体は Anthropic 公式なので信頼性の面で気にする必要はありませんが、「プラグインや MCP は全部安心」と勘違いしないのが大事です
このあたりの基本設計はClaude Code 設定ファイル早見表で全体像を整理しているので、深掘りしたい方はそちらもどうぞ

期待しすぎないこと プラグインの限界
ここまで読むと「もう security-guidance を入れておけば安心」と思いたくなりますが、過信は禁物です
正直に言うと、このプラグインは 「コードを書く瞬間によくあるパターンを止める」レイヤーであって、セキュリティ対策のすべてを引き受けてくれる訳ではありません
設計や仕様レベルの脆弱性は別途レビューが要る
例えば「そもそも認証フローがおかしい」「権限の設計が甘い」みたいな話は、文字列マッチでは見つかりません
ターン終了時やコミット時のレビューでは多少ひっかかる可能性はあるものの、設計や仕様レベルの問題は人間のコードレビューや設計レビューで拾うのが原則です
依存ライブラリの脆弱性は対象外
あなたが書いたコード自体は問題なくても、使っているライブラリに脆弱性があったというケースは多々あります
これは security-guidance のスコープ外で、別途 npm audit や Dependabot のような 依存関係チェックの仕組みを並走させるのが現実的です
レビュワーAIも見落とす
レイヤー2・3で動くレビュー側の Claude も、人間と同じく見落とすことがあります
「プラグインが何も言わないから安全」は思考停止のサインです、最終的にはコードを読む(=人間がレビューする)習慣も並行して持っておくのが望ましいです
Anthropic も公式ドキュメントで「このプラグインは多層防御の一層であって、完結したセキュリティソリューションではない」と明記しています、ガード(門番)ではなくレビュワー(同僚)、というスタンスを忘れずに付き合うのがちょうど良いです
内部にある上限とモデル設定も知っておく
もう少し細かい話として、レビューには 上限が設けられています、知っておくと「あれ動いてない?」となったときに切り分けやすいです
- ターン終了時のレビューは 1ターン最大30ファイルまで、しかも連続3回までで一旦止まります
- コミット時のレビューは 1時間に20回まで、それを超えると一時的に走らなくなります
大量変更や連続 commit を続けると、全部はカバーしきれないというのを頭の片隅に置いておくと安全です
※ レビューに使われるモデルは Claude Opus 4.7 が初期設定です、別のモデルに切り替えたいときは SECURITY_REVIEW_MODEL(ターン終了時のレビュー用)と SG_AGENTIC_MODEL(コミット時のレビュー用)という環境変数で指定できます、軽いモデルにしてコストを抑える、といった調整に使えます
初心者向けおすすめ運用フロー
「結局、何からやればいいの?」という方向けに、最初に押さえるステップを順に並べておきます
無料・全プラン対応・追加コストもなしなので、迷う理由はほぼありません、入れた状態で普段どおり使ってみて、レビュー指摘がどんな粒度で来るかを体感します
.env / .pem / .key / id_rsa / credentials.json あたりを deny に登録します、「そもそも触らせない」枠は強力で、プラグインの後ろ盾としても効きます
普段使いは 自動モード で進めるのがおすすめです、deny を守りつつ自動で進んでくれるので、安全と効率のバランスが取れます、「許可をバイパス」とは別物なので混同しないように
慣れてきたら .claude/claude-security-guidance.md にプロジェクト固有のお作法を書き足します、「ここはこういう書き方で」「ここは触らない」というローカルルールを Claude にも共有できます
このあたりまで整えると、security-guidance を含めた多層の守りがだいぶ立体的になります
よくある質問(FAQ)
security-guidance を入れると毎回お金がかかる?
レイヤー1のパターン照合はモデル呼び出しなしなので追加コストは発生しません、レイヤー2・3のレビューはモデル呼び出しがあるので、普段の Claude 利用と同じ枠で消費します、ただし極端に増える設計ではなく、上限も設けられているので過剰な心配は不要です
途中で外したくなったらどうすればいい?
Desktop の「+ → プラグイン」サブメニューから 「プラグインを管理」(歯車アイコン)を開くと、インストール済みプラグインの一覧で security-guidance の無効化や削除ができます、具体的なボタン名は実機の表示に従ってくださいね、一時的に止めたいだけなら無効化、完全に外したい時は削除側を選ぶ、というシンプルな考え方で大丈夫です
Cocoon → SWELL のような WordPress テーマ移行作業でも役立つ?
このプラグインの主戦場は コードファイルの編集なので、テーマカスタマイズで PHP や JavaScript を触る場面でも普通に効きます、特に WordPress 系は eval や任意関数呼び出しに似た書き方が出やすいので、入れておくと地味に効く場面はあります
プラグインが見落とす脆弱性はある?
あります、というよりむしろ「見落とすこと前提」で運用する方が健全です、設計レベルの脆弱性・依存ライブラリの脆弱性・パターンに無い未知の攻撃手法などは対象外なので、コードレビューや依存関係チェックと組み合わせるのがおすすめです
一部のレイヤーだけ止めたいんだけど
環境変数で個別に止められます、レイヤー1(ファイル編集時)を止めるなら ENABLE_PATTERN_RULES=0、レイヤー2(ターン終了時)なら ENABLE_STOP_REVIEW=0、レイヤー3(コミット時)なら ENABLE_COMMIT_REVIEW=0 です、モデルベースのレビュー2つ(レイヤー2と3)を一気に止めたいときは ENABLE_CODE_SECURITY_REVIEW=0 でまとめてOFFにできます、プラグイン本体を一時停止したいだけなら SECURITY_GUIDANCE_DISABLE=1 という別の変数もあります
まとめ プラグイン1つで完結はしないけど、入れる価値は十分
security-guidance は、Claude にコードを書かせるなら入れない理由がほぼ無いくらいに気軽に導入できる公式プラグインです
大事なポイントをおさらいします
- Anthropic 公式・無料・全プラン対応、入れない理由はほぼ無い
- 3層レビュー(編集時・ターン終了時・コミット時)で多角的にチェック
- eval / 外部コマンド / XSS / pickle / GitHub Actions など典型的な落とし穴を拾う
- 書き込みを止める訳ではない、Claude にレビュー結果を渡して直してもらう設計
- deny リスト・自動モード・respectGitignore と組み合わせて多層防御に
- 設計・依存ライブラリ・未知の脆弱性は対象外なので過信しない
個人的には、「ちゃんと整えれば、Claude にコードを任せても怖くないラインまで来た」と感じます
Claude Code の安全策を一通り整理したい方はClaude Code Desktop 初心者向けセキュリティ5選、プラグインまわりの土台が気になる方はClaude Code 拡張機構入門、設定ファイルの全体像はClaude Code 設定ファイル早見表もどうぞ
security-guidance を入れたうえで、deny を整えて、自動モードで使う、この3点を押さえておくと、Claude Code との付き合い方がぐっと安心側に寄ります



コメント