はじめに
Claude Codeに任せると、修正、リファクタリング、テスト追加まで一気に進みます。便利な反面、業務で使うときに気になるのがセキュリティです。
- AIが書いたコードに、認可漏れはないか
- 危険なAPIをうっかり使っていないか
- レビュー前に最低限のチェックを自動で挟めないか
この問題に対して、Claude Codeには公式の Security Guidance Plugin があります。この記事では、対話形式でインストール手順、推奨スコープ、導入価値を整理します。
Claudeがコードを書く際にセキュリティ問題を検出する - Claude Code Docs
この記事は2026年5月時点の公式ドキュメントを元にしています。仕様や既定モデルは更新されることがあるため、導入前に公式ドキュメントの最新版を確認してください。
1. Security Guidance Pluginとは何か?
後輩
Claude Code、便利なんですけど、AIが書いたコードのセキュリティが少し不安で。
先輩
それなら公式のSecurity Guidance Pluginを入れるといい。Claude Codeがコードを書くたびに、別のClaudeがセキュリティ観点でレビューしてくれる。問題があれば、同じセッション内で修正まで促してくれる。
後輩
Claude Codeの中に「セキュリティ担当のもう一人のClaude」がいる感じですか?
先輩
かなり近い。Pull Requestに出す前の段階で、認可漏れ、IDOR、インジェクション、SSRF、弱い暗号、危険なAPI使用といった問題を拾いやすくなる。
2. 前提条件
先輩
前提はこのあたり。
| 必要なもの | 目安 |
|---|---|
| Claude Code CLI | 2.1.144以降 |
| Python | 3.8以降 |
| gitリポジトリ | end-of-turnレビューやcommitレビューで必要 |
確認はこれで十分。
claude --version
python3 --version
git status
初回起動時に、~/.claude/security/ 配下にPython仮想環境を作り、Claude Agent SDKをインストールします。pipの実行とネットワークアクセスが必要です。失敗すると、commitレビューはエージェント版ではなく単発レビューに自動でフォールバックします。
3. どのスコープで入れるべきか
後輩
インストールするスコープが選べるみたいですが、どれがおすすめですか?
先輩
結論から言うと、まずはuser scope(グローバル)で入れるのがおすすめ。理由はこの3つ。
- 1コマンドで全リポジトリに自動適用される
- per-editのパターンチェックはモデル呼び出しなしなので、常時有効でもデメリットが小さい
- 既存リポジトリの
.claude/settings.jsonを汚さないので、個人検証段階で気軽に試せる
後輩
業務でチームで使う場合は?
先輩
そのときはプロジェクト単位の設定も併用するのが現実的。こういう場面ではプロジェクト単位が向く。
| ケース | 理由 |
|---|---|
| チームで使う | 全員に同じレビュー基準を適用したい |
| Claude Code on the web を使う | user scopeはローカルマシンの設定なので、クラウドセッションには効かない |
| リポジトリ固有のガイダンスがある |
.claude/claude-security-guidance.md とセットで管理したい |
| 顧客案件 | AI利用ルールやレビュー基準を契約・社内規定と整合させたい |
後輩
両方有効にすると競合しませんか?
先輩
しない。user scopeで全リポジトリに常時適用しつつ、業務リポジトリではプロジェクト側で「明示宣言」として有効化する、というのが落としどころとして使いやすい。
4. インストール
先輩
まずはuser scopeで入れる。Claude Codeセッション内で実行する。
/plugin install security-guidance@claude-plugins-official
/reload-plugins
scopeを聞かれたら user を選ぶ。
チームやリポジトリ単位で有効化したいときは、.claude/settings.jsonをcommit対象に入れる。
{
"enabledPlugins": {
"security-guidance@claude-plugins-official": true
}
}
5. 何をチェックしてくれるのか?
後輩
具体的にどのタイミングでチェックされるんですか?
先輩
3段階ある。
| タイミング | 内容 | コスト |
|---|---|---|
| ファイル編集ごと | 危険なパターンを高速チェック | 追加なし |
| 1ターン終了時 | そのターンのgit diffを別Claudeがレビュー | モデル利用量 |
| Claudeがcommit/pushしたとき | 周辺コードまで読む深いレビュー | モデル利用量 |
ファイル編集ごとのチェック
文字列やパターンで危険な書き方を拾う。eval、innerHTML、pickle.loads、os.system など。GitHub Actionsのワークフローファイル(.github/workflows/配下)への編集もここで検知される。モデル呼び出しなしなので、追加コストはゼロ。
1ターン終了時のレビュー
Claudeが返答するたびに、そのターンで変更されたgit diffを別Claudeがレビューする。ここがこのプラグインの肝で、公式ドキュメントには「同じClaudeインスタンスが自分のコードを採点するわけではない」と明記されている。fresh contextとセキュリティ用プロンプトで動く別Claudeが、diffを起点にレビューする。
レビューはバックグラウンドで走るので返答は遅れない。findingsが出ると、再プロンプトされて修正してくれる。
end-of-turnレビューは1ターンあたり最大30ファイルまで、連続発火は3回まで。問題が解消しない場合はいったんユーザーに制御が戻ります。
commit/push時の深いレビュー
Claude CodeがBash tool経由でgit commitやgit pushを実行したとき、周辺コード、呼び出し元、サニタイズ処理まで読みにいく深いレビューが走る。
後輩
自分のターミナルから打ったcommitは?
先輩
対象外。セッション内の!シェルエスケープも対象外。Claude CodeがBash tool経由で実行したcommit/pushだけ。ローリング1時間あたり20回が上限。
6. 独自ルールを追加する
後輩
プロジェクト固有のルールも入れられますか?
先輩
.claude/claude-security-guidance.mdを作る。これはモデルベースのレビューで使われる追加ガイダンス。
# Security guidance for this repo
- 個人情報、認証情報、APIキー、tokenをログに出さない
- 管理画面、ユーザー情報、注文情報を扱うAPIでは認可チェックを確認する
- ユーザーIDや組織IDを指定する処理ではIDORを重点的に確認する
- 外部URLを取得する処理ではSSRF対策を確認する
- secretやAPIキーをコードに直書きしない
配置場所は3パターンある。
| スコープ | パス |
|---|---|
| ユーザー | ~/.claude/claude-security-guidance.md |
| プロジェクト | .claude/claude-security-guidance.md |
| プロジェクトローカル |
.claude/claude-security-guidance.local.md(個人用、gitignore想定) |
複数あれば連結して読み込まれる。合計8KBまで。
per-editのパターンチェックを拡張したい場合は、.claude/security-patterns.jsonを置く。
{
"patterns": [
{
"rule_name": "hardcoded_secret_prefix",
"substrings": ["sk_live_", "AKIA"],
"reminder": "APIキーらしき文字列があります。シークレット管理に移してください。"
}
]
}
YAMLでも書けるが、PyYAMLが必要になる。詰まりにくいのはJSON。
後輩
このルールに違反したら、書き込みやcommitがブロックされますか?
先輩
されない。これは強制ルールではなく、レビュー時の追加ガイダンス。本当に止めたいなら、Claude Codeの hooks か CI 側で別途ブロックを入れる必要がある。
7. 注意点
先輩
入れれば安全になる、と思わないほうがいい。公式ドキュメントでも、defense in depthの一層という位置付け。
| 注意点 | 内容 |
|---|---|
| 書き込みやcommitをブロックしない | あくまでレビューと修正支援 |
| 見逃しはあり得る | AIレビューなので完全ではない |
| CIの代替ではない | 静的解析や依存関係スキャンは別途必要 |
| モデルレビュー部分は使用量が増える | per-editは無料、それ以外はカウントされる |
既定では Claude Opus 4.7 が使われる。切り替えは環境変数 SECURITY_REVIEW_MODEL(end-of-turn)と SG_AGENTIC_MODEL(commit)。
レイヤー単位で止めたいときは、ENABLE_PATTERN_RULES=0、ENABLE_STOP_REVIEW=0、ENABLE_COMMIT_REVIEW=0 で個別に無効化できる。全部止めるなら SECURITY_GUIDANCE_DISABLE=1。
アンインストールはこちら。
/plugin uninstall security-guidance@claude-plugins-official
8. まとめ
Claude Codeの開発スピードが上がるほど、問題が混ざるスピードも上がる。Security Guidance Pluginは、そのスピードに合わせてセキュリティチェックも前倒しする仕組みです。
位置付けはこんな感じ。
| 段階 | 役割 |
|---|---|
| Claude Code作業中 | Security Guidance Pluginで早期チェック |
| 必要なタイミング |
/security-reviewで追加レビュー |
| Pull Request | Code Reviewや人間レビュー |
| CI | 静的解析、依存関係スキャン、テスト |
おすすめの導入手順はこの2ステップです。
- user scopeで入れる:マシン全体で自動有効になる
-
業務リポジトリだけプロジェクト単位の設定を追加:
.claude/settings.jsonで明示宣言 +.claude/claude-security-guidance.mdでプロジェクト固有ルール
社内Web、管理画面、認証、個人情報、外部API、決済、マルチテナント構成を扱うプロジェクトでは特に導入価値が高いです。最初の一歩としてuser scopeで入れて、よく使うリポジトリに.claude/claude-security-guidance.mdを1枚置くところから始めるのが現実的だと思います。
