GoKart:用于保护 Go 代码的静态分析工具
GoKart 是 Go 的静态分析工具,它使用 Go 源代码的 SSA(单一静态分配)形式发现漏洞。它能够跟踪变量和函数参数的来源以确定输入源是否安全,与其他 Go 安全扫描器相比,这减少了误报的数量。例如,与变量连接的 SQL 查询传统上可能会被标记为 SQL 注入;但是,GoKart 可以确定变量实际上是常量还是常量等价物,在这种情况下不存在漏洞。
为何打造 GoKart
静态分析是在源代码中查找漏洞的强大技术。然而,该方法存在噪音问题——也就是说,许多静态分析工具发现了很多实际上并不真实的“漏洞”。这导致了开发人员之间的摩擦,因为用户已经厌倦了“狼来了”的工具。
GoKart 的动机是解决这个问题:我们能否创建一个误报率明显低于现有工具的扫描仪?根据我们的实验,答案是肯定的。通过利用源到汇跟踪和 SSA,GoKart 能够跟踪变量分配之间的变量污点,从而显着提高发现的准确性。我们的重点是可用性:实际上,这意味着我们已经优化了我们的方法来减少误报。
0
See Also
- 如何用 Go 更快的处理 XML
- Go 语言实用并发指南
- Go 1.12.3 紧急发布,修复linux 下使用cgo 编译失败的问题
- Go 语言读写 Excel 文档
- [referer-parser]一个来路分析工具