deepsec は、自社インフラで実行できるエージェント駆動型の脆弱性スキャナであり、既存の大規模リポジトリ内のすべてのコードをオンデマンドでレビューするように最適化されています。
deepsec は、アプリケーションに長期間潜んでいる発見しにくい問題を表面化するように設計されています。最高のモデルを最大思考レベルで使用するように構成されているため(--thinking-level で調整可能、docs/models.md を参照)、大規模なコードベースではスキャンに数千ドル、場合によっては数万ドルのコストがかかる可能性があります。当社の顧客は、修正されないままになっていたであろう脆弱性を迅速にパッチできたことから、そのコストに見合う価値があると感じています。
大規模なコードベースの場合、作業はワーカーマシン全体に並行して展開されます。実行が中断されたり、途中でエラーが発生した場合は、同じコマンドを再実行するだけで、deepsec は中断したところから再開し、すでに分析済みのファイルをスキップして残りだけを調査します。
スキャンしたいリポジトリのルートに移動し、次を実行します:
npx deepsec init # creates .deepsec/ with this repo as the first project
cd .deepsec
pnpm install # installs deepsec from npm
# Proceed as instructed by `init` output
次に、コーディングエージェントにインストールをブートストラップさせます。お好みのエージェントを開いて、次のようにプロンプトします:
.deepsec/node_modules/deepsec/SKILL.mdを読んでツールを理解して ください。次に.deepsec/data/<id>/SETUP.mdを読んで従ってください: このリポジトリの README、任意の AGENTS.md/CLAUDE.md、および代表的な コードファイルを数件ざっと確認し、 の 各セクションを置き換えてください。
.deepsec/data/<id>/INFO.md簡潔に保ってください — 合計 50〜100 行を目標に。セクションごとに 3〜5 個の例を選び、網羅的な列挙はしないでください。プリミティブ (認証ヘルパー、ミドルウェア) に名前を付けますが、行番号は付けないで ください。一般的な CWE カテゴリはスキップしてください — 組み込み マッチャーがカバーしています。プロジェクト固有のものだけをカバーして ください。INFO.md はすべてのスキャンバッチに注入されます。冗長な コンテキストはシグナルを薄めます。
次に .deepsec/ 内からスキャンします:
pnpm deepsec scan
pnpm deepsec process
pnpm deepsec revalidate # optional, cuts FP rate
pnpm deepsec export --format md-dir --out ./findings
deepsec にもっと多くのコード部分を見てほしい場合は、マッチャー作成ドキュメント を渡して、コードベース内のより価値のある開始点を見つけてもらいましょう。
process --diffdeepsec.config.ts リファレンスdata/ スキーマ (FileRecord、RunMeta、…)webapp/)ローカルで実行する場合、deepsec は、このマシンにログインしていれば既存の claude / codex サブスクリプションにフォールバックします。サブスクリプション (Claude Pro/Max、ChatGPT Plus) は deepsec の評価には役立ちますが、通常、リポジトリ全体のスキャンを行うほどの余裕はありません。
実際のスキャンには Vercel AI Gateway を使用してください。1 つのキーで Claude と Codex の両方をカバーでき、ゲートウェイのデフォルトクォータは高並列のリサーチ向けに設計されています。
AI_GATEWAY_API_KEY=vck_...
キーの取得方法と Vercel Sandbox のセットアップについては docs/vercel-setup.md を参照してください。ゲートウェイをバイパスするには、ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL (または OpenAI のペア) を明示的に設定します。明示的な値は常に AI_GATEWAY_API_KEY の展開よりも優先されます。
process または revalidate の実行が、上流の認証情報のクォータまたはクレジットを使い果たしたために停止した場合、deepsec は正常に停止し、どこで補充すればよいかを通知します。その後、同じコマンドを再実行すると、中断したところから再開します。
大規模なモノレポでは、Vercel Sandbox の microVM に作業を分散できます:
pnpm deepsec sandbox process --project-id my-app --sandboxes 10 --concurrency 4
Vercel アカウントが必要です。ローカルの作業ツリーは tarball 化されてアップロードされます。.git は除外されます。OIDC トークン (ローカル) とアクセストークン (CI) の両方がサポートされています — docs/vercel-setup.md を参照してください。
deepsec は、実行対象の環境に対してフルシェルアクセス権を持つコーディングエージェントのように扱ってください。信頼できる入力 (あなたのソースコード) に対して実行するように設計されていますが、外部依存関係やベンダリングされたコードによるプロンプトインジェクションを懸念するかもしれません。
サンドボックス (上記参照) で実行すると、潜在的な露出を大幅に制限できます:
| Command | 機能 |
|---|---|
scan | 正規表現マッチャーで候補箇所を検索 (高速、AI なし) |
process | AI による調査。指摘事項と推奨事項を出力 |
process --diff | PR モード: diff で変更されたファイルのみをスキャン + 調査 |
triage | 軽量な P0/P1/P2 分類 (低コストモデル) |
revalidate | 既存の指摘事項を再確認。git 履歴で修正をチェック |
enrich | git コミッター情報 + (プラグインを使用して) 所有権データを追加 |
report | 1 つのプロジェクトの Markdown + JSON サマリー |
export | 指摘事項ごとの JSON または Markdown ファイルのディレクトリ |
metrics | プロジェクト横断のカウント: 重大度、タイプ別の脆弱性、TP |
status | プロジェクトミラーのスナップショット |
sandbox <cmd> | 上記のいずれかを Vercel Sandbox microVM で実行 |