关于GoKart
GoKart是一款针对Go代码安全的静态分析工具可以从Go在源代码中搜索使用SSA(单静态分配)代码漏洞形式。GoKart跟踪变量和函数参数的来源,以确定输入源是否安全Go与安全扫描程序相比,GoKart能有效减少误报数量。例如,连接到变量的SQL查询传统上可能标记为SQL然而,注入,GoKart在这种情况下,可以确定变量实际上是常量还是类似常量的参数GoKart漏洞不洞。
工具安装
我们可以使用以下安装方法之一GoKart。
(1) go install安装
大多数研究人员可以使用以下安装命令GoKart:
$goinstallgithub.com/praetorian-inc/gokart@latest(2) Release安装
首先,我们需要访问这个项目【Releases并下载GoKart源代码到本地系统。
接下来,我们可以下载checksums.txt验证下载包完整性的文件:
#Checkthechecksumofthedownloadedarchive$shasum-a256gokart_${VERSION}_${ARCH}.tar.gzb05c4d7895be260aa16336f29249c50b84897dab90e1221c9e96af9233751f22gokart_${VERSION}_${ARCH}.tar.gz$catgokart_${VERSION}_${ARCH}_checksums.txt|grepgokart_${VERSION}_${ARCH}.tar.gzb05c4d7895be260aa16336f29249c50b84897dab90e1221c9e96af9233751f22gokart_${VERSION}_${ARCH}.tar.gz然后,提取下载的文档:
$tar-xvfgokart_${VERSION}_${ARCH}.tar.gz最后,将GoKart代码移动到我们的运行路径:
$mv./gokart/usr/local/bin/(3) 源码安装
首先,我们需要使用以下命令将项目源代码克隆到本地:
$gitclonehttps://github.com/praetorian-inc/gokart.git然后切换到项目根目录,构建源代码:
$cdgokart$gobuild最后,将GoKart代码移动到我们的运行路径:
$mv./gokart/usr/local/binDocker支持
构建Docker镜像:
dockerbuild-tgokart.操作容器并执行本地扫描(本地扫描目录需要加载到容器镜像中):
dockerrun-v/path/to/scan-dir:/scan-dirgokartscan/scan-dir操作容器并进行远程扫描(指定私钥进行认证并加载到容器中):
dockerrungokartscan-rhttps://github.com/praetorian-inc/gokart#specifyingaprivatekeyforprivaterepositorysshauthenticationdockerrun-v/path/to/key-dir/:/key-dirgokartscan-rgit@github.com:praetorian-inc/gokart.git-k/key-dir/ssh_key工具使用
针对当前目录Go模块运行GoKart:
#runningwithoutadirectoryspecifieddefaultsto'.'gokartscan<flags>在不同的目录中扫描Go模块:
gokartscan<directory><flags>查看帮助信息:
gokarthelp项目地址
GoKart:【GitHub传送门】