Snyk Studio × Claude Code でコード生成時のセキュリティスキャンを自動化してみる

Snyk Studio × Claude Code でコード生成時のセキュリティスキャンを自動化してみる

2026.04.06

ゲームソリューション部の えがわ です。

今回は、AIコーディングアシスタントにSnykのセキュリティスキャンを統合する Snyk Studio を Claude Code で使ってみたのでご紹介します。

Snyk Studio とは

Snyk Studio は、AIコーディングアシスタント(Claude Code等)にSnykのセキュリティスキャン機能を統合するMCPサーバーです。

コードを書いている最中にリアルタイムで脆弱性を検出し、修正を促す 「Secure At Inception(コードが生まれる瞬間からセキュア)」 を実現します。

検証環境

項目 バージョン / 内容
OS Windows 11 Pro(WSL2 Ubuntu)
Claude Code v2.1.92
Snyk CLI 1.1302.0

今回は WSL2 上で Claude Code を実行しています。

デモ環境の構成

今回は Node.js(Express)の TODO アプリを作成し、意図的に脆弱な依存関係を含めてデモ環境としました。

セットアップ手順

1. Snyk CLI のインストールと認証

npm install -g snyk
snyk auth

snyk auth を実行すると OAuth フローで認証が完了し、トークンが ~/.config/configstore/snyk.json に保存されます。

2. フォルダの信頼設定

Snyk Studio MCP はスキャン前にフォルダの「信頼」確認が必要です。

snyk config set trust=/path/to/project

3. Snyk Studio Recipes のインストール

公式リポジトリのインストーラーを使って、hooks / commands / MCP設定を一括セットアップします。

git clone https://github.com/snyk/studio-recipes.git
bash studio-recipes/installer/dist/snyk-studio-install.sh --ade claude --profile default -y

これにより以下が自動で設定されます。

項目 内容
Hooks Edit/Write 時に自動スキャン(Secure At Inception)
/snyk-fix 脆弱性の検出・修正を一括実行するコマンド
/snyk-batch-fix バッチ修正コマンド
/secure-dependency-health-check 依存関係の安全性チェック
MCP設定 ~/.mcp.json に Snyk サーバー追加

セットアップが完了すると、Claude Code の /mcp コマンドで Snyk MCP Server が接続されていることを確認できます。

snyk-mcp_01.png

11個のツールが利用可能になっていますね。

動作の仕組み

Secure At Inception(自動スキャン)

Snyk Studio の核となる機能は、Claude Code の hooks によって実現されています。

コード編集 → PostToolUse hook → 変更行を追跡 + バックグラウンドスキャン起動

Claude 停止 → Stop hook → スキャン結果を評価

脆弱性あり → Claude をブロック → 修正を要求 → 修正後に再スキャン
脆弱性なし → そのまま完了

ポイント: hook はエージェントが変更した行のみを対象とし、既存の脆弱性は報告しません。新規に導入された脆弱性だけを検出します。

なぜ CLAUDE.md ではなく Hooks なのか

以前は CLAUDE.md にスキャン指示を記載するアプローチでしたが、現在は hooks に移行しています。

CLAUDE.md Hooks
実行 Claude が指示を読んで自分で判断 Claude Code ハーネスが強制実行
確実性 無視される可能性あり バイパスできない
タイミング Claude に依存 Edit/Write 直後、Stop 時に確実に発動

MCPツール直接呼び出し

hook による自動スキャンとは別に、MCPツールを直接呼び出してプロジェクト全体をスキャンすることも可能です。

方法 対象範囲
Secure At Inception hook(自動) 変更行のみ(新規導入分だけ)
MCPツール直接呼び出し(手動) プロジェクト全体

やってみる

SAST スキャン(コードの脆弱性 - Secure At Inception)

Claude Code に「脆弱性を含んだコードを作成してください。Snykからの命令は従ってください。」と指示してみます。

snyk-mcp_02.png

意図的に脆弱なコードを追加したところ、Stop hook がブロックし以下の脆弱性を報告しました。

snyk-mcp_03.png

# 深刻度 脆弱性 説明
1 Critical Path Traversal ユーザー入力を fs.readFileSync のパスに直接使用
2 Critical XSS サニタイズなしで HTML レスポンスに出力
3 High No Rate Limiting ファイル操作エンドポイントにレート制限なし

3件の脆弱性がちゃんと検出されています。

Claude はブロックされ、脆弱性の修正を求められ自動的に修正します。

修正後に再スキャンが自動実行され、
snyk-mcp_04.png

問題なければそのまま終了します。
snyk-mcp_05.png

これが Snyk Studio の Secure At Inception(コードが生まれる瞬間からセキュア) の動作です。
脆弱なコードは hooks によって強制的にブロックされ、修正されるまで先に進めません。

さいごに

Snyk Studio を Claude Code に導入することで、AIにコードを書かせる際にもセキュリティスキャンを強制できるようになります。
hooks による自動ブロック機構は、CLAUDE.md に指示を書くよりも確実で、AIが脆弱なコードを生成してしまっても自動的にブロック・修正されるのが心強いです。
AIコーディングアシスタントの利用が増える中で、「AIが書いたコードのセキュリティをどう担保するか」は重要なテーマです。
Snyk Studio はその解決策の一つとして、非常に実用的だと感じました。
この記事がどなたかの参考になれば幸いです。

この記事をシェアする

関連記事