コードベースの脆弱性発見を支援するセキュリティハネス「DeepSec」の公開
本文の状態
日本語全文を表示中
詳細モードで約5分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
Vercel Blog
開発者がクラウド設定不要でローカル環境や既存の契約を利用し、大規模なコードベースから難検出型の脆弱性を特定できるオープンソースツール「DeepSec」が公開された。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
本日、コーディングエージェントによって駆動されるセキュリティハネス「deepsec」をオープンソース化しました。これは独自のインフラ上で動作し、大規模なコードベースから見つけにくい問題を表面化します。
深さの深いコードアクセスのためのクラウドサービスをセットアップする必要なく、あなたのラップトップで deepsec を実行できます。推論には、既存の Claude または Codex のサブスクリプションを追加設定なしで使用できます。
単一のマシンで大規模なリポジトリのスキャンを実行するには数日かかることがあります。並列に研究ジョブを実行するために、deepsec は Vercel Sandboxes へのリモート実行のためのオプションファンアウトをサポートしています。Vercel のコードベースにおけるスキャンは、通常 1,000 以上の同時サンドボックスまでスケールします。
アーキテクチャ
depsec の核心では、Opus 4.7 を最大努力で、GPT 5.5 を xhigh レーシング(推論)で使用して、コードベースの tailored investigation(特化された調査)を実行するために claude と codex を使用します。
スキャンは、セキュリティに敏感なファイルを特定するための静的解析から始まり、その後コーディングエージェントが各候補を調査し、データフローを追跡し、緩和策を確認し、深刻度評価付きの実行可能な発見結果を生成します。以下がワークフローです:
スキャン:まず、後続のステップで焦点を当てるセキュリティに敏感な領域に対して、すべてのファイルに対する regex のみによるスキャンを実行することから始まります。
調査:エージェントはスキャンで特定された各ファイルを調査します。
再検証:2 回目のエージェント実行により、調査結果を検証し、偽陽性を除去し、深刻度を再分類します。
Enrich: 調査が完了すると、エージェントは git メタデータやその他のオプションサービスを使用して、各課題の修正を担当した貢献者を特定します。
Export: エクスポートコマンドは、発見された事項を指示としてフォーマットし、人間やコーディングエージェントのためのチケットに変換できるようにします。
本番環境コードでの deepsec の実行
deepsec は、当社のモノレポおよび顧客のコードベースにおいて非常に有用でした。開発中、私たちは Vercel の顧客とパートナーが運営するいくつかのオープンソースリポジトリで deepsec を実行しました。
例えば、deepsec は dub.co のオープンソース版をスキャンしました。Dub は、リンク属性追跡プラットフォームであり、SaaS サービスとしても利用可能です。認証アクセス機能を備え、データベースと連携し、複数のバックエンドサービスを実行するため、大きなセキュリティ表面を提供しています。私たちが発見した deepsec の結果を創設者の Steven Tey 氏に共有した際、彼は以下のように返信しました。
Vercel 自身のモノレポに対して実行したところ、deepsec は認証条件における微妙なエッジケースを特定し、コード内のすべての認証パスをカバーするカスタムスキャナプラグインの開発へとつながりました。
偽陽性と最適な活用方法
deepsec の発見の中には偽陽性も含まれます。私たちの経験則では、偽陽性の発生率は概ね 10〜20% です。真の陽性(実際の脆弱性)が当社の研究に与える影響を考慮すると、この結果には満足しており、偽陽性を減らすためにエージェントが発見事項をさらに検証する再検証ステップを構築しました。
deepsec はアプリケーションやサービスに対して最も効果的に機能します。ライブラリやフレームワークでも使用可能かもしれませんが、それらにはカスタムプロンプトとスキャナーが必要となる可能性が高いです。
カスタマイズとプラグイン
deepsec には、コードベースに適応させるためのプラグインシステムが搭載されています。最も一般的なプラグインはカスタムスキャナーで、認証モデル、データ層、またはチームの慣習に合わせて調整された正規表現マッチャーです。deepsec をコーディングエージェントと共に使用し、初期スキャンの結果に基づいてこれらのマッチャーを記述させることを推奨します。
特別な「サイバーモデル」へのアクセスは必要ですか?
Anthropic と OpenAI の両社が、ベースモデルでは受け付けないセキュリティタスクを受け入れるように微調整された、最も高性能なモデルの「サイバー」バージョンを提供しています。deepsec はこれらのモデルとも連携しますが、市販の標準モデルでも完全に機能します。
deepsec には、各調査ステップ後にタスクが拒否されたかどうかを確認する分類器が搭載されています。私たちの経験では、deepsec が使用するプロンプトにおいては、Opus 4.7 および GPT 5.5 の両方で拒否は問題にならないことが確認されています。
始め方
始めるには、リポジトリのルートで npx deepsec init を実行してください。これにより、システムの設定と deepsec による調査カタログを保存するための .deepsec というディレクトリが作成されます。その後、コマンドの出力に従ってください。詳細は Github の完全なドキュメントをご覧ください。
フィードバック歓迎
私たちは deepsec を徹底的に使用してきましたが、まだ開発初期段階にあります。GitHub でのフィードバックや貢献を歓迎します。
続きを読む
原文を表示
Today we’re open sourcing deepsec: a security harness powered by coding agents. It runs on your own infrastructure and surfaces hard-to-find issues in large codebases.
You can run deepsec on your laptop without setting up a cloud service for privileged source code access. For inference, you can use your existing Claude or Codex subscription without any additional setup.
Scanning large repos can take multiple days on a single machine. To run research jobs in parallel, deepsec supports optional fanout to Vercel Sandboxes for remote execution. Scans on Vercel’s codebases routinely scale up to 1,000+ concurrent sandboxes.
Architecture
At its core, deepsec uses claude and codex to perform tailored investigation of a codebase using Opus 4.7 at max effort and GPT 5.5 at xhigh reasoning.
Scans start with static analysis to identify security-sensitive files, then coding agents investigate each candidate, tracing data flows, checking for mitigations, and producing actionable findings with severity ratings. Here is the workflow:
Scan: It starts by performing a regex-only scan of all files for security-sensitive areas that subsequent steps will focus on.
Investigate: Agents investigate each file identified in the scan.
Revalidate: A second agent run validates investigation findings to remove false positives and reclassify severity.
Enrich: Once investigation is complete, an agent uses git metadata and other optional services to identify the contributors responsible for fixing each issue.
Export: The export command formats the findings as instructions so that they can be turned into tickets for humans and coding agents.
Running deepsec on production code
deepsec has been highly useful on our own monorepos and for our customers' codebases. During development, we ran deepsec on several open source repositories of Vercel customers and partners.
For example, deepsec scanned the open source version of dub.co. Dub is an open source link attribution platform that is also available as a SaaS service. It features authenticated access, interacts with a database, and runs several backend services, providing a large security surface. When we shared our deepsec findings with founder Steven Tey, he replied:
Running against Vercel’s own monorepos, deepsec identified subtle edge cases in auth conditions, leading us to develop a custom scanner plugin that covers every authentication path in our code.
False positives and best uses
Some of deepsec's findings will be false positives. In our experience the false positive rate is roughly 10-20%. Given the impact of true positive findings in our own research, we’ve been happy with this outcome, and we built the revalidate step to have the agent further verify its findings to reduce false positives.
deepsec works best for applications and services. It may be usable for libraries and frameworks, but those would likely require custom prompts and scanners.
Customization and plugins
deepsec ships with a plugin system for adapting it to your codebase. The most common plugins are custom scanners: regex matchers tuned to your auth model, data layer, or team conventions. We recommend using deepsec with your coding agent and asking it to write those matchers based on findings from an initial scan:
Do I need access to a special “cyber model”?
Both Anthropic and OpenAI offer “cyber” versions of their most capable models, fine-tuned to accept security tasks the base models won’t. deepsec works with these, but is also fully functional with off-the-shelf models.
deepsec ships with a classifier that checks whether the task was refused after each research step. In our experience, for the prompt that deepsec is using, refusals are a non-issue for both Opus 4.7 and GPT 5.5.
Getting started
To get started, run npx deepsec init at the root of your repository. This will create a directory called ./.deepsec, which is used to configure the system and store a catalog of your deepsec investigations. From there, follow the output of the command. Read the full documentation on Github.
Feedback welcome
While we’ve used deepsec extensively, it is still early in its development. Feedback and contributions on GitHub are welcome.
Read more
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み