用途
该技能面向安全工程师,用于执行软件成分分析(SCA),借助 Google 的 OSV-Scanner 检测项目依赖中已知的安全漏洞。适用于需要检查依赖漏洞、执行 SCA 或审计第三方库的场景,覆盖所有主流包生态系统。
主要能力
- 扫描项目目录、指定锁文件或 SBOM 文件中的依赖漏洞。
- 支持多种包生态系统的锁文件,包括:
- npm:package-lock.json、yarn.lock、pnpm-lock.yaml
- Python:requirements.txt、Pipfile.lock、poetry.lock
- Go:go.sum
- Rust:Cargo.lock
- Java:pom.xml、gradle.lockfile
- .NET:packages.lock.json
- Ruby:Gemfile.lock
- PHP:composer.lock
- 输出 JSON 格式结果,便于解析和展示。
- 可跳过 Git 扫描。
使用方式
前置条件
需先安装 OSV-Scanner,可通过以下命令安装:
go install github.com/google/osv-scanner/cmd/osv-scanner@latest
或下载二进制文件。安装后验证:
osv-scanner --version
操作步骤
- 确定目标:项目目录或特定锁文件。
- 运行扫描:
- 扫描目录:osv-scanner -r --json <target-directory> > osv-results.json
- 扫描指定锁文件:osv-scanner --lockfile=package-lock.json --json
- 扫描 SBOM:osv-scanner --sbom=sbom.json --json
- 跳过 Git 扫描:osv-scanner -r --skip-git --json <directory>
- 解析结果:读取 JSON 输出,按表格形式呈现发现的问题,包含序号、OSV ID、严重程度、包名、已安装版本、修复版本、摘要、生态系统。
- 总结:提供扫描的依赖总数与发现的漏洞数对比;优先列出严重/高危发现;为每个存在漏洞的包提供升级命令;为每个发现提供 OSV 公告链接。
适用场景
- 检查项目依赖是否存在已知漏洞。
- 执行软件成分分析(SCA)。
- 审计第三方库的安全性。
- 在 CI/CD 流程中集成依赖漏洞扫描。
限制
- 需要预先安装 OSV-Scanner。
- 扫描结果依赖于 OSV 数据库的覆盖范围。
- 具体支持的锁文件类型以资料所列清单为准,其他生态系统的支持情况暂未提供。