OSV-Scanner 作为 OSV.dev 数据库的前端
谷歌最近发布了 OSV-Scanner, 一种使开源开发人员可以轻松访问的工具 检查代码和应用程序中未修补的漏洞,考虑到与代码相关的整个依赖链。
OSV-Scanner 允许检测应用程序由于用作依赖项的库之一出现问题而变得易受攻击的情况。 在这种情况下,可以间接使用易受攻击的库,即通过另一个依赖项调用。
去年,我们努力为开源软件的开发人员和消费者改进漏洞分类。 这涉及发布开源漏洞架构 (OSV) 和启动 OSV.dev 服务,这是第一个分布式开源漏洞数据库。 OSV 使所有不同的开源生态系统和漏洞数据库能够以简单、准确和机器可读的格式发布和使用信息。
软件项目通常建立在堆积如山的依赖之上:不是从头开始, 开发人员整合外部软件库 在项目中添加附加功能。 但是,开源包o 通常包含未记录的代码片段 从其他库中提取的。 这种做法创造了什么 被称为“传递依赖” 在软件中意味着它可能包含多层难以手动跟踪的漏洞。
在过去的一年里,传递依赖性已成为开源安全风险的一个日益增长的来源。 Endor Labs 最近的一份报告发现,95% 的开源漏洞存在于传递或间接依赖关系中,而来自 Sonatype 的另一份报告也强调,传递依赖关系占影响开源的七分之六的漏洞。
根据Google的说法, 新工具将从寻找这些传递依赖关系开始 通过分析清单、可用的软件物料清单 (SBOM) 和提交哈希。 然后它将连接到开源漏洞数据库(OSV)以显示相关漏洞。
OSV扫描器 可以自动递归扫描 目录树,通过是否存在 git 目录(有关通过提交哈希分析确定的漏洞的信息)、SBOM(SPDX 和 CycloneDX 格式的软件材料清单)文件、清单或来自 Yarn 等归档包的块管理员来识别项目和应用程序、NPM、GEM、PIP 和 Cargo。 它还支持扫描基于 Debian 存储库中的包构建的 docker 容器映像的填充。
OSV-Scanner 是这项工作的下一步,因为它提供了一个官方支持的 OSV 数据库接口,将项目的依赖项列表与影响它们的漏洞联系起来。
La 有关漏洞的信息取自 OSV 数据库 (开源漏洞),涵盖有关 Сrates.io (Rust)、Go、Maven、NPM (JavaScript)、NuGet (C#)、Packagist (PHP)、PyPI (Python)、RubyGems、Android、Debian 和Alpine,以及托管在 GitHub 上的 Linux 内核漏洞数据和项目漏洞报告。
OSV数据库 反映问题修正状态, 确认漏洞的出现和更正,受漏洞影响的版本范围,带有代码的项目存储库链接和问题通知。 提供的 API 允许您在提交和标记级别跟踪漏洞的表现形式,并分析衍生产品和依赖项对问题的暴露程度。
最后值得一提的是,项目代码是用 Go 编写的,并在 Apache 2.0 许可下分发。 您可以在以下链接中查看有关它的更多详细信息。
开发者可以从 osv.dev 网站下载并试用 OSV-Scanner 或使用 OpenSSF 记分卡漏洞检查 在 GitHub 项目中自动运行扫描器。
成为第一个发表评论