由 AI 智能体驱动的大型代码库漏洞扫描器,支持多阶段流水线、增量恢复与分布式执行。
deepsec 是由 Vercel Labs(Malte Ubl / cramforce 主导)开发的编码智能体驱动漏洞扫描器,专为大型应用与服务类代码库的按需深度安全审查设计,采用 Apache 2.0 许可证,以 TypeScript 构建(99.3%),使用 pnpm workspace monorepo 结构管理。
多阶段扫描流水线#
项目采用"正则预扫描 → AI 深度调查 → 再验证"架构:
- scan:纯正则匹配候选安全敏感位点,无 AI 调用,约 15s/2k 文件
- process:调用 Claude(Opus 4.7 max effort)或 Codex(GPT 5.5 xhigh reasoning)进行数据流追踪与缓解措施检查,产出带严重性评级的发现与修复建议
- revalidate:二次 AI 复核,检查 git 历史是否已修复,降低误报率约 50%+
- enrich:附加 git committer 信息与所有权数据
- export:输出 Markdown 或 JSON 格式报告
基线误报率约 10-20%,经 revalidate 后进一步降低。同一 prompt、同一 JSON 输出 schema,Claude 与 Codex 两个后端可混用。
运行时韧性与分布式执行#
- 幂等设计:每个阶段读写一致的磁盘表示,重新运行合并新信息而非覆盖,merge 模型为纯追加
- 增量恢复:运行中断后重跑同一命令,自动跳过已分析文件,从断点续扫
- 并发安全:通过
lockedByRunId原子认领文件,多 worker 并行不冲突 - 分布式执行:通过 Vercel Sandbox 微虚拟机扇出至大规模并行(Vercel 自身已扩展至 1000+ 并发 sandbox),沙箱模式下 API key 注入在外部、网络出站仅限编码智能体主机
CLI 子命令#
| 命令 | 功能 |
|---|---|
scan | 正则匹配候选安全敏感位点 |
process | AI 深度调查,产出发现 + 建议 |
process --diff | PR 模式:仅扫描 diff 变更文件,适用于 CI 门控 |
triage | 轻量级 P0/P1/P2 分类(使用较便宜模型) |
revalidate | 二次复核已有发现 |
enrich | 添加 git committer 信息 + 所有权数据 |
report | 单项目 Markdown + JSON 摘要 |
export | 逐发现 JSON 或 Markdown 文件目录 |
metrics | 跨项目统计:严重性、漏洞类型、真阳性率 |
sandbox <cmd> | 在 Vercel Sandbox 微虚拟机上执行任意命令 |
插件系统#
开放六个扩展点:matchers、notifiers、agents、ownership、people、executor(定义于 packages/core/src/plugin.ts),支持自定义扫描匹配器和通知器。
AI 提供商配置#
配置优先级从高到低:
- 显式环境变量:
ANTHROPIC_AUTH_TOKEN+ANTHROPIC_BASE_URL或 OpenAI 对应变量 - Vercel AI Gateway(生产推荐):
AI_GATEWAY_API_KEY=vck_...,一个 key 覆盖 Claude 和 Codex,默认配额适配高并发 - 本地回退:自动使用已登录的 claude / codex 订阅
快速开始#
npx deepsec init # 创建 .deepsec/ 目录
cd .deepsec
pnpm install
pnpm deepsec scan
pnpm deepsec process
pnpm deepsec revalidate # 可选
pnpm deepsec export --format md-dir --out ./findings
适用场景与已知限制#
- 大型 monorepo 全量安全审计(Vercel 自身及 Unkey、dub.co 已实际使用)
- PR 级别安全门控与 CI 集成
- 遗留代码隐藏漏洞挖掘
- 最适合应用与服务类代码库;库/框架类项目需自定义 prompt 和扫描器,适用性待验证
- 单次大规模扫描成本可能达数千至数万美元级别,但无精确量化公式
- 分布式执行强依赖 Vercel Sandbox,非 Vercel 基础设施的替代方案未说明
- npm 包发布状态待确认(GitHub Releases/Packages 页均显示空,可能为预发布阶段)