Snyk Code增加了围棋安全扫描(beta)。

383 阅读4分钟

应用安全生态系统工程

Snyk Code增加围棋安全扫描

弗兰克-费舍尔2021年10月14日

编辑注(2022年1月10日)。Snyk Code内的Go支持现在是GA。


Snyk Code是在2021年初推出的,从那时起,它在短时间内走过了很长的路。作为一个开发者优先的安全工具,它提供直观的UI和CLI,嵌入流行的IDE,提供可操作的修复建议,并以行业领先的实时速度和高精确度进行扫描。最重要的是,这一切都由ML驱动的算法支持,该算法从全球开发者社区中学习。

成倍增长其强大的知识库。

自推出以来,我们一直在稳步增加更多的语言。Snyk Code已经支持JavaScript、TypeScript、Java、Python、C#、PHP(测试版),现在......请击鼓传花......Go支持测试版!"。🎉🎉🎉

让我们来看看我们是如何让Snyk Code的Go安全扫描进入测试阶段的,以及你如何开始利用其功能。

Go在Snyk Code中的发展历程

通常情况下,添加新语言的过程始于向Snyk Code引擎添加一个解析器,生成原始代码的中间表示。该中间表示是独立于语言的,并支持现代多用途语言的所有特征。下一步是运行机器学习支持的程序,生成一个规则的知识库。每种语言都有一个独特的运行时间或一组库,引擎会学习什么是具体的源和汇的功能。

你可以想象,这是一个迭代的过程,因此,知识库正在以指数形式逐日增长。在某一时刻,当我们的早期测试者的反馈是,他们从看到以前其他工具没有捕捉到的安全问题中受益时,我们将新的知识库添加到生产中。我们将规则标记为 "测试版",因为我们还没有完全完成,但我们希望尽快提供价值,以便我们能够继续使它们变得更好。然后,我们每天继续添加新的规则,结果可能还不包括所有的东西,但调查结果会不断增加。当我们的内部测量和测试证明我们达到了我们努力争取的覆盖率和准确性时,语言支持就会离开测试版,得到全面支持。

现在,这个过程正被用来添加另一种新的语言。Go。这门语言本身比较年轻,但我们看到近几年来有很多人采用。Go的设计是为了填补一个空白。像C++这样提供强大性能控制的语言被认为是复杂和麻烦的。但像Python这样易于理解和可读的语言,其总体性能似乎较低。Go的设计是为了填补这一空白,着眼于现代环境--严重的网络化和多核机器。

虽然Go作为一种编程语言包括防止一些典型的错误来源的方面--如静态类型或内存安全,加上编程环境从一开始就有某些工具如linter--但语义层面的问题仍然存在。而这正是Snyk Code的作用。

**注意:**一般来说,你的应用程序由开源依赖项以及你自己的代码组成。Snyk Open Source扫描Go Modules、dep或govendor的软件包管理器配置,并检查是否有脆弱的软件包。

在您的Go项目上运行Snyk代码扫描

Snyk Code的主要好处之一是,当您使用GitHub或GitLab等源代码管理系统时,它不需要任何安装。甚至一定不是你自己的代码,但你可以扫描开放源代码库。这一切都从拥有一个免费账户开始,通过注册一个免费的Snyk账户--不需要信用卡,你所需要的只是一个GitHub或GitLab账户。

接下来添加一个项目,可以是你的个人git账户中的项目,也可以是提供一个公共仓库的路径。然后自动开始扫描,即使是包含数万个文件的最大资料库也能在几分钟内完成。

打开代码分析结果将显示扫描的详细结果。

**注意:**由于Go还处于测试阶段,结果不会像完全支持的语言那样准确。另外,由于我们的持续更新,结果每天都会有所不同。

就像我们其他语言一样,Visual Studio Code和JetBrains GoLand的IDE插件也将支持Snyk Code的Go安全扫描。当然,Snyk CLI也支持Go。

通过试用并向我们发送反馈信息,帮助我们更快地将Go安全扫描从测试版中推出。

用Snyk保护您的Go项目

免费注册,开始保护您的 Go 代码和依赖关系。

免费注册

Log4Shell资源中心

我们创建了一个广泛的Log4Shell资源库,以帮助你了解、发现和修复这个Log4j漏洞。

浏览资源