2026年5月4日、VercelのCTOであるMalte Ublが、コードベースの脆弱性をAIコーディングエージェントで検出するOSSセキュリティハーネス「DeepSec」を公開した。Claude Opus 4.7とGPT 5.5をフル稼働させ、正規表現ベースのファイル抽出からLLMによる文脈理解、再検証、メタデータ付与まで5段階で実行する。vercel-labs/deepsecとしてApache 2.0で公開されており、すでにUnkeyやdub.coといった実運用チームから「セキュリティエンジニアが見るべき問題を最初に拾い上げたツール」との評価が出ている。

SnykやSonarQubeのようなシグネチャベースSAST/SCAとは戦う土俵が違う。CVEデータベース照合ではなく、データフローを「読み解いて」脆弱性を判断する設計だ。本記事ではVercel公式ブログとGitHubリポジトリの記述を元に、DeepSecの仕組み、既存ツールとの比較、料金、実際の使い方を整理する。

結論:DeepSecは『毎PRで動かすツール』ではなく『リリース前の深掘り監査』向け
DeepSecはClaude Opus 4.7とGPT 5.5を使ってコードを読み解き、認証やアクセス制御に潜む論理脆弱性を検出する。偽陽性は10〜20%、コストは大規模リポジトリで数千〜数万ドル単位。Snyk/SonarQube/GitHub Advanced Securityの代替ではなく、四半期ごとの監査や重要リリース前の最終チェックに使うのが現実的だ。Apache 2.0のOSSなので自社インフラで動かせる。

この記事はAIコーディングエージェントを攻撃側でなく防御側に組み込む文脈の続編です。サプライチェーン全体の防御戦略は サプライチェーンセキュリティ完全ガイド2026|攻撃手法・防御ツール・実践チェックリスト で整理しています。

DeepSecとは何か——AIコーディングエージェントを脆弱性検出に転用するハーネス

DeepSecはVercel-labsから公開された、コーディングエージェントによって駆動されるオープンソースのセキュリティハーネスだ。Vercelプラットフォームに組み込まれた商用機能ではなく、自分で動かすCLIツールという位置づけになる。

何を解いているのか

従来のSAST(静的アプリケーションセキュリティテスト)の弱点は明確だ。シグネチャベース検出は構文パターンを拾えるが、「このAPIエンドポイントが認可チェックを忘れている」「データベースクエリにユーザー入力が文脈的に流れ込んでいる」といったコード固有の論理問題は苦手だ。CodeQLのような高度なクエリ言語を使ってもクエリを書く側のコストが大きい。

DeepSecの問いは「AIコーディングエージェントが既にコードを読んで修正できるなら、なぜ脆弱性検査側に転用しないのか?」だ。Claude Opus 4.7(max effort)とGPT 5.5(xhigh reasoning)をフル稼働させ、コードを直接読み解いてデータフローを追跡する。

「base modelで十分」という設計判断
DeepSecはサイバーセキュリティ専用の追加学習モデルを使っていない。「base versionで効果的に動く」とVercel公式は説明している。これはセキュリティ特化モデルが多数登場している中で、汎用モデルの推論能力で十分という主張で、業界の方向性として注目に値する。

4月のVercel侵害との文脈

DeepSecが公開された背景には、2026年4月のVercel自身のセキュリティインシデントがある。GoogleのOAuth経由でVercel社内システムに不正アクセスがあり、GitHub/NPMトークンの流出懸念から大規模なクレデンシャルローテーションが行われた事件だ。詳細は【速報】Vercel不正アクセス・情報漏洩:GitHub/NPMトークン流出とNext.js CVE緊急対処法に整理した。

DeepSecはこの侵害の直接的な対応プロダクトではないが、Vercelが社内向けに開発・運用してきたセキュリティ自動化の蓄積を外部公開した格好で、4月以降のセキュリティ強化路線と一貫している。


5段階のスキャンプロセス——DeepSecはどう動くのか

DeepSecの動作は5つの段階に分かれる。それぞれが独立したCLIコマンドとして実装されており、上流の出力を下流が読む構成だ。

flowchart TD A["1.Scan
正規表現マッチャ
セキュリティ関連ファイル抽出"] --> B["2.Investigate
Claude/GPTが
データフロー追跡"] B --> C["3.Revalidate
別エージェントが
独立検証"] C --> D["4.Enrich
Gitメタデータで
担当者特定"] D --> E["5.Export
チケット形式で
finding出力"] style A fill:#3b82f6,color:#fff style B fill:#8b5cf6,color:#fff style C fill:#10b981,color:#fff style D fill:#f59e0b,color:#fff style E fill:#ef4444,color:#fff

1. Scan(高速・正規表現フェーズ)

最初の段階はLLMを使わない。リポジトリ全体に対して正規表現ベースのマッチャを走らせ、「セキュリティ的に注目すべきファイル」を高速に抽出する。認証ハンドラ、APIエンドポイント、データベース層、入力検証ロジックなどが対象だ。

このフェーズの設計は重要だ。後段のLLMフェーズはコストが高いため、ここでうまく絞り込めないと全コードを舐めることになる。プロジェクト固有のマッチャは.deepsec/data/<id>/INFO.mdで記述する。

2. Investigate(AI調査フェーズ)

抽出されたファイル群に対して、Claude OpusまたはGPTが「このコードに脆弱性があるか」を直接判断する。エージェントは関連ファイルを動的に読み込み、データフローを追跡し、既存の緩和策(バリデーション、認可チェック)を確認する。

ここで使われるモデルは最大推論レベルだ。Vercelの言葉を借りれば「Claude Opus 4.7 at max effort」「GPT 5.5 at xhigh reasoning」になる。文脈理解の深さが偽陰性削減に直結する。

3. Revalidate(再検証フェーズ)

Investigateで上がったfindingsを、別のエージェントが独立して再評価する。この段階の役割は偽陽性削減だ。「Investigateエージェントが見落とした緩和策はないか」「実際にエクスプロイト可能なのか」を二人目の目で確認する。

偽陽性10〜20%——再検証してもゼロにはならない
Vercelは『偽陽性率はおよそ10〜20%』と公式に明示している。これはセキュリティツールとしては低い水準ではない。Snyk Codeの公開ベンチマークでは偽陽性率は数%台に抑えられているケースもある。DeepSecの高い検出力は、人間レビューでの却下作業とのトレードオフで成り立っている。

4. Enrich(メタデータ付与)

git blameや履歴情報を使い、各findingに「最後にこのコードを触った人」「いつ導入されたか」を紐付ける。チケット化したときに誰にアサインすべきかが自動的に決まる。

5. Export(出力)

最終findingを「チケットに転換できる形式の指示」として出力する。Markdownディレクトリ形式(--format md-dir)、JSON、横断メトリクスレポートに対応する。出力された指示は、LinearやJiraに貼り付けて人間が処理することも、別のコーディングエージェント(Claude Code、Codex)に渡して自動修正させることもできる。

# 5段階を順番に実行する典型フロー
pnpm deepsec scan          # 高速・LLMなし
pnpm deepsec process       # AI調査
pnpm deepsec revalidate    # 偽陽性削減
pnpm deepsec export --format md-dir --out ./findings

Snyk・SonarQube・GitHub Advanced Securityとの比較

DeepSecが他のツールと「何が違うのか」を整理する。判断のフローチャートと比較表を用意した。

設計思想の比較

項目 DeepSec Snyk Code SonarQube GitHub Advanced Security (CodeQL)
検出方式 LLMによる文脈理解 DeepCodeAI(独自AI)+ ルール ルールエンジン + SAST クエリ言語ベース静的解析
偽陽性率 10〜20% 数%(公開値) 設定依存 数%(精度高)
1スキャンのコスト 数千〜数万ドル(大規模) 商用ライセンス 無料(CE)〜商用 GitHub有償プラン
実行時間 数十分〜数時間 分単位 分単位 分単位
主な強み 認証・認可・データフローの論理脆弱性 CVEとSAST両対応 多言語・コード品質統合 クエリ拡張・PR連携
主な弱み コスト・実行時間 論理脆弱性は限定的 AI的文脈理解は弱い クエリ作成コスト
実行場所 自社インフラ/Vercel Sandbox SaaS セルフホスト/SaaS GitHub上
ライセンス Apache 2.0 プロプライエタリ LGPL v3 / 商用 プロプライエタリ
CIで毎PR実行 非現実的 推奨 推奨 推奨

どのツールをいつ使うか——選定フローチャート

flowchart TD Q1{"検査の目的は?"} -->|"既知CVE依存・
シグネチャ検出"| A["Snyk / Dependabot
+ GitHub Advanced Security"] Q1 -->|"コード品質と
セキュリティの統合"| B["SonarQube"] Q1 -->|"認証・認可・
データフローの
論理的脆弱性"| Q2{"頻度は?"} Q2 -->|"毎PR・
毎日"| C["CodeQL
カスタムクエリ"] Q2 -->|"四半期・
リリース前監査"| D["DeepSec"] Q1 -->|"全部やりたい"| E["併用
DeepSec + Snyk + CodeQL"] style D fill:#10b981,color:#fff style E fill:#f59e0b,color:#fff

DeepSecは「Snykの代わり」ではない。むしろSnyk/SonarQube/CodeQLとの併用が前提になる。シグネチャベースの早期検出は他ツールに任せ、DeepSecは深掘り監査の役割を担う構成が現実的だ。

競合の最新動向

DeepSec登場の前後で、AIエージェントを使ったセキュリティスキャンは複数公開されている。GitHub Security Lab自身も「AI-powered framework」を公開済みで、CodeQLの拡張としてLLMを組み込む動きがある。Snykは2026年4月にVercelとのパートナーシップを発表し、Agent Skill配信時の自動セキュリティ解析を実装した。DeepSecだけが孤立しているわけではなく、業界全体が「LLMで脆弱性を読み解く」方向に動いている。


料金とコスト構造——「数千〜数万ドル」の正体

DeepSec本体はApache 2.0で無料だが、内部コストが大きい。料金構造を分解する。

コスト要素

DeepSec実行時に発生するコストは3層に分かれる。

  1. AI推論コスト(Claude/Codex/GPT API)—— 最大支出。スキャン対象ファイル数 × 1ファイルあたりの推論トークン数 × エージェント往復回数
  2. Vercel Sandboxコスト(オプション)—— 並列実行する場合のみ
  3. 計算機コスト(ローカル実行 or CI)—— scanフェーズ自体は軽量

Vercel公式は「大規模コードベースでは数千〜数万ドル」と明示している。これは数十万行〜数百万行規模を想定した数字だ。

コスト見積もりの目安
小規模プロジェクト(〜1万行)であれば1スキャン数十ドル〜数百ドルのレンジに収まることが多い。中規模(〜10万行)で数百〜数千ドル、大規模(100万行超)で数千〜数万ドル。事前に対象ファイル数を絞り込むマッチャの設計次第で、桁が変わる。

既存サブスクリプションとの統合

DeepSecは既存のClaude(Anthropic)またはCodex/GPT(OpenAI)のサブスクリプションをそのまま使える。新規にAPIキーを発行する必要はあるが、追加の月額契約は不要だ。

Vercel AI Gateway経由でLLMを呼び出すと、レート制限を緩和できる構成が公式推奨されている。AI Gatewayはマルチプロバイダのレート制限・コスト集計を一元化するプロキシで、DeepSecのような大量並列スキャンには相性が良い。

コスト最小化のチェックリスト

  • 正規表現マッチャを丁寧に書き、scanフェーズの抽出を絞る
  • ライブラリ・generated codeはスキャン対象から除外する
  • 全コードでなく、変更頻度の高いコアロジックに絞る
  • 初回実行は小さなサブセットでドライラン
  • AI Gateway経由で実行し、コスト集計を一元化する

実際の使い方——インストールから初回スキャンまで

ここからは実行手順だ。Node.jsとpnpmが導入済みであることを前提とする。

1. インストールと初期化

リポジトリのルートでnpx deepsec initを実行する。これで.deepsecディレクトリが作成され、設定ファイルとカタログ用のスケルトンが生成される。

# プロジェクトのルートで実行
cd your-project
npx deepsec init

# 生成された設定の中で依存関係をインストール
cd .deepsec
pnpm install

.deepsecディレクトリの中身は以下の構造になる。

  • deepsec.config.ts:プライマリ設定(スキャン対象、除外パターン、モデル選択)
  • data/<project-id>/INFO.md:プロジェクト固有のマッチャ・ガイダンス(50〜100行が目安、各セクションに3〜5例)
  • docs/configuration.md:設定ドキュメント
  • docs/plugins.md:プラグイン拡張ドキュメント

2. AIプロバイダの設定

環境変数でAPIキーを渡す。Vercel AI Gateway経由が公式推奨だ。

# 大規模リポジトリではAI Gateway経由を推奨
export AI_GATEWAY_API_KEY=vck_...

# 直接Anthropic APIを使う場合
export ANTHROPIC_API_KEY=sk-ant-...

# OpenAI(Codex/GPT)の場合
export OPENAI_API_KEY=sk-...

3. スキャン実行

5段階を順番に走らせる。最初は小さなサブセットでドライランするのが安全だ。

# Step 1: 高速スキャン(LLMなし)でファイル抽出
pnpm deepsec scan

# Step 2: AI調査(最も時間とコストがかかる)
pnpm deepsec process

# Step 3: 偽陽性削減のための再検証
pnpm deepsec revalidate

# Step 4: Gitメタデータ付与(自動)
# Step 5: Markdownディレクトリ形式でエクスポート
pnpm deepsec export --format md-dir --out ./findings

# 出力サンプル
ls findings/
# → finding-001-auth-bypass.md
# → finding-002-sql-injection.md
# → finding-003-missing-rate-limit.md

4. プラグイン・カスタムマッチャ

DeepSecの強みはプロジェクト固有の知識を注入できる点にある。Vercel社内では認証パスのカスタムスキャナを書いて使っているという。

カスタムスキャナは正規表現マッチャ+エージェント向けプロンプトの組み合わせで定義する。.deepsec/data/<id>/INFO.mdに「このプロジェクトではミドルウェアレベルの認証はこのファイルパスにある」「データレイヤはこのモジュールで集約されている」と書いておくと、エージェントの調査効率が上がる。

// deepsec.config.ts(カスタムマッチャの例)
export default {
  matchers: {
    auth: {
      patterns: [
        /middleware\/.*\.ts$/,
        /lib\/auth\/.*\.ts$/,
      ],
      priority: 'high',
      prompt: 'Check for missing auth checks on API routes',
    },
    db: {
      patterns: [
        /lib\/db\/.*\.ts$/,
        /queries\/.*\.sql$/,
      ],
      priority: 'medium',
      prompt: 'Look for SQL injection and missing access control',
    },
  },
  models: {
    investigate: 'claude-opus-4-7',
    revalidate: 'gpt-5-5',
  },
}

5. Vercel Sandboxesでスケールアウト

シングルマシンで動くが、大規模コードベースでは並列化が必須だ。Vercel Sandboxesを使うと1,000以上の並列実行が可能になる。

Vercel Sandbox利用の判断基準
スキャン対象が10万行を超える、もしくは1日以内に結果が欲しい場合はSandbox並列化を検討する。それ未満ならローカルマシン1台でも数時間以内に完走するケースが多い。

Vercel SandboxesはマイクロVMベースの隔離実行環境で、DeepSecの並列モードはこの環境を前提に設計されている。AWS Fargate/GCP Cloud Runなどのコンテナサービスで代替することも可能だ。


実運用での評価——Unkey・dub.coからの声

VercelブログにはDeepSecを実運用したチームのコメントが掲載されている。

UnkeyのJames Perkinsは「DeepSecのスキャンは最も徹底しており、findings数が多く、true-positive率も高い」と評価。dub.coのSteven Teyは「セキュリティエンジニアが本当に取り上げるべき問題を最初に拾い上げたツール」とコメントしている。

両者とも「SaaSプロダクトを運営する開発チーム」という点で共通する。DeepSecが想定する典型ユーザーは、本番運用するアプリ・サービスを抱え、セキュリティエンジニアの専任を持たないか少数のSaaSスタートアップだ。「ライブラリやフレームワーク向けにはチューニングが必要」という公式注記とも整合する。


DeepSecをいつ使うべきか——意思決定フロー

導入を検討するエンジニア向けに判断ポイントを整理する。

向いているプロジェクト

  • 認証・認可・課金などビジネスロジックに脆弱性が紛れ込むSaaS
  • セキュリティ専任エンジニアがいない、または数名規模のチーム
  • 四半期ごとに監査を回したいが、外部監査会社に毎回頼むのは高い
  • リリース前に「最終チェック」として深掘りスキャンを通したい
  • AIエージェントによる自動修正までセットで運用したい

向いていないプロジェクト

  • ライブラリ・フレームワーク(公式が「独自プロンプト調整必要」と注記)
  • CIで毎PR実行したい(コスト的に非現実)
  • 既知CVE依存解決が主要な目的(Snyk/Dependabotの方が適切)
  • 100行〜数百行のスクリプト(オーバースペック)

既存セキュリティスタックへの組み込み方

PR時:
  └ Snyk Code + GitHub Advanced Security(CodeQL)
   └ 数分以内・低コスト・毎PR実行

四半期 or 重要リリース前:
  └ DeepSec
   └ 数時間・高コスト・深掘り監査

依存関係:
  └ Snyk Open Source / Dependabot
   └ 継続的・低コスト

この三層構造で、コストと検出力のバランスが取れる。


公開直後のトピックとリスク

DeepSecは2026年5月4日公開、本記事執筆時点でリポジトリは非公開(404)になっており、ステージングされた公開準備中の可能性がある。公式ブログでは確認済みの情報、リポジトリの非公開状態は本記事執筆時点の事実として明確に区別する。

未検証要素のチェックリスト
本記事の情報はVercel公式ブログとリポジトリREADMEから抽出した一次情報に基づくが、以下は今後変動する可能性がある。
・偽陽性率10〜20%は公式数値だが、特定プロジェクトでの再現値ではない
・コスト「数千〜数万ドル」は大規模リポジトリの目安であり保証値ではない
・モデル選択(Opus 4.7/GPT 5.5)はリリース時点であり、将来変更される可能性
・1,000並列はSandbox上限の例示であり、実際の並列度はワークロード依存

公開後の最新動向は本記事で随時更新する予定だ。


まとめ

DeepSecは「AIコーディングエージェントを脆弱性検出に転用する」というシンプルだが説得力のある問いを実装したOSSだ。Snyk・SonarQube・GitHub Advanced Securityの代替ではなく、深掘り監査レイヤーとして既存スタックに追加するのが現実的な使い方になる。

ポイントは3つだ。

  1. 検出力 vs コスト:偽陽性10〜20%・大規模で数千〜数万ドルというコスト構造を理解した上で、四半期監査やリリース前チェックなど「頻度を絞った深掘り」に使う
  2. 論理脆弱性の検出:認証・認可・データフローの抜けはシグネチャベース検出が苦手な領域で、DeepSecが最も価値を出す
  3. Apache 2.0で自社インフラ実行:SaaSとしてベンダロックインされず、機密性の高いコードをクラウドに送らずに済む

AIコーディングエージェントは攻撃側でも防御側でも実用フェーズに入った。BISSA Scannerのように攻撃者がClaude Codeを使う事例が出てきた今、防御側のツーリングも同じ抽象度で組み立て直す必要がある。DeepSecはその一例として観察する価値がある。

関連記事:


参照ソース