前言
我们很高兴地宣布 Go 对漏洞管理的最新支持,这是我们为帮助 Go 开发者了解可能影响他们的已知漏洞而迈出的第一步。
这篇文章概述了这个项目的当前状况和后续计划。
概览
Go 提供的工具可以分析你的代码库并展示出已知的漏洞,该工具由 Go 安全团队设计维护的 Go 漏洞数据库提供支持。Go 只展示代码调用函数中的漏洞,从而减少结果中的噪音。
Go 漏洞数据库
Go 漏洞数据库(https://vuln.go.dev/)是一个囊括了公共 Go 模块中可导入包的已知漏洞的全面信息源。
漏洞数据来自现有来源(如 CVEs 和 GHSAs)以及 Go 软件包维护者的直接报告。这些信息将由 Go 安全团队审查并添加至数据库中。
我们鼓励软件包维护者贡献他们自己项目中的公共漏洞信息,并更新现有漏洞信息。我们旨在让报告漏洞成为一个低阻力的过程,所以请把你的建议发送给我们,以便于我们进行改进。
我们可以在浏览器中查看 Go 漏洞数据库,网址为 pkg.go.dev/vuln。关于数据库的更多信息详见 go.dev/security/vuln/database。
使用 govulncheck 进行漏洞检测
新的 govulncheck 命令是一种低噪音、稳定的方式,让 Go 用户了解可能影响其项目的已知漏洞。Govulncheck 会基于代码中涉及调用易受攻击函数的函数分析你的代码库,展示对你有实际影响的漏洞。你可以在项目中运行以下程序来使用 govulncheck。
$ go install golang.org/x/vuln/cmd/govulncheck@latest
$ govulncheck ./...
Govulncheck 是一个独立的工具,以便在我们收集用户的反馈时可以频繁更新和快速迭代。从长远来看,我们计划将 govulncheck 工具整合到 Go 的主要发行版中。
为了将漏洞检查直接集成到其他工具和流程中,vulncheck 包将 govulncheck 的功能作为 Go API 导出。
集成
在开发和部署过程中尽可能早地了解漏洞总是更好的。为此,我们将漏洞检测整合到现有的 Go 工具和服务中,如Go 软件包发现页。例如,这个页面显示了 golang.org/x/text 每个版本中的已知漏洞。通过 VS Code Go 扩展进行漏洞检查的功能也即将推出。
后续计划
我们希望你能发现 Go 对漏洞管理的支持是有用的,并帮助我们改进它!
Go 漏洞管理是一项正在积极开发中的新功能,可能会有一些错误和局限之处。
我们希望您能在以下方面做出贡献,帮助我们进行改进。
我们很高兴能与你合作,建立一个更好、更安全的 Go 生态系统。
参考资料
- 原文地址:https://go.dev/blog/vuln
- 原文作者:Julie Qiu, for the Go security team
- 本文永久链接:https://github.com/gocn/translator/blob/master/2022/w37_Vulnerability_Management_for_Go.md
- 译者:张宇
- 校对:Fivezh