17611538698
webmaster@21cto.com

Go 刚刚发布了新的漏洞检查器

资讯 0 731 2022-09-23 10:58:11

图片

Go 团队最近挺勤劳,最近又发布了一款名叫 govulncheck 的创新型代码漏洞检测工作,调查结果显示错误处理已移至使用开源编程语言时“最大”挑战列表的顶部。

图片

新的 Go 漏洞工具利用各种来源检测


新的漏洞工具基于 Go 的漏洞数据库。Go 漏洞数据库 (https://vuln.go.dev) 是一个综合性的信息源,其中包含公共 Go module 中可导入包的已知漏洞。这些漏洞数据的上游也有其来源,例如 CVE 和 GHSA,以及 Go 软件包维护者的直接报告。Go 安全团队获取到这些数据后会进行审查,并将其添加到数据库中。

任何人可直接访问 https://pkg.go.dev/vuln/ 查看 Go 漏洞数据库。有关该数据库的更多信息,查看 go.dev/security/vuln/database。


可以使用它提供的独立 govulncheck 工具进行检测,也可以通过 vulncheck 包进行,这个扩展包可与 VS Code 或 JetBrains GoLand 等主流 IDE 集成。

根据官方介绍,“Go 工具通过显示代码实际调用的函数中的漏洞,来减少执行结果中的噪音”,用来解决开发人员面临的常见问题,即包或库被报告为不安全的地方,但该漏洞是否与特定应用程序中的代码上下文相关并不明显。

新的 govulncheck 命令让 Go 开发者能够了解可能影响其项目的已知漏洞。govulncheck 通过分析代码库,并仅根据代码中的哪些函数传递调用易受攻击的函数来发现实际影响的漏洞。要开始使用 govulncheck,先运行以下命令:
$ go install golang.org/x/vuln/cmd/govulncheck@latest$ govulncheck ./...


govulncheck 是一个独立的工具,团队未来计划将该工具集成到主要的 Go 发行版中。目前,Go 安全团队已将漏洞检测功能集成到现有的 Go 工具和服务中,例如 Go package discovery site,以及像下面这样的页面,显示了 golang.org/x/text 每个版本中的已知漏洞。


该工具发布非常及时,因为 Go 的新调查显示开发人员发现评估第三方库和他们自己的代码的安全性具有挑战性。

在调查中,有5,752 名开发者里有 42% 的人表示他们很难应用最佳实践来编写安全代码,45% 的人发现很难验证其代码,57% 的人认为评估库安全性具有挑战性。

以上调查之背景是 Go v1.18  3 月发布的最新结果,它被描述为“大规模发布”和“对编程语言的最大改变”。

大概 Go 最大的变化是引入了泛型,以及用于发现潜在安全问题或错误的内置模糊测试、用于简化处理多个模块的工作区以及在 ARM64 架构上的性能提高近 20%。

据调查,大约 94% 的开发人员打算在 Go 语言中使用泛型,尽管到目前为止只有 14% 的开发人员在生产型代码中使用。但这只是时间问题,但一些受访者报告了当前实现中的阻碍,例如需要参数化方法。

图片图片

VSCode 是最受欢迎的 Go 代码编辑器,自去年以来从 42% 增加到 45%,GoLand 以 34% 的份额稳居第二。Go 开发人员更喜欢使用 Linux 进行开发(59%),而 Mac(52%)排在第二位。只有 23% 的用户使用 Windows,13% 的用户使用 Windows Subsystem for Linux(注意,由于用户使用多种环境,这些数字的总和超过 100%)。

图片

此外 93% 的Go 系统部署到 Linux,只有 16% 部署到 Windows。只有 3% 的开发者会编译 Go 为 WebAssembly 进行部署。

图片

虽然 93% 的受访者表示自己对 Go 语言感到满意,但 11% 的受访者认为错误处理和使用堆栈跟踪是使用Go时面临的最大挑战。与许多其它语言不同,Go 目前不支持 ...catch 异常,而是要使用自己的例外处理与恢复方法。

编辑:场长
参考:
https://devclass.com/2022/09/12/go-new-vulnerability-checker-released-survey-shows-developers-in-search-of-better-error-handling/

评论