feinong avatar

GoKart:用于保护 Go 代码的静态分析工具

🕛 by feinong

GoKart 是 Go 的静态分析工具,它使用 Go 源代码的 SSA(单一静态分配)形式发现漏洞。它能够跟踪变量和函数参数的来源以确定输入源是否安全,与其他 Go 安全扫描器相比,这减少了误报的数量。例如,与变量连接的 SQL 查询传统上可能会被标记为 SQL 注入;但是,GoKart 可以确定变量实际上是常量还是常量等价物,在这种情况下不存在漏洞。

为何打造 GoKart

静态分析是在源代码中查找漏洞的强大技术。然而,该方法存在噪音问题——也就是说,许多静态分析工具发现了很多实际上并不真实的“漏洞”。这导致了开发人员之间的摩擦,因为用户已经厌倦了“狼来了”的工具。

GoKart 的动机是解决这个问题:我们能否创建一个误报率明显低于现有工具的扫描仪?根据我们的实验,答案是肯定的。通过利用源到汇跟踪和 SSA,GoKart 能够跟踪变量分配之间的变量污点,从而显着提高发现的准确性。我们的重点是可用性:实际上,这意味着我们已经优化了我们的方法来减少误报。

💘 相关文章

写一条评论

Based on Golang + fastHTTP + sdb | go1.17.1 Processed in 1ms