核心用法
dep-audit 是一款面向多语言项目的依赖漏洞扫描工具,支持 npm、pip、Cargo、Go 四大生态。无需 API 密钥,无需配置文件,通过检测项目中的锁文件(package-lock.json、Pipfile.lock、Cargo.lock、go.sum 等)自动触发对应审计工具。
工作流程分为四步:
1. 检测阶段:运行 detect.sh 扫描目录,识别存在的锁文件及可用 CLI 工具
2. 审计阶段:按生态调用专用脚本(audit-npm.sh 等),输出标准化 JSON
3. 聚合阶段:通过 aggregate.sh 合并多生态结果,生成统一 JSON 与 Markdown 报告
4. 呈现阶段:向用户展示漏洞统计(按严重程度分级),优先列出 Critical/High 风险项
Discord 场景下支持分段投递,首消息限 1200 字符并提供交互按钮(查看完整报告/修复建议/SBOM 生成)。
显著优点
- 零配置启动:无需注册 API、无需填写密钥,开箱即用
- 安全优先设计:默认只读模式,修复命令需用户显式确认后才执行
- 多生态覆盖:单技能覆盖前端、Python、Rust、Go 主流技术栈
- 结构化输出:标准化 JSON 便于 CI/CD 集成,Markdown 报告便于人工审阅
- SBOM 生成:支持一键生成 CycloneDX 格式的软件物料清单
- 错误容错:单生态审计失败不中断整体流程,超时自动跳过
潜在缺点与局限性
- 版本限制:v0.1.x 仅支持 npm 审计,若项目使用 Yarn 或 pnpm 需手动运行
yarn audit/pnpm audit - 依赖公开数据库:仅覆盖已知 CVE(OSV、GitHub Advisory DB、RustSec),无法检测零日漏洞或运行时安全问题
- 工具链依赖:审计与聚合阶段强制依赖
jq,未安装时会阻断流程 - 网络要求:需连接公共漏洞数据库,离线环境无法使用
- 修复粒度有限:提供的修复命令基于工具原生能力(如
npm audit fix),复杂依赖冲突仍需人工介入
适合人群
- 个人开发者:快速排查 side project 的安全债务
- 中小型团队:在 CI 流水线中做前置安全检查,实现"安全左移"
- 开源维护者:为仓库生成 SBOM 以满足合规要求
- 安全审计人员:批量扫描多技术栈项目,输出标准化漏洞报告
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 误报/漏报 | 数据库更新延迟或版本匹配算法差异可能导致结果偏差 | 结合官方源二次确认,关注 Critical/High 级别的补丁可用性 |
| 供应链攻击 | 若 skill 脚本本身被篡改,可能执行恶意命令 | 校验技能来源(CacheForge 签名),在隔离环境运行 |
| 敏感信息泄露 | 锁文件可能暴露内部依赖版本 | 确保报告输出到安全路径,避免上传至公开仓库 |
| 修复副作用 | `npm audit fix` 等命令可能引入破坏性变更 | 强制建议先切分支(`git checkout -b dep-audit-fixes`),代码审查后合并 |