HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

Deepsec

Deepsec (github.com)

43 pointsby handfuloflight5 コメント

要約

Deepsecは、自社インフラで実行できるエージェント駆動型の脆弱性スキャナーです。大規模な既存リポジトリの全コードをオンデマンドでレビューするように最適化されており、長年潜んでいる発見困難な問題を表面化させます。高レベルなモデルを使用するため、大規模コードベースではスキャンコストが高くなることがありますが、迅速な脆弱性パッチ適用に繋がるため、顧客は費用対効果を評価しています。大規模コードベースでは、作業は複数のワーカーマシンに並列分散され、中断やエラーが発生した場合でも、同じコマンドを再実行すれば中断箇所から処理を再開できます。

全文翻訳

deepsecdeepsecは、自社インフラで実行できるエージェント駆動型の脆弱性スキャナーであり、既存の大規模リポジトリの全コードをオンデマンドでレビューするように最適化されています。deepsecは、長年アプリケーションに潜んでいる発見困難な問題を表面化させるように設計されています。最高のモデルを最大限の思考レベル(--thinking-levelで調整可能、docs/models.mdを参照)で使用するように設定されているため、スキャンは大規模コードベースでは数千ドル、あるいは数万ドルにもなることがあります。顧客は、発見されずに放置されていた脆弱性を迅速にパッチ適用できたことから、そのコストに見合う価値があると評価しています。大規模コードベースの場合、作業はワーカーマシン間で並列処理されます。実行が中断されたり、途中でエラーが発生したりした場合は、同じコマンドを再実行するだけで、deepsecは中断したところから処理を再開し、既に分析したファイルはスキップして残りのファイルのみを調査します。開始方法スキャンしたいリポジトリのルートに移動し、次を実行します: npx deepsec init # このリポジトリを最初のプロジェクトとして.deepsec/を作成します cd .deepsec pnpm install # npmからdeepsecをインストールします # `init`出力の指示に従ってくださいこれで、コーディングエージェントにインストールのブートストラップを依頼してください。選択したエージェントを開き、プロンプトを入力します: deepsecツールを理解するために.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 # オプション、FP率を削減します pnpm deepsec export --format md-dir --out ./findings deepsecがコードのより多くの部分を確認する必要があると感じた場合は、コーディングエージェントにライティングマッチャーのドキュメントを与えて、コードベースでより価値のある開始点を見つけさせます。ドキュメントdocs/getting-started.md — 初回スキャンウォークスルーdocs/reviewing-changes.md — PRレビューとCIゲーティングのための --diff の処理docs/supported-tech.md — deepsecが認識するフレームワークとエコシステムdocs/writing-matchers.md — コーディングエージェントにプロンプトを入力してマッチャーセットを拡張しますdocs/configuration.md — deepsec.config.tsリファレンスdocs/plugins.md — プラグイン作成docs/models.md — モデル選択、デフォルト、拒否、将来のモデルdocs/vercel-setup.md — AIゲートウェイ + Vercelサンドボックスキー/トークンdocs/architecture.md — パイプライン内部docs/data-layout.md — データ/スキーマ(FileRecord, RunMeta, …)docs/faq.md — コスト、モデル選択、サンドボックスモード、FP率samples/ — コピー&ペーストの開始点(現在: webapp/)CONTRIBUTING.md — リポジトリレイアウト、開発ワークフローAIプロバイダーローカルで実行する場合、deepsecはマシンにログインしていれば、既存のclaude / codexサブスクリプションにフォールバックします。サブスクリプション(Claude Pro/Max、ChatGPT Plus)はdeepsecの評価には役立ちますが、通常は完全なリポジトリスキャンには十分なヘッドルームがありません。実際のスキャンには、Vercel AIゲートウェイを使用してください。1つのキーでClaudeとCodexの両方をカバーし、ゲートウェイのデフォルトクォータは高並列研究向けにサイズ設定されています。AI_GATEWAY_API_KEY=vck_...キーの取得方法とVercelサンドボックスセットアップについては、docs/vercel-setup.mdを参照してください。ゲートウェイをバイパスするには、ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL(またはOpenAIのペア)を明示的に設定します。明示的な値は、AI_GATEWAY_API_KEYの展開よりも常に優先されます。プロセスまたは再検証の実行が、アップストリーム認証情報がクォータまたはクレジットを使い果たしたために停止した場合、deepsecは正常に停止し、どこで補充する必要があるかを示します。その後、同じコマンドを再実行すると、中断したところから処理が再開されます。分散実行(オプション)大規模なモノレポは、VercelサンドボックスマイクロVM間で作業を分散できます: pnpm deepsec sandbox process --project-id my-app --sandboxes 10 --concurrency 4Vercelアカウントが必要です。ローカルの作業ツリーはtarボール化されてアップロードされます。.gitは除外されます。OIDCトークン(ローカル)とアクセストークン(CI)の両方がサポートされています — docs/vercel-setup.mdを参照してください。deepsec自体のセキュリティモデルdeepsecを、実行されている環境で完全なシェルアクセス権を持つコーディングエージェントのように扱ってください。信頼できる入力(ソースコード)で実行するように設計されていますが、外部依存関係やバンドルされたコードによるプロンプトインジェクションを依然として懸念する可能性があります。サンドボックスで実行すること(上記参照)は、潜在的な露出を大幅に制限します: コーディングエージェントのAPIキーはサンドボックスの外に注入されるため、抽出されることはありませんワーカーサンドボックスの場合、サンドボックスからのネットワークエグレスはコーディングエージェントホストに制限されます(ブートストラッププロセス中はエグレスが許可されますが、これはコーディングエージェントを実行しません)。ワークフローリファレンスコマンド機能scan正規表現マッチャーで候補サイトを検索(高速、AIなし)processAI調査、結果と推奨事項を出力しますprocess --diff PRモード:差分で変更されたファイルのみをスキャンおよび調査しますtriage軽量P0/P1/P2分類(低コストモデル)revalidate既存の結果を再検証します。修正のためにgit履歴を確認しますenrichgitコミッター情報と(プラグインで)所有権データを追加しますreport1つのプロジェクトのMarkdown + JSONサマリーexport発見ごとのJSONまたはMarkdownファイルディレクトリmetricsクロスプロジェクトカウント:重大度、タイプ別の脆弱性、TPsstatusプロジェクトのスナップショットmirror sandbox <cmd>上記コマンドのいずれかをVercelサンドボックスマイクロVMで実行しますライセンスApache 2.0。LICENSEおよびNOTICEを参照してください。