代码安全扫描工具不少,但大多数只能发现表面问题——硬编码的密钥、过时的依赖、常见的 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 扫描一下自己的项目代码,可以发现一些传统工具容易遗漏的安全问题。特别是在项目上线前做一次深度扫描,能有效降低被攻击的风险。
© 版权声明
THE END
















暂无评论内容