Go 博客
Go 语言的漏洞管理
我们很高兴地宣布 Go 对漏洞管理提供新支持,这是我们帮助 Go 开发者了解可能影响他们的已知漏洞的第一步。
本文概述了当前可用的内容以及该项目的后续步骤。
概述
Go 提供了工具来分析您的代码库并发现已知漏洞。这些工具由 Go 漏洞数据库支持,该数据库由 Go 安全团队维护。Go 的工具只显示您的代码实际调用的函数中的漏洞,从而减少结果中的干扰。

Go 漏洞数据库
Go 漏洞数据库(https://vuln.go.dev)是关于公共 Go 模块中可导入包的已知漏洞的全面信息来源。
漏洞数据来自现有来源(例如 CVE 和 GHSA)以及 Go 包维护者的直接报告。这些信息随后由 Go 安全团队审核并添加到数据库中。
我们鼓励包维护者贡献有关其项目中公共漏洞的信息,并更新有关其 Go 包中现有漏洞的信息。我们的目标是使报告过程顺畅便捷,因此请向我们发送您的建议以进行改进。
Go 漏洞数据库可以在浏览器中访问 pkg.go.dev/vuln 查看。有关数据库的更多信息,请参阅 go.dev/security/vuln/database。
使用 govulncheck 进行漏洞检测
新的 govulncheck 命令是一种低干扰、可靠的方式,可帮助 Go 用户了解可能影响其项目的已知漏洞。Govulncheck 分析您的代码库,并根据您的代码中哪些函数间接调用了易受攻击的函数,仅显示实际影响您的漏洞。
您可以使用 go install 安装最新版本的 govulncheck
$ go install golang.org/x/vuln/cmd/govulncheck@latest
然后,在您的项目目录中运行 govulncheck
$ govulncheck ./...
Govulncheck 是一个独立工具,以便在我们收集用户反馈时进行频繁更新和快速迭代。从长远来看,我们计划将 govulncheck 工具集成到 Go 的主发行版中。
集成
尽早在开发和部署过程中了解漏洞总是更好的。要将漏洞检查集成到您自己的工具和流程中,请使用 govulncheck -json。
我们已将漏洞检测集成到现有的 Go 工具和服务中,例如 Go 包发现网站。例如,此页面显示了 golang.org/x/text 各个版本中的已知漏洞。通过 VS Code Go 扩展的漏洞检查功能也即将推出。
后续步骤
我们希望您会发现 Go 对漏洞管理的支持很有用,并帮助我们改进它!
Go 对漏洞管理的支持是一个新功能,目前正在积极开发中。您可能会遇到一些错误和限制。
我们非常希望您能通过以下方式贡献并帮助我们改进:
我们很高兴与您合作,共同构建一个更好、更安全的 Go 生态系统。
下一篇文章:Go 开发者调查 2022 年第二季度结果
上一篇文章:Go 1.19 发布了!
博客索引