做网站,网站推广的方法有哪些?,wordpress 添加顶部公告,wordpress paypal收款前言
不知道大家在开发 go 项目中有没有遇到过一些第三方包或者官方包中出现漏洞的问题#xff0c;这些漏洞可能会影响到代码的功能、性能或者安全性。
现在针对这一问题#xff0c;go 团队提供了 govulncheck 工具#xff0c;帮助开发者快速地发现和修复这些漏洞。
什么…前言
不知道大家在开发 go 项目中有没有遇到过一些第三方包或者官方包中出现漏洞的问题这些漏洞可能会影响到代码的功能、性能或者安全性。
现在针对这一问题go 团队提供了 govulncheck 工具帮助开发者快速地发现和修复这些漏洞。
什么是 govulncheck
govulncheck 是 go 官方提供的一个二进制工具用于检查 go 代码或二进制文件是否存在已知的安全漏洞。
原理
go 安全团队和社区成员共同维护了一个漏洞库 govulndb收集了从 2018 年推出 go module 后 go 相关的漏洞信息。
govulncheck 首先会找出代码中使用的模块和包的版本信息然后通过接口调用漏洞库的最新数据最后进行数据对比将受影响的包或模块列举输出。 上图是 go 官博 提供的系统架构图
漏洞采集。go 安全团队会从多种渠道采集漏洞数据如公开的漏洞数据库 National Vulnerability Database(NVD) 和 GitHub Advisory Database、社区反馈的 https://go.dev/s/vulndb-report-new咱们也可以通过这里将在自己发现的漏洞上报和 go 团队自己修复过的安全漏洞等。更新 go 漏洞数据库。搜集到安全漏洞后go 安全团队会作出评估若是需要处理的会直接进入漏洞数据库。工具集成。对于新的漏洞处理后会相应更新 pkg.go.dev 上的漏洞说明、发布新的 govulncheck 工具。
基本使用
安装使用相对来说比较简单。
通过命令行下载最新版本的工具
go install golang.org/x/vulndb/cmd/govulnchecklatest然后在需要检查的目录下执行
govulncheck ./...执行后输出结果如下会给出漏洞信息以及如何修复的建议。
一些局限
扫描二进制文件的安全漏洞时要求该二进制文件必须是使用 go 1.18 或者更高版本编译的不支持对低版本编译的二进制文件进行安全漏洞扫描。不能够展示 go 二进制文件里扫描出来的安全漏洞的调用图(call graph)这是因为 go 二进制文件并不包含详细的调用链信息。对于二进制文件里的代码也可能发生误报。只会报告 govulncheck 当前执行的 go 编译环境和配置(GOOS/GOARCH)下的漏洞。例漏洞只在 linux 下存在但是开发环境是 windows 的跨平台开发那就可能导致开发环境下不能检测出该漏洞。假设 go 1.18 标准库里才有的漏洞如果当前执行 govulncheck 所在的编译环境的 go 版本是 1.19那也不会报告该漏洞。
详情可见官博 。
总结
govulncheck 是 go 官方提供的一个漏洞检查工具。go 团队从多处采集漏洞并存入自己的漏洞库然后通过 govulncheck 工具对代码或二进制文件进行漏洞扫描。
很棒的一款工具建议在日常的开发流程中CI/CD代码审查等引入漏洞检查能够帮助我们通过 go 来构建高质量、高安全性的程序。
参考
Go 官方博客 govulncheck 1.0.0 版本发布Go 官方博客 govulncheck 的提出Go 官方使用文档Go 语言的安全守护者你用了吗官方 Github 仓库