全球 Go 社区从一开始就接受了 GitHub——作为代码协作的地方和发布包的地方——导致 Go 成为今天 GitHub 上排名前 15 的编程语言之一。我们很高兴地宣布 GitHub 的供应链安全功能现已可用于 Go 模块,这将有助于 Go 社区发现、报告和预防安全漏洞。 Go 的创建部分是为了解决管理大型软件中的依赖项的问题。 GitHub 是开源 Go 模块最受欢迎的主机。今天宣布的功能不仅会帮助 GitHub 用户,还会帮助任何依赖 GitHub 托管模块的人。我们很高兴 GitHub 正在投资于有益于整个 Go 生态系统的改进,我们期待未来与他们进行更多合作。 – Steve Francia,产品负责人:Go Language @ Google Go 模块于 2019 年推出,使依赖管理更容易,版本信息更明确,根据 Go 开发人员调查 2020 已获得近乎普遍的采用。下面,我将向您介绍 GitHub 的每个供应链安全功能如何与 Go 模块配合使用,以提高 Go 社区的安全性。 GitHub 的咨询数据库是一个开放的安全咨询数据库,专注于为开发人员提供高质量、可操作的漏洞信息。它在知识共享署名 4.0 下获得许可,因此数据可以在任何地方使用。到目前为止,我们已经发布了 150 多个现有的 Go 建议,并且随着我们管理现有漏洞和对新发现的漏洞进行分类,这个数字每天都在增长。如果您是 Go 模块维护者,您可以使用安全公告来协调披露漏洞。您可以与漏洞报告者(例如安全研究人员)合作,在公开宣布漏洞之前私下讨论和修复漏洞。安全公告还使您可以轻松地为您的公告请求常见漏洞和暴露 (CVE) 标识号,并将其发布到国家漏洞数据库 (NVD)。 GitHub 的依赖关系图分析存储库的 go.mod 文件以了解存储库的依赖关系。除了安全建议之外,依赖关系图还提供了提醒开发人员注意易受攻击的依赖项所需的信息。要查看存储库检测到的依赖项,请选择存储库的 Insights 选项卡,然后从左侧边栏中选择 Dependency graph。
默认情况下为公共存储库启用依赖关系图,但您必须为私有存储库启用它。如果您的公共存储库的依赖关系图尚未填充,很快就会填充。如果您迫不及待,可以通过将更改推送到 go.mod 文件来触发更新。为了帮助防止引入新的漏洞,您可以在审查拉取请求时使用依赖项审查来查看对 go.mod 文件所做更改的影响。当您在使用的 Go 模块中发现新漏洞时, Dependabot 警报会通知您。您可以使用我们新的通知配置来微调您收到的通知。有什么比对脆弱的依赖项发出警报更好的呢?获取拉取请求,自动将易受攻击的 Go 模块升级到没有漏洞的版本!这正是 Dependabot 安全更新所做的。我们发现,自动生成拉取请求以更新易受攻击的依赖项的存储库比那些没有的存储库修补软件的速度快 40%。立即开始保护您的 Go 存储库,或了解有关 GitHub 的每个供应链安全功能的更多信息: