搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

google/osv-scanner

安全

用 Go 编写的命令行漏洞扫描器,基于 OSV 数据库检查项目依赖、锁文件和容器镜像中的已知漏洞。

11,434
845
Go
Apache-2.0
创建于 3 年前

项目介绍

OSV-Scanner 是一个命令行漏洞扫描工具,把项目依赖与 OSV 数据库 中的安全公告进行匹配。它是 OSV 官方支持的前端,也是 OSV-Scalibr 库的命令行接口。它可以扫描源码目录、锁文件、容器镜像和操作系统包,面向需要跨语言生态审计依赖的开发者。

支持的语言包括 C/C++、Dart、Elixir、Go、Java、JavaScript、PHP、Python、R、Ruby、Rust,覆盖 npm、pip、yarn、Maven、Go modules、Cargo、gem、Composer、NuGet 等包管理器。容器镜像扫描覆盖 Alpine、Debian、Ubuntu 的系统包,以及 Go、Java、Node、Python 产物。调用分析模式可以判断有漏洞的函数是否真的被使用,从而减少误报;它也能扫描 vendored C/C++ 代码。另有许可证扫描模式,通过 deps.dev 数据把依赖许可证与 SPDX 允许列表进行比对。

安装

推荐从 releases 页面 下载对应平台的预编译二进制;平台相关步骤见 安装文档。从源码构建需要 Go 工具链:

go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest

README 中的说明针对 V2 beta;仍在使用 V1 的项目应参考 V1 文档。

扫描项目

安装后,对源码目录运行递归扫描:

osv-scanner scan source -r /path/to/your/dir

扫描器会遍历目录中的受支持包文件,例如 package.json、go.mod、pom.xml,并输出发现的依赖漏洞。容器镜像的扫描方式类似:

osv-scanner scan image my-image-name:tag

若要检查许可证,加上 --licenses;允许列表以 SPDX 标识提供,例如 osv-scanner --licenses="MIT,Apache-2.0" path/to/directory。支持的锁文件与产物范围见 支持的语言与锁文件说明。

离线与修复模式

下载离线数据库后,扫描不再需要网络访问:

osv-scanner --offline --download-offline-databases ./path/to/your/dir

fix 命令(实验性)会根据依赖深度、最低严重级别、修复策略和投资回报等条件建议升级包版本,目前支持 npm package-lock.json(原地修改)、npm package.json(重新锁定)和 Maven pom.xml(覆盖版本)。npm 示例:

osv-scanner fix --max-depth=3 --min-severity=5 --ignore-dev --strategy=in-place -L path/to/package-lock.json

npm 还提供交互模式,通过 -M 和 -L 分别传入清单与锁文件。项目警告:fix 在不可信项目上运行有风险,可能触发包管理器脚本或访问项目指定的外部仓库,只应对自己信任的代码和产物使用。

数据与隐私

在常规在线模式下,OSV-Scanner 会把包名、版本、生态和文件哈希发送给 OSV.dev API,并向 deps.dev API 查询依赖解析、容器元数据、许可证信息和弃用状态。若使用原生仓库解析而非 deps.dev,还可能查询 Maven Central、npm registry 或 PyPI。这些请求不传输源代码,离线模式会关闭网络请求。

HotRepo 点评

OSV-Scanner 是一个范围明确、可核查的安全工具:它封装 OSV 公告数据,通过命令行扫描暴露出来,文档和源码都在仓库中。HotRepo 记录显示,它在 2026-11-06 的 Go 日榜上以当日新增 31 Star 位列第 22 名;这只是单条快照,说明它曾出现在语言榜上,不能据此判断整体热度。该项目在 2022 年 12 月于 Hacker News 被讨论,评论者当时欢迎围绕 OSV 的开发者友好工具,也有人追问 SBOM 来源;这些讨论针对早期阶段,与当前 V2 beta 无关。对已经在用 OSV、或需要支持离线的多生态依赖审计的团队来说,这个工具直接面向这类工作流。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Vulnerability scanner written in Go that uses osv.dev data
▲ 162 · 14 条评论 · 2022年12月16日
OSV-Scanner
▲ 1 · 0 条评论 · 2022年12月15日