鹏飞百科

21434漏洞管理(管理漏洞有哪些)

近年来针对软件供应链的安全问题越来越突出,从之前的语言模块投毒的,最近PyPI

远程执行漏洞,还有今年年初的Java 基础日志库Log4j 安全漏洞都充分展现了这个问题。为了应付这个问题,Golang新推出了漏洞管理支持,用来帮助Golang开发人员了解已知漏洞和解决供应链安全威胁。本文我们就来介绍一下Golang漏洞管理机制。

21434漏洞管理(管理漏洞有哪些)

概述

Go最新推出了漏洞管理工具来分析代码库和发现依赖库中已知的漏洞。工具由Go 漏洞数据库提供支持,由Go 安全团队维护。Go 的工具仅通过暴露漏洞,解决代码和依赖供应链中存在的安全问题,整个架构如下图所示:

21434漏洞管理(管理漏洞有哪些)

Go漏洞数据库

Go 漏洞数据库( vuln.go.dev ) 是一个漏洞综合资源库,记录了Golang 公共模块中已知漏洞的信息。

漏洞数据收集了现有公共漏洞数据库(例如CVE 和GHSA)的数据以及来自Go包维护者的直接上报报的信息,以及通过go项目中安全补丁包的发布的信息。

所有以上的数据有Go 安全团队会审查并将其添加到数据库中。

Golang官方鼓励各个包维护者积极响应安全问题,并能及时报告自己项目中的公共漏洞的信息和机器漏洞更新的信息。

所有漏洞数据信息都可以通过浏览器中在pkg.go.dev/vuln公开浏览。

21434漏洞管理(管理漏洞有哪些)

govulncheck :漏洞检测

新推出的govulncheck 命令行工具用来帮助Go 开发者用户了解其项目和依赖的保重已知漏洞的可靠方法。govulncheck 会自动分析代码库并仅显示代码和软件供应链的安全情况,基于代码中的正在传递调用函数和易受攻击的函数。

可以在项目通过运行以下命令安装和使用govulncheck:

go install golang.org/x/vuln/cmd/govulncheck@latest

govulncheck ./…

目前Govulncheck是一个频繁更新和快速迭代的独立工具,未来有可能计划将govulncheck 工具集成到Go 发行版中。

将漏洞检查直接集成到其他工具和流程中,可以使用vulncheck 包导出govulncheck的检查结果,并作为Golang API 的功能。

集成

尽早了解漏洞总是更好是在开发和部署过程中。为此,将漏洞检测集成到现有的Golang工具和服务中,例如Go 包搜索站。

例如,在golang.org/x/text显示每个版本的中的已知漏洞。通过VS Code Go 扩展的漏洞检查功能也即将推出。

21434漏洞管理(管理漏洞有哪些)