Go 社区从诞生之初就积极拥抱了 GitHub,如今 GitHub 既是 Go 语言相关项目的代码协作平台,也是发布软件包的地方,也正因如此 Go 编程语言成为了 GitHub 最受欢迎的编程语言之一。为了改善 Go 模块在安全漏洞方面的发现、报告和预防,近日 GitHub 宣布了多项新功能以提升 Go 模块的供应链安全。
根据 GitHub 的说法,他们对 Go 模块在供应链安全方面主要有以下四个方面的改进:
Advisories
GitHub 的 Advisories Database 是一个开源的漏洞信息数据库,专注于为开发者提供高质量的、可操作的漏洞信息。它基于 Creative Commons Attribution 4.0 协议,所以数据可以在任何地方使用。到目前为止,该数据库已经发布了 150 多个相关内容,而且随着 GitHub 对现有漏洞的整理和对新发现漏洞的分类,这个数字将会每天得到增长。
如果你是 Go 模块的维护者,现在还可以使用 Security Advisories 来协调漏洞的披露。你可以与漏洞报告者(如安全研究人员)合作,在公开漏洞详情之前私下讨论并修复漏洞。Security Advisories 还可以让漏洞报告者为所发现的漏洞申请一个 CVE ID,并将它们发布到国家漏洞数据库(NVD)。
依赖关系图
GitHub 的依赖关系图分析了仓库的 go.mod 文件,以了解仓库的依赖关系。依赖关系图与安全公告一起,提供了提醒开发者注意漏洞依赖关系所需的信息。
依赖关系图对于公共仓库是默认启用的,但对于私有仓库来说,你必须手动启用它。为了帮助防止新的漏洞被引入,开发者可以在审查拉取请求时使用依赖性审查来查看对你的 go.mod 文件修改的影响。
Dependabot 警报
GitHub 还在这次更新中加入了 Dependabot,当 Go 模块中发现新的漏洞时,它会向开发者发出通知。通知设置也得到了升级,以便用户对想收到的通知类型进行微调。
Dependabot 安全更新
Dependabot 安全更新可以通过拉动请求,自动将有漏洞的 Go 模块升级到没有漏洞的版本。根据 GitHub 的调查,自动生成拉动请求以更新有漏洞的依赖关系的软件库比不生成拉动请求的软件库快40%。
Google Go 语言产品负责人 Steve Francia 表示:“GitHub 是最受欢迎的开源 Go 模块托管平台。宣布的新功能不仅可以帮助 GitHub 用户,还可以帮助任何依赖 GitHub 托管模块的开发者。我们很高兴 GitHub 在这方面进行的投资,使整个生态系统受益,我们期待着在未来与他们进行更多的合作。“
Go 模块于 2019 年推出,旨在改善依赖性管理。根据 Go Developer Survey 在 2020 年的调查显示,有 76% 的受访者都将 Go 以某种形式在企业中应用。此外,Go 模块的采用如今也在持续增加,96% 的受访者表示这些模块被用于进行软件包管理 —— 而 2019 年则仅有 87% 的受访者将 Go 模块用于这些目的。
调查呈现出来的一个总体趋势似乎表明,其他软件包管理工具的使用正在不断减少。而对 Go 模块的改善也将提升行业整体安全性。
本文转自OSCHINA
本文标题:鉴于 Go 语言的热门程度,GitHub 提高了 Go 模块的供应链安全性
本文地址:https://www.oschina.net/news/152491/github-boosts-security-for-go-modules