Google 发布 OSV-Scanner:开源漏洞扫描工具
Google 发布了 OSV-Scanner,这是一个开源的前端界面工具,用于与 Open Source Vulnerability (OSV) 数据库 进行交互。OSV 数据库是一个分布式的开源数据库,以 OSV 格式存储漏洞信息。OSV-Scanner 通过分析项目的依赖关系,并与 OSV 数据库进行比对,展示与项目相关的所有漏洞。
主要功能与工作原理
- 依赖分析:OSV-Scanner 通过分析项目的清单文件(manifests)、软件物料清单(SBOMs)和提交哈希(commit hashes),确定项目使用的所有依赖项。
- 漏洞查询:基于依赖信息,OSV-Scanner 查询 OSV 数据库,并报告与项目相关的漏洞。漏洞信息可以以表格形式或基于 JSON 的 OSV 格式呈现。
- OSV 格式:OSV 格式是一种机器可读的 JSON 模式,用于呈现漏洞信息。该格式旨在与开源包中使用的命名和版本规范保持一致。
使用示例
- 扫描目录:通过命令
osv-scanner -r /path/to/your/dir可以递归扫描目录中的锁文件、SBOMs 和 git 目录。目前支持 SPDX 和 CycloneDX SBOMs,以及多种锁文件(如 yarn.lock、composer.lock、go.mod 等)。 - 扫描 Docker 镜像:通过命令
osv-scanner --docker image_name:latest可以扫描 Debian 镜像中安装的包,并提取相关漏洞信息。此功能需要安装 Docker,且目前不支持扫描 Docker 容器的文件系统。
配置与扩展功能
- 忽略漏洞:OSV-Scanner 支持通过漏洞 ID 忽略特定漏洞,并可选择设置忽略的过期日期和原因。忽略的漏洞在配置文件中通过
IgnoreVulns键指定。 - 与 OpenSSF Scorecard 集成:OSV-Scanner 已集成到 OpenSSF Scorecard 的漏洞检查中,扩展了 Scorecard 的分析范围,不仅包括项目的直接漏洞,还包括项目依赖的漏洞。
未来计划
Google 软件工程师 Rex Pan 透露了 OSV-Scanner 的未来发展方向:
- 独立 CI 操作:团队计划提供一个独立的 CI 操作,以便进一步集成到工作流程中。
- 改进 C/C++ 支持:团队计划通过为 CVE 添加精确的提交级别元数据,构建高质量的 C/C++ 漏洞数据库。
获取与许可
OSV-Scanner 已在 GitHub 上发布,采用 Apache License 2.0 许可。更多详细信息可参考 Google 的 发布博客文章。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。