Go安全

本文翻译自《Security》。

此页面为Go开发人员提供一些资源,以提高Go项目的安全性。

(另请参阅:Go开发人员应该知道的Go项目安全最佳实践。)

查找并修复已知的安全漏洞

Go的漏洞检测旨在为开发人员提供低噪声、可靠的工具,以了解可能影响其项目的已知漏洞。有关概述,请从Go漏洞管理体系架构和常见问题页面开始。对于应用方法,请探索以下工具。

使用govulcheck扫描代码以查找漏洞

开发人员可以使用govulcheck工具来确定是否有任何已知的漏洞会影响他们的代码,并根据实际调用的有安全漏洞的函数和方法来确定下一步先做什么。

在编辑器中检测漏洞

VS Code Go扩展可以检查第三方依赖项并发现相关漏洞。

查找你的项目用到的Go模块

Pkg.go.dev是一个用于发现、评估和学习有关go包和模块的更多信息的网站。在pkg.go.dev上发现和评估go包时,如果该版本存在漏洞,你会在页面顶部看到一条横幅。此外,你可以在go包的版本历史页面上看到影响某个版本的它的安全漏洞有哪些。

浏览安全漏洞数据库

Go漏洞数据库直接从Go包维护者以及MITRE和GitHub等外部来源收集数据。报告由Go Security团队策划。

报告Go项目中的安全漏洞

有关如何报告Go项目中的安全漏洞的说明,请参阅Go安全策略。该文章还详细介绍了Go安全团队跟踪问题并向公众披露的过程。有关过去的修复安全漏洞的记录的详细信息,请参阅发布历史记录。根据发布策略,我们在Go包的两个最新主版本上进行安全修复。

使用模糊测试发现意外输入

Go原生提供的模糊测试是一种自动测试,它不断地往程序的入数据来发现Bug。从Go 1.18开始,标准工具链加入模糊测试工具。也可以使用OSS fuzz,它支持原生的Go模糊测试。

使用Go的加密库提供的安全服务

Go的加密库旨在帮助开发人员构建安全的应用程序。请参阅有关加密的Go包golang.org/x/crypto/的文档

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注