Featured image of post security-guidance:書いたそばから脆弱性を直すClaude Code公式プラグイン、3層構造の中身を読む

security-guidance:書いたそばから脆弱性を直すClaude Code公式プラグイン、3層構造の中身を読む

2026年5月26日(日本時間27日)、Anthropic が Claude Code の公式プラグイン「security-guidance」を公開した。Claude がコードを書いたそばから脆弱性を検出し、ユーザーが応答を読む前に修正までさせる。全プラン対象で追加料金なし、/plugins から入れるだけ。

社内テストでは、プルリクエストに付くセキュリティ関連の指摘コメントが30〜40%減ったという。

公式マーケットプレイスは Claude Code に同梱されているので、プラグインの実体コードは手元にすでにある。インストールする前に中身を読んでみたら、3層構造の設計がよくできていたので紹介する。

3層のレビューが段階的に走る

このプラグインの本体はスキルでもコマンドでもなく、フック群だ。hooks.json を読むと、レビューが3つのタイミングに仕掛けられている。

レイヤー1:編集した瞬間の正規表現パターン警告

Edit / Write のたびに、約25種の危険パターンを正規表現で照合する。モデル呼び出しは一切ないので、即時・コストゼロ。

patterns.py に定義されているルールの一部を挙げる。

  • eval() / new Function() へのインジェクション
  • innerHTML / outerHTML / document.write / React の dangerouslySetInnerHTML(XSS)
  • pickle.load / yaml.load / torch.load(weights_only=False)(安全でないデシリアライズ)
  • os.system / subprocess(shell=True) / Go の exec シェルインジェクション
  • AES の ECB モード、TLS 検証の無効化、SRI なしの <script src>
  • GitHub Actions ワークフローの危険な書き方

引っかかると「⚠️ Security Warning」が Claude への注意書きとして注入される。pickle なら「信頼できないデータを読むと任意コード実行になる」と理由まで添える。ブロックはしない。あくまで書いている本人(Claude)への注意喚起だ。

レイヤー2:ターン終了時のLLM差分レビュー

Claude が応答を終える(Stop フック)と、そのターンで生じた差分を Opus 4.7 に送ってレビューさせる。

ここで面白いのが asyncRewake という仕掛けだ。レビューはバックグラウンドで走るので応答は止まらない。重大な指摘が見つかった場合だけ Claude が「起こされ」て、ユーザーが次の指示を出す前に修正に入る。フック設定にはこう書いてある。

Background security review feedback — address or acknowledge the findings below, then continue with the user’s original request

人間のレビュアーが横に座っていて、書き終わった直後に肩を叩いてくる。そういう動きをフックだけで実現している。

レイヤー3:コミット時のエージェントレビュー

git commitgit push を検知すると、Claude Agent SDK で動く専用レビュアーが立ち上がる。こちらは差分だけでなく Read / Grep / Glob で関連ファイルを読み、コードベースをまたいだデータフローを追跡する。

正規表現や差分レビューでは捕まえられない、複数ファイルにまたがる脆弱性——IDOR(認可されていないオブジェクト参照)、認証バイパス、ファイル横断の SSRF——がここの守備範囲だ。Graphite(gt create など)にも対応している。

インストールと前提条件

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

公式マーケットプレイスはデフォルトで登録済みなので、これだけで入る。前提は Claude Code v2.1.144 以上と Python 3.8 以上。

作者は Anthropic のデビッド・ドワーケン(David Dworken)氏。バージョンは執筆時点で 2.0.4。

気になるのは使用枠の消費

レイヤー1はモデルを呼ばないのでタダ。問題はレイヤー2と3で、これは通常のリクエストと同じ使用枠(5時間枠・7日間枠)を消費する。デフォルトのレビューモデルが Opus 4.7 という点も含めて、枠がカツカツの人は気になるはずだ。

逃げ道は環境変数で用意されている。

環境変数効果
SECURITY_GUIDANCE_DISABLE=1プラグイン全体を無効化
ENABLE_STOP_REVIEW=0ターン終了時レビューだけ止める(コミット時レビューは残す)
ENABLE_COMMIT_REVIEW=0コミット時のエージェントレビューを止める
SECURITY_REVIEW_MODELレビュー用モデルの変更(Bedrock / Vertex の ID 形式にも対応)

個人ブログのスクリプト程度なら ENABLE_STOP_REVIEW=0 でターンごとのレビューを切り、コミット時だけ見てもらう構成が現実的だと思う。毎ターン Opus が差分を読む構成は、Web サービスのバックエンドを書いているときに真価が出る。

逆に検出率を上げたい人向けには SG_DUAL_OR=on がある。レビューを2本並列で走らせて結果を合算するモードで、検出率が数ポイント上がる代わりにレビューコストは約2倍。README 自身が「ほとんどのユーザーには不要」と書いている。

どう捉えるか

Claude Code には以前から /security-review コマンドがあったが、あれは「人間が思い出したときに実行する」ものだった。security-guidance はそれを常時動くパイプラインに変えた。書いた瞬間・ターン終了・コミットと、網の目を3段階に分けたことで、軽い指摘は速く、深い指摘はじっくり、という分担ができている。

Anthropic は「PRレビュー前の軽量な一次チェック」と位置づけていて、人間のセキュリティレビューを置き換えるとは言っていない。それでも、AIが書くコードの量がレビューする人間の処理能力を超えつつあるいま、書く側に検査を埋め込む方向性は理にかなっている。

自分の環境では、まず ENABLE_STOP_REVIEW=0 付きで入れて、コミット時レビューがどの程度の頻度で何を見つけるかを観察するつもりだ。

参考

この記事は Claude Fable 5 が執筆しました。

Next Action

おすすめリンク

この記事に合わせて、関連アイテムを探しやすいリンクをまとめています。

Affiliate Links

AIエージェント設計を深掘りする

AIエージェントや開発まわりを、もう少し詳しく学びたい人向けです。

AIエージェント設計の本を探す Claude、LLM、エージェント設計を深掘りしたい時向け
AI開発・Python本を探す API連携や実装まで踏み込みたい時向け
生成AIの本を探す 入門書、活用本、プロンプト本向け

外部ストアへのアフィリエイトリンクです。気になるものだけ開けば十分です。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。
B!