Claude Code で PR のセキュリティをレビューする/check-securityスラッシュコマンド実践ガイド
【免费下载链接】claude-howtoA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-howto
/check-securityは、Claude Code の PR Review プラグイン(pr-review)に同梱される、コード変更をセキュリティ観点に特化して解析するスラッシュコマンドです。認証・認可、データ漏洩、インジェクション脆弱性、暗号処理の弱点、ログ中の機微情報という 5 つの検査観点を、補完的な PR レビュー(/review-pr)に委ねることなく単独で実行できます。本記事では、日本語版リポジトリの check-security.md を骨格に、同プラグインの README・サブエージェント定義・MCP 設定・フック実装などのソースを横断し、コマンドの意味・仕組み・導入から運用までを解説します。読み終えると、セキュリティレビューを Claude Code のプラグイン機構に組み込んで毎回の変更差分に対して機械的かつ一貫して実施する方法を身に付けられます。
/check-securityとは:セキュリティ特化レビューコマンド
/check-securityは、ja/07-plugins/pr-review/commands/check-security.md の Front Matter(YAML)で次のように宣言されているスラッシュコマンドです。
--- name: Security Check description: セキュリティに特化したコードレビューを実行する ---nameがコマンドの表示名、descriptionが Claude Code がこのコマンドを解釈・呼び出す際に参照する「このコマンドが何をするか」の定義です。日本語版ドキュメントでは「コード変更に対してセキュリティ観点の解析を実施する」ことが役割として明記されており、通常の機能・スタイル・テスト観点を対象にする/review-prや/check-testsとは異なり、セキュリティに検査範囲を絞り込んだ単機能コマンドとして設計されています。
検査対象となる 5 つのセキュリティ観点
原ドキュメントが定義する検査スコープは次の 5 項目です。
- 認証 / 認可のチェック
- データ漏洩リスク
- インジェクション脆弱性
- 暗号処理の弱点
- ログに含まれる機微情報
この 5 項目は、同じプラグインに同梱されるセキュリティ専門サブエージェント security-reviewer.md が持つ責務リストとも対応しています。同エージェントは「認証 / 認可の問題」「データ漏洩」「インジェクション攻撃」「安全な設定」の検出を専門とし、tools: Read, Grep, Bashという定義から、コードベースの読み取り・パターン検索・コマンド実行によって脆弱性を追跡する構成になっています。/check-securityはこのエージェントの専門分野をそのままスラッシュコマンドの実行スコープへ持ち上げたものと捉えられます。
各検査観点が意味するレビューポイント
原ドキュメントは検査項目を列挙するにとどまっているため、実際に Claude Code へ依頼する際の粒度を想定した確認観点を、各項目ごとに整理します。以下の内容はコマンドに付随するサブエージェント定義(認証・データ漏洩・インジェクション・安全な設定)と整合するよう解釈・補足したものであり、プロジェクト固有のルールに応じてカスタマイズして利用できます。
1. 認証 / 認可のチェック
コード変更がエンドポイントや操作に対して認証を正しく要求しているか、認可(ロール・権限・所有者の照合)が漏れていないかを確認します。具体的には次のような観点です。
- 新規追加された API・画面・操作に認証ガードが存在するか
- 認可判定が「クライアントから渡された値」ではなくサーバー側のセッションや権限情報に基づいているか
- IDOR(他人のリソース ID を指定すれば他人のデータへ到達できる)パターンが追加されていないか
- 管理機能や特権操作にロールチェックが入っているか
2. データ漏洩リスク
機密データが意図しない経路で外部へ流出する変更がないかを検査します。
- 個人情報・認証情報・内部情報を返却するレスポンスが過剰なフィールドを含んでいないか
- 新しい API がモデル全体をそのまま返していないか(過剰露出・mass assignment)
- サードパーティ API・外部サービスへの送信に不要なデータが混入していないか
- フロントエンドへ渡すデータに内部 ID・トークンが含まれていないか
3. インジェクション脆弱性
SQL・OS コマンド・コード評価・テンプレート等への不正な入力を通じた攻撃経路が追加されていないかを検査します。
- 文字列連結による SQL 組み立てが追加されていないか(プリペアドステートメント / パラメータ化の確認)
- ユーザー入力が
eval・exec・動的ロード等へ到達しないか - シェル呼び出しで入力をエスケープしているか
- HTML・テンプレート出力側でクロスサイトスクリプティング(XSS)の経路がないか
4. 暗号処理の弱点
パスワード・トークン・機密データを扱うコードに暗号上の問題がないかを検査します。
- パスワードが平文保存されていないか、ハッシュ化アルゴリズムが十分に安全か
- 独自実装の暗号・乱数が導入されていないか(標準ライブラリ / 検証済みアルゴリズムの利用)
- TLS 接続が強制されているか、証明書検証が無効化されていないか
- 秘密鍵やシード値がコード中や設定にハードコードされていないか
5. ログに含まれる機微情報
ログ出力の追加・変更に伴って機微情報が記録されていないかを検査します。
- パスワード・トークン・API キー・Cookie・個人情報がログに出力されていないか
- エラーログがスタックトレースごと秘密情報を含んでいないか
- クエリ文字列やリクエストボディ全体をログに残していないか
- マスク処理・トランケーションの有無
プラグインの中での位置づけ:どのようにセキュリティレビューが実行されるか
/check-securityは単独のファイルとして存在するのではなく、PR Review プラグインの実行環境に組み込まれて動作します。日本語版 pr-review/README.md を参照すると、このプラグインは次の 4 つの構成要素を持ちます。
| 構成要素 | 内容 | 対応ファイル |
|---|---|---|
| スラッシュコマンド | /review-pr(包括レビュー)、/check-security(セキュリティ特化)、/check-tests(テストカバレッジ解析) | commands/ |
| サブエージェント | security-reviewer(脆弱性検出)、test-checker(カバレッジ解析)、performance-analyzer(性能影響評価) | agents/ |
| MCP サーバー | PR データ取得のための GitHub 連携 | github-config.json |
| フック | pre-review.js— レビュー前の前提検証 | pre-review.js |
セキュリティレビューの文脈では、/check-securityを実行した際にsecurity-reviewerサブエージェントが実際の脆弱性調査を担当し、GitHub MCP 経由で取得した PR の変更差分が調査対象になる、という役割分担が README のワークフロー例から読み取れます。
GitHub MCP 設定から見る変更差分の取得経路
MCP 設定 github-config.json は次のように GitHub サーバーを起動します。
{ "mcpServers": { "github": { "command": "npx", "args": ["@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" } } } }npxで GitHub MCP サーバーを起動し、環境変数GITHUB_TOKENをそのままサーバーへ渡す構成です。すなわち/check-securityを実行する前に、ターミナルでトークンを設定しておく必要があります(詳細は後述)。この MCP を通じて PR のメタデータ・差分・レビュー情報を取得し、security-reviewerが検査対象とします。
フックによる前提条件の検証
pre-review.js はレビュー実行前に「前提条件の充足」を検証する Node.js 製フックです。実装は次の処理を行います。
git rev-parse --git-dirを実行し、Git リポジトリであることを確認(失敗したら❌ Not a git repositoryを出力してprocess.exit(1))git status --porcelainで未コミットの変更を検出(あれば⚠️ Warning: Uncommitted changes detectedと警告)- 問題なければ
✅ Pre-review checks passedを出力
このフックは README に記載された包括レビュー/review-prのワークフロー冒頭("Runs pre-review hook (validates git repo)")にも組み込まれており、セキュリティレビューを差分に対して実施する前提となる**「レビュー対象のコード状態」を事前に安定させる**役割を持ちます。
インストールと環境準備
プラグインのインストール
PR Review プラグインは Claude Code のプラグイン機構で提供されます。日本語版 README では次のコマンドでインストールするとされています。
/plugin install pr-review必要要件
日本語版 README に記載された実行要件は次のとおりです。
- Claude Code 1.0 以上(英語版 07-plugins/pr-review/README.md では 2.1+ と記載されており、バージョン改定に伴い要件が引き上げられています。お使いの Claude Code のバージョンに応じて確認してください)
- GitHub へのアクセス権
- Git リポジトリ(
/check-securityの対象となる PR や差分が存在すること)
GitHub トークンの設定
GitHub MCP が PR データを取得するために、環境変数GITHUB_TOKENを設定します。
export GITHUB_TOKEN="your_github_token"トークンには対象リポジトリの PR を読み取れる権限(通常はrepoスコープ、または読み取り専用のファインブランドトークン)が求められます。この値は MCP 設定の${GITHUB_TOKEN}プレースホルダ経由で github-config.json のenvに展開されるため、設定ファイルを編集する必要はありません。
実行方法:セキュリティチェックだけを回す
セキュリティチェック単体の実行
インストールとトークン設定が完了したら、レビューしたい PR のブランチ上で Claude Code に次のように指示します。
/check-securityすると Claude Code はプラグインの定義に従い、現在の変更差分に対して認証・認可、データ漏洩、インジェクション、暗号処理、ログの機微情報の観点で解析を実行し、発見事項を報告します。
包括レビューとの使い分け
同じプラグインには、セキュリティを含む包括的な PR レビューを実行する/review-prもあります。review-pr.md の定義では、/review-prは次の要素をまとめて検査します。
- セキュリティ解析(Security analysis)
- テストカバレッジの検証(Test coverage verification)
- ドキュメント更新の確認(Documentation updates)
- コード品質チェック(Code quality checks)
- パフォーマンス影響の評価(Performance impact assessment)
これに対し/check-securityは上記の 1 に相当するスコープだけを実行する点が最大の違いです。両者の使い分けは次のように整理できます。
- マージ前に全体を評価したい→
/review-pr(内部でsecurity-reviewer・test-checker・performance-analyzerへ調査を委譲し、結果を統合レポートとして提示) - セキュリティ専門家による承認や修正依頼の前に、セキュリティ問題だけを素早く洗い出したい→
/check-security - セキュリティ修正の再レビューや、機密性の高い差分だけを重点確認したい→
/check-security(単独で反復実行しやすい)
英語版 README のワークフロー例を見ると、/review-prは「セキュリティ解析」「テストカバレッジ」「パフォーマンス影響」を各サブエージェントへ委譲した後、それらを統合して 1 つのレビュー報告書を生成します。/check-securityはこのうちセキュリティ担当の結果報告に相当する部分を、独立したコマンドとして必要なときにだけ発火させる用途に向いています。
実践上の運用テクニック
1. レビュー観点をプロンプトで補強する
/check-securityの 5 項目は「何を見るか」の枠組みを提供しますが、プロジェクト固有の規約(使用言語のセキュリティライブラリ、認証方式、データ分類)はドキュメントに含まれません。コマンド実行時に補足プロンプトを併記すると検査精度が上がります。
/check-security 特に OAuth コールバックの追加差分と、新しいログ出力箇所に絞って確認してください。2. 未コミット変更に注意する
pre-review.js の実装にあるとおり、プラグインは未コミット変更があると警告を出します。セキュリティレビューはコミット済みの差分を対象に実施するのが基本です。対象ブランチの変更を先にコミット(または PR として push)してから実行しましょう。
3. 発見事項はセキュリティ専門エージェントの観点で裏取りする
/check-securityの報告に疑義がある場合や、重大な指摘の影響範囲をさらに調査したい場合は、同じプラグインのサブエージェント security-reviewer.md を直接呼び出して、認証 / 認可・データ漏洩・インジェクション・安全な設定の観点からコードを精査させると、原因箇所の特定と修正提案まで一貫して行えます。
4. セキュリティレビューを CI/CD 的なルーチンへ組み込む
スラッシュコマンドは人間が発火する対話型の仕組みですが、git rev-parseやgit statusによる前提検証を持つフックと組み合わせることで、「PR が作成されたら必ず/check-securityを実行する」というチームのルーチンを Claude Code 内に定着させられます。詳細な CI/CD 化の手法はリポジトリの 01-slash-commands/setup-ci-cd.md などを併せて参照するとよいでしょう。
まとめ
/check-securityは、Claude Code の PR Review プラグインが提供するセキュリティに特化したレビュースコープのスラッシュコマンドであり、認証・認可、データ漏洩、インジェクション、暗号処理、ログ機微情報という 5 項目を検査します。その実体は、プラグイン同梱の check-security.md の宣言と、security-reviewer.md が担う脆弱性検出の専門性、github-config.json による GitHub 差分の取得、pre-review.js による前提検証という複数の層が組み合わさって成立しています。
導入は/plugin install pr-reviewとGITHUB_TOKENの設定だけです。包括レビューの/review-prと使い分けることで、変更が大きいときは全体像を、機密性の高い差分やセキュリティ修正の再確認では/check-security単体を、というようにレビューコストを状況に応じて調整できます。セキュリティレビューを毎回のコード変更ルーチンに組み込みたい開発者・テックリードにとって、その起点として活用できるコマンドです。
【免费下载链接】claude-howtoA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-howto
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考