供应链安全是当今软件开发中最重要的部分之一,GitHub 为了让开发者能够轻松实现安全开发,此前推出了一个名为 Advisory Database 的开放安全咨询数据库,它专注于为开发者提供高质量、可操作的漏洞信息。
继上个月 Advisory Database 扩展了对 Rust 编程语言的支持后(点击查看报道),Advisory Database 的覆盖范围扩大到八个支持的编程语言生态:Composer (PHP)、 Go 、Maven、npm、NuGet、pip、RubyGems 和 Rust。近日 GitHub 为了进一步增强 npm 的安全性,为 Advisory Database 引入了 npm audit
的支持。
npm audit 是一个命令,你可以在 Node.js 应用程序中运行,以扫描你的项目依赖中已知的安全漏洞 —— 扫描完成后你会得到一个 URL,通过它你可以了解漏洞的更多详情,以及关于哪些版本已经修复了这个漏洞的信息。此外,npm install 命令也会使用这些信息来给你一个简单的问题概述。
而 Advisory Database 包含已映射到 GitHub 依赖关系图跟踪的软件包的安全漏洞列表,目前已包含近 5200 个安全漏洞的信息,为 Dependabot 等重要的安全 工具 提供支持。GitHub 会从以下来源向 Advisory Database 添加漏洞:
由于 Advisory Database 会从 npm 安全通告数据库中获取漏洞信息,开发者因此可以无需在两个地方查看他们的依赖关系的安全通告,不过即便如此每个数据库的模式之间仍然存在一定的差异。这种差异使得添加新功能变得更加困难,同时也给安全工程师造成了额外的工作。
现如今,GitHub 在 Advisory Database 的基础上增加了一个代理,它使用了 npm audit
的协议。这意味着每一个支持安全审计的 npm CLI 版本现在都可以直接与 Advisory Database 对话。
GitHub 还将 npmjs.com 上的建议重定向到 Advisory Database, npm audit
现在将返回 Advisory Database 的 URL。这意味着开发者可以查看建议,也可以以更高级的方式搜索和 排序 顾问。每个开发者都能从 Advisory Database 中获得相同的、高质量的漏洞信息,GitHub 将继续专注于保持在 npm 和 GitHub 上进行开发的安全性。