掌握Golang程序漏洞检测神器:govulncheck的安装与使用(一)
发表时间: 2023-08-31 22:15
govulncheck 是一个命令行工具,可以帮助 Golang 开发者快速找到项目代码和依赖的模块中的安全漏洞。该工具可以分析源代码和二进制文件,识别代码中对这些漏洞的任何直接或间接调用。
默认情况下,govulncheck 通过 Go 漏洞数据库 https://vuln.go.dev 提供的接口查询相关的模块是否包含漏洞(查询接口的请求只包含模块路径,不包含程序的代码或其他属性)。
安装之前需要将 Go 版本升级到1.18及以上,使用如下命令安装最新版本的 govulncheck:
$ go install golang.org/x/vuln/cmd/govulncheck@latest
在项目的主目录(包含 go.mod 文件的目录)执行如下命令进行漏洞扫描:
$ govulncheck ./...
govulncheck 也可以集成到自己的 CI/CD 系统里面,govulncheck 考虑到这方面的需求,所以输出结果可以选择 json 方式,例如:
$ govulncheck -json ./...
如果使用 govulncheck 扫描编译好的二进制文件,需要使用参数 -mode=binary 并跟上二进制文件的路径,例如:
$ govulncheck -mode=binary $HOME/go/bin/my-go-program
默认情况下,项目如果不存在漏洞,govulncheck 将成功退出(状态码为0),如果存在漏洞,则返回非0的状态码。如果提供了 -json 参数,无论检测到多少漏洞,都会成功退出,即状态码为0。
使用 govulncheck 需要注意的点如下: