Deepsec:Vercel 出品的 AI 代码安全漏洞扫描器,用 Agent 挖掘深层漏洞

代码安全扫描工具不少,但大多数只能发现表面问题——硬编码的密钥、过时的依赖、常见的 SQL 注入模式。对于更深层的逻辑漏洞和业务逻辑缺陷,传统工具往往无能为力。

Deepsec 是 Vercel Labs 最新开源的 AI 代码安全扫描器。它不是简单地匹配模式,而是用 AI Agent 深入理解代码逻辑,发现传统工具难以检测的安全漏洞。

项目简介

Deepsec(项目地址:https://github.com/vercel-labs/deepsec)由 Vercel 团队开发,GitHub 上已经获得超过 1500 Star。它的核心卖点是用 AI Agent 代替传统的正则表达式和静态分析规则,能够理解代码的上下文和业务逻辑。

与传统扫描器的区别

传统代码安全扫描器

  • 基于正则表达式和预定义规则
  • 只能发现模式匹配的问题(如硬编码密钥、已知漏洞模式)
  • 误报率高,很多”警告”其实是正常的代码
  • 无法理解业务逻辑

Deepsec

  • 用 AI 理解代码语义和业务逻辑
  • 能发现深层的逻辑漏洞(如权限绕过、数据竞争、时序攻击)
  • 通过上下文分析降低误报率
  • 能理解”这段代码在做什么”而不只是”这段代码长什么样”

功能亮点

  • 深度代码分析:AI Agent 会追踪数据流和控制流,理解代码的完整执行路径
  • 多语言支持:支持 JavaScript/TypeScript、Python、Go、Rust、Java 等主流语言
  • 框架感知:理解 Next.js、Express、FastAPI、Spring 等框架的安全约定
  • 漏洞分类:按严重程度(Critical/High/Medium/Low)分类报告
  • 修复建议:不只是告诉你哪里有问题,还会给出具体的修复代码
  • CI/CD 集成:可以集成到 GitHub Actions、GitLab CI 等自动化流程中

安装和使用

安装

npm install -g @vercel-labs/deepsec

或者用 npx 直接运行(推荐,不需要全局安装):

npx @vercel-labs/deepsec scan

扫描整个项目

cd your-project
npx @vercel-labs/deepsec scan .

Deepsec 会扫描项目中的所有代码文件,分析安全风险。

扫描指定目录或文件

npx @vercel-labs/deepsec scan ./src/api
npx @vercel-labs/deepsec scan ./src/auth.ts

输出报告

默认输出到终端,也可以输出为 JSON 或 HTML 报告:

npx @vercel-labs/deepsec scan . --format json --output report.json
npx @vercel-labs/deepsec scan . --format html --output report.html

CI/CD 集成

在 GitHub Actions 中使用:

# .github/workflows/security.yml
name: Security Scan
on: [push, pull_request]
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npx @vercel-labs/deepsec scan . --format json --output report.json
      - uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: report.json

能发现哪些漏洞

Deepsec 特别擅长发现以下类型的安全问题:

  • 权限绕过:API 端点缺少认证或授权检查
  • 数据泄露:敏感数据被意外暴露在响应中
  • 注入攻击:SQL 注入、NoSQL 注入、命令注入
  • SSRF:服务端请求伪造
  • CSRF:跨站请求伪造
  • 不安全的反序列化:可能被利用执行任意代码
  • 竞态条件:多线程/并发场景下的安全问题
  • 密码学误用:弱加密算法、不安全的随机数生成

配置文件

可以在项目根目录创建 .deepsec.yml 配置文件:

# .deepsec.yml
scan:
  languages: [typescript, javascript]
  exclude:
    - node_modules
    - dist
    - "*.test.ts"
  severity_threshold: medium

rules:
  - id: auth-bypass
    enabled: true
  - id: sql-injection
    enabled: true
  - id: hardcoded-secrets
    enabled: false  # 已有其他工具覆盖

与其他安全工具的配合

Deepsec 并不是要取代所有安全工具,而是与它们互补:

  • Snyk/Dependabot:负责依赖库的已知漏洞,Deepsec 负责你自己的代码
  • ESLint Security:基于规则的检查,Deepsec 做深度语义分析
  • Semgrep:模式匹配扫描,Deepsec 理解代码逻辑
  • SonarQube:综合代码质量,Deepsec 专注安全漏洞

适合谁用

  • Web 应用开发者:特别是 Next.js、Express、FastAPI 等框架的用户
  • 站长:检查自己网站的 API 和后端代码安全性
  • 安全工程师:作为代码审计的辅助工具
  • CI/CD 流水线:每次代码提交自动扫描
  • 开源项目维护者:在合并 PR 前检查安全问题

注意事项

  • AI 扫描需要调用模型,可能产生 API 费用(具体取决于使用的模型)
  • 首次扫描可能较慢,AI 需要理解整个项目的结构
  • AI 不是万能的,Deepsec 的结果仍需要人工审核
  • 建议与传统安全工具配合使用,不要只依赖 AI 扫描

简评

Deepsec 代表了代码安全扫描的一个新方向:用 AI 理解代码而不仅仅是匹配模式。Vercel 团队的出品质量有保障,1500+ Star 说明社区认可度很高。对于站长来说,定期用 Deepsec 扫描一下自己的项目代码,可以发现一些传统工具容易遗漏的安全问题。特别是在项目上线前做一次深度扫描,能有效降低被攻击的风险。

来源:https://github.com/vercel-labs/deepsec

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容