Claude Codeで量産したコードの穴を、コミット前にAIが3層で塞ぐ

AI活用

コードを書いてくれる相手が賢くなるほど、逆に怖くなることがある。

自分は副業で10年以上エンジニアをしながらAIを使った開発システムを運用しているが、Claude Codeでコードを量産していると「このコード、本当に安全か」という不安が頭をよぎる瞬間がある。生成されたコードを一行ずつ手動でチェックするのは現実的ではないが、AI任せで本番に流すのも怖い。Anthropicが2026年5月26日に公開したClaude Code向けプラグイン「security-guidance」は、そのジレンマを一段階解消してくれる仕組みだ。

フリーランス・副業エンジニアにとってのセキュリティリスク

まず前提として、なぜAIを使った開発においてセキュリティが特に問題になるのかを整理したい。

AIを使うと、一人のエンジニアが書けるコードの量が飛躍的に増える。これはメリットだが、副作用もある。コードの量が増えると、それだけ手動チェックが追いつかない部分が生まれる。レビューの密度が下がり、見落としが増える構造になるのだ。

フリーランスや副業で受託開発をしている場合、セキュリティの問題は直接的なリスクになる。クライアントに納品したコードに脆弱性が見つかれば、信用の問題になる。最悪のケースでは情報漏えい事故につながり、損害賠償リスクが生じる場合もある。「AIを使って効率的に作りました」が「セキュリティチェックが甘くなりました」と同義になってしまうのが、現在の副業エンジニアの盲点の一つだ。

security-guidanceは、AIが書いたコードをAIが自動でチェックする仕組みで、そのギャップを縮めることを目指している。

security-guidanceとは何か

security-guidanceはClaude Code向けのセキュリティ支援プラグインだ。Claude Codeがコードを書いている最中に、一般的な脆弱性や危険な実装パターンを検出し、同じセッション内で修正を促す。すべてのClaude Codeユーザーが利用でき、公式プラグインマーケットプレイス(/pluginsコマンドから)でインストールできる。

ソースはGitHub上の anthropics/claude-plugins-official リポジトリの plugins/security-guidance ディレクトリで公開されている。動作には以下が必要だ。

  • Claude Code CLI v2.1.144以降
  • Python 3.8以降
  • Gitリポジトリ環境(Git環境外ではパターン警告のみが動作)

Windows環境ではclaude-agent-sdkのインストール状況によって動作が変わる点(後述)も確認しておきたい。

3つのタイミングで動くチェック設計

このプラグインの核心は、3つの独立したタイミングで動くチェック層にある。それぞれ担う役割が異なり、漏れを補い合う設計になっている。

層1:ファイル編集時のパターン警告

ファイルを作成・編集した直後、正規表現ベースで既知の危険パターンを即座に警告する。追加コストなしで動く最初のチェックがここだ。

検出対象は具体的で広い。

  • Node.js: child_process.execevalnew Function
  • React: dangerouslySetInnerHTML.innerHTMLdocument.write(XSSにつながるDOM操作)
  • Python: pickleyaml.loadtorch.loados.system
  • その他: TLS検証の無効化、暗号化での危険なモードやAPI
  • GitHub Actions: ワークフローのコマンドインジェクション

AIが生成するコードに混入しやすいものを優先して対象にしている印象だ。たとえばPythonで外部データを処理する際、Claude Codeがpickleを使ったデシリアライズを書くことがある。これは既知の危険パターンだが機能的には正しく動くため、手動チェックでは見落としやすい。「動くけど危ない」コードを編集直後に止める設計になっている。

層2:ターン終了時の差分レビュー

Claudeが加えた変更の差分をモデルに渡し、セキュリティ観点でレビューする。重大度が高い指摘があれば、Claudeへ自動で再指示が送られ、ユーザーへの応答の後に続くフォローアップとして修正対応が始まる。

「AIが自分の変更を自分でセキュリティレビューする」という構造だ。変更されたファイルパスや差分、関連するファイルの内容がモデルに送信される。この層は通常のClaudeリクエストと同じ使用量として扱われる。ポイントは、問題を検出した場合に修正対応が自動で始まる点だ。ユーザーが「これを直してください」と指示しなくても、フォローアップとして修正が走る。

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

git commit時に関連ファイルを読み込み、データフローを追って複数ファイルにまたがる脆弱性を探す。

入口(エントリーポイント)と危険な処理の組み合わせを確認する設計になっている。入口として見るのは、HTTPハンドラー、Webhook、ファイルアップロード、CLI引数、GitHub Actions入力など。そこから先の処理として確認するのは、shell実行、SQL、ファイルパス、外部HTTP、HTML描画、デシリアライズ、権限チェックなどだ。

単なるパターンマッチではなく「どこから入ってどこで危険なことが起きるか」という経路を追う。入力から危険な処理へ至る経路、認可や権限境界、CI/CD設定、秘密情報の露出などが確認対象となる。Windows環境でclaude-agent-sdkがインストールされていない場合、コミット時のレビューはエージェント型からシングルショットに変わる。機能は一部落ちるが動作自体は継続する。

何を検出してくれるか

検出対象として公式が明示しているものを整理する。括弧内に一言で概要を添えた。

脆弱性 概要
インジェクション SQLやコマンドを外部から注入される攻撃
XSS Webページに悪意あるスクリプトを埋め込む攻撃
SSRF サーバーを踏み台にして内部リソースにアクセスさせる攻撃
ハードコードされたシークレット APIキーやパスワードをコードに直書きした状態
IDOR 認可チェックをすり抜けて他人のデータにアクセスできる状態
認可バイパス 権限チェックを回避する問題全般
安全でないデシリアライズ データを復元する処理を悪用した攻撃
パストラバーサル ディレクトリをさかのぼって権限外のファイルを読む攻撃

セキュリティ全般を網羅するというより、「Claudeがコードを書く過程で入り込みやすいアプリケーションセキュリティとWeb脆弱性」に絞られた設計だ。AIが生成するコードの特性上、この表に挙げたカテゴリは特に混入しやすい。

AIコードレビューを実際に回すと何が起きるか

自分も以前、Claudeを使ったコードレビューを開発プロセスに組み込んでいたことがある。バリデーション処理の構造検証漏れや、エラー処理が一部不完全になっているパターンを複数件検出した。自分で書いたコードではなく、AIが生成したコードを別のAIに見てもらう形だったが、それでも問題が出た。

気づいたのは、AIは「頼まれた処理を実装する」ことには長けているが、「頼まれていないセキュリティ制約を考慮する」ことは後回しになりやすい、ということだ。XSSを防ぐバリデーションや外部入力のサニタイズを指示に含めなければ、省略されることがある。正規表現ベースの一次チェックと、変更のたびに走るセキュリティレビューを組み合わせることで、その省略を拾いやすくなる。

「軽量なファーストパス」という位置づけ

公式ドキュメントはこのプラグインを「防御層の一部として使うもの」と明確に説明している。本格的なコードレビューや、CI上の静的解析・依存関係スキャン、プルリクエスト時のコードレビューを置き換えるものではない。

Anthropicの発表によると、同社内でこのプラグインを広範囲に利用した結果、プルリクエストのセキュリティ関連コメントが30〜40%減少したという。「本格的なレビューに入る前に拾える問題を減らす」という目的では、実用的な効果が出ている。

フリーランスや副業で継続的に開発している場合、コミット前にセキュリティチェックが自動で入るのは、クライアントへの品質保証として機能する可能性がある。「AIを使って開発しています」と伝えると品質を心配されるケースがある。そこで「コミット前にセキュリティチェックが自動で走る仕組みを組んでいます」と言えるのは、信頼性のアピールになる。効率化と品質担保を両立している印象を作れる。

プロジェクト固有のルールを追加する

claude-security-guidance.(ファイル名末尾のドットに注意)というファイルに、脅威モデルやレビュー観点を自然言語で記述すると、プラグインのモデルレビューに組み込まれる。

「このエンドポイントは外部公開しているためXSSに特に注意する」「このモジュールには認証情報を絶対に含めない」「外部ユーザーからのファイルアップロードはすべて検証が必要」といった内容を自然言語で書けばいい。ユーザー単位やプロジェクト単位での設定も可能だ。

プロジェクトごとに異なるセキュリティ要件を、コードに直接埋め込まずに管理できる点は実用的だ。特に複数のクライアント向けに開発している場合、プロジェクトごとのルールファイルを持つことで、チェックの内容をカスタマイズできる。

ただし、このファイルの内容はレビュー時のプロンプトにも追加されるため、APIキーや認証情報を書き込まないよう注意が必要だ。ルールを書くファイルに機密情報を入れると、それ自体がリスクになる。

コストの実態

3層のうち、ファイル編集時のパターンチェックは追加コストなし。ターン終了時の差分レビューとコミット時のエージェント型レビューは、通常のClaudeリクエストと同じ使用量として扱われる。

コミット時のレビューではデータフローを追うために読み込んだファイルも送信対象になるため、大規模なコミットほどコストが増える可能性がある。Claude Codeを日常的に使っている場合、プラグインを入れた直後に数日分の使用量を管理画面で確認してから、本格的に組み込むかどうか判断するのが現実的だと思う。

まとめ

security-guidanceは「AIが書いたコードをAIが多層でチェックする」プラグインだ。ファイル編集時の正規表現ベース警告・ターン終了時の差分レビュー・コミット時のデータフロー解析、という3層設計でコミット前に脆弱性を潰す仕組みになっている。本格的なセキュリティ審査の代替ではないが、AI量産コードのファーストパスとして実用性はある。プロジェクト固有のルールも追加できるため、受託開発や副業案件の品質ラインを一段上げるための選択肢として検討する価値がある。

参考

【PR】フリーランスエンジニアにおすすめのツール

XServerショップ — クラウドサービスやドメイン、サーバー関連を一括で揃えられるストア。フリーランスの環境構築から保守まで幅広く対応している。

Surfshark Antivirus — セキュリティ意識が高いエンジニアに選ばれているウイルス対策ソフト。複数デバイスを同一プランで守れる。

Python Winner — Pythonの実践スキルを効率的に習得できる学習プラットフォーム。副業・フリーランスに必要なスキルを最短で身につけられる。

最新のAI開発情報はXでも発信しています。セレネのX (@selene_nyx_ai)


【PR】おすすめの書籍

記事の内容に関連する書籍を紹介させてほしい。

サイバー捜査・デジタルフォレンジック実務ハンドブック

サイバー捜査やデジタルフォレンジックの実務知識をまとめたハンドブックで、セキュリティインシデントへの対応を体系的に学べます。

セキュリティエンジニアの教科書

セキュリティエンジニアとして必要な知識・技術を網羅した教科書で、フリーランスや副業エンジニアがセキュリティの基礎を固める入口になります。

コメント

タイトルとURLをコピーしました