原文在这里[1]
原文作者:Julie Qiu, for the Go security team 发布于 13 July 2023
我们很高兴地宣布,govulncheck v1.0.0 已经发布,同时还发布了用于将扫描集成到其他工具中的 API 的 v1.0.0 版本!
Go对漏洞管理的支持首次在去年九月宣布[2]。自那以后,我们进行了多次更改,最终在今天发布了最新版本。
这篇文章介绍了Go更新后的漏洞工具,并说明了如何开始使用它。我们最近还发布了一份安全最佳实践指南[3],帮助你在Go项目中优先考虑安全性。
Govulncheck
Govulncheck[4]是一个命令行工具,帮助Go用户在项目依赖中查找已知的漏洞。该工具可以分析代码库和二进制文件,并通过优先考虑实际调用你代码的函数中的漏洞来减少干扰。
你可以通过go install[5]来安装最新版:
代码语言:javascript复制$ go install golang.org/x/vuln/cmd/govulncheck@latest
然后在你的项目中执行govulncheck:
代码语言:javascript复制$ govulncheck ./...
请查看govulncheck[6]教程,以获取有关如何开始使用该工具的其他信息。
在v1.0.0版本中,现在有一个稳定的API可用,该API的说明位于golang.org/x/vuln/scan[7]。该API提供了与govulncheck命令相同的功能,使开发人员能够将安全扫描器和其他工具与govulncheck集成。例如,可以查看与govulncheck集成的osv-scanner示例[8]。
数据库
Govulncheck由Go漏洞数据库https://vuln.go.dev[9]提供支持,该数据库提供了关于公共Go模块中已知漏洞的详尽信息。您可以在pkg.go.dev/vuln[10]上浏览数据库中的条目。
自初始发布以来,我们已更新了数据库API[11]以提高性能并确保长期的可扩展性。提供了一个实验性工具来生成您自己的漏洞数据库索引,位于golang.org/x/vulndb/cmd/indexdb[12]。
如果您是Go包维护者,我们鼓励您贡献关于您项目中公开漏洞的信息[13]。
有关Go漏洞数据库的更多信息,请参见go.dev/security/vuln/database[14]。
集成
漏洞检测现已集成到许多Go开发人员常用的工具套件中。
可以在 pkg.go.dev/vuln 上浏览来自Go漏洞数据库的数据。漏洞信息还会在pkg.go.dev[15]的搜索和包页面中显示。例如,golang.org/x/text/language[16]的版本页面会显示该模块旧版本中的漏洞。
您还可以使用Visual Studio Code的Go扩展直接在编辑器中运行 govulncheck。详细操作请参见教程[17]。
最后,我们知道许多开发人员希望将 govulncheck 作为CI/CD系统的一部分运行。作为起点,我们为 govulncheck 提供了一个GitHub Action[18],以便与您的项目集成使用。
视频演示
如果您对上述集成感兴趣,今年我们在Google I/O大会上展示了这些工具的演示,我们在演讲中介绍了如何使用Go和Google构建更安全的应用程序[19]。
反馈
我们一如既往地欢迎您的反馈!请查看有关如何贡献和帮助我们进行改进的详细信息[20]。
我们希望您会发现Go对漏洞管理的最新支持对您有用,并与我们一起建立更安全可靠的Go生态系统。
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)[21]进行许可,使用时请注明出处。 author: mengbin[22] blog: mengbin[23] github: mengbin92[24] cnblogs: 恋水无意[25]
References
[1]
这里: https://go.dev/blog/govulncheck
[2]
宣布: https://go.dev/blog/vuln
[3]
安全最佳实践指南: https://go.dev/security/best-practices
[4]
Govulncheck: https://golang.org/x/vuln/cmd/govulncheck
[5]
go install: https://pkg.go.dev/cmd/go#hdr-Compile_and_install_packages_and_dependencies
[6]
govulncheck: https://go.dev/doc/tutorial/govulncheck
[7]
golang.org/x/vuln/scan: https://golang.org/x/vuln/scan
[8]
govulncheck集成的osv-scanner示例: https://github.com/google/osv-scanner/blob/d93d6b73e90ae392fe2b1b64a33bda6976b65b2d/internal/sourceanalysis/go.go#L20
[9]
https://vuln.go.dev: https://vuln.go.dev/
[10]
pkg.go.dev/vuln: https://pkg.go.dev/vuln
[11]
数据库API: https://go.dev/security/vuln/database#api
[12]
golang.org/x/vulndb/cmd/indexdb: https://golang.org/x/vulndb/cmd/indexdb
[13]
贡献关于您项目中公开漏洞的信息: https://go.dev/s/vulndb-report-new
[14]
go.dev/security/vuln/database: https://go.dev/security/vuln/database
[15]
pkg.go.dev: https://pkg.go.dev/vuln
[16]
golang.org/x/text/language: https://pkg.go.dev/golang.org/x/text/language?tab=versions
[17]
教程: https://go.dev/doc/tutorial/govulncheck-ide
[18]
GitHub Action: https://github.com/marketplace/actions/golang-govulncheck-action
[19]
如何使用Go和Google构建更安全的应用程序: https://www.youtube.com/watch?v=HSt6FhsPT8c&ab_channel=TheGoProgrammingLanguage
[20]
如何贡献和帮助我们进行改进的详细信息: https://go.dev/security/vuln/#feedback
[21]
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh
[22]
mengbin: mengbin1992@outlook.com
[23]
mengbin: https://mengbin.top
[24]
mengbin92: https://mengbin92.github.io/
[25]
恋水无意: https://www.cnblogs.com/lianshuiwuyi/