根据网络安全公司 Intezer 本周发布的一份报告,自 2017 年以来使用 Go 编程语言编写的恶意软件数量呈现爆发式增长,增幅超过 2000%。从报告中可以看到,恶意软件作者已逐渐从 C/C++ 转向 Go,这是一种由谷歌在 2007 年开发并推出的编程语言。
虽然首个基于 Go 语言开发的恶意软件在 2012 才被检测到,但在短短几年时间里该语言已经在恶意软件领域快速流行起来。Intezer 在报告中说:“在 2019 年之前,发现用 Go 编写的恶意软件更多的是一种罕见的现象,而在 2019 年期间,它变成了一种日常现象”。
如今,Golang(Go 的另一种称呼)已经取得了突破性进展,并被广泛采用。有国家背景的黑客组织(比较出名的有 APT)、网络犯罪运营商,甚至安全团队都在使用它,他们经常用它来创建渗透测试工具包。
Golang 之所以会出现这种突然暴涨的现象,主要有三个原因。首先是 Go 支持跨平台编译的简易流程。这使得恶意软件开发者只需编写一次代码,就可以从同一个代码库中编译出多个平台的二进制文件,使他们可以从同一个代码库中针对 Windows、Mac和Linux,这种多功能性是其他许多编程语言通常不具备的。
第二个原因是,基于 Go 的安装文件仍然很难被安全研究人员分析和逆向工程,这使得基于Go的恶意软件的检出率一直很低。第三个原因与 Go 对网络数据包和请求工作的支持有关。
Intezer解释说:“Go有一个非常好写的网络堆栈,很容易使用。Go已经成为云的编程语言之一,很多云原生应用都是用它编写的。例如,Docker、Kubernetes、InfluxDB、Traefik、Terraform、CockroachDB、Prometheus和Consul都是用Go编写的。这很有意义,因为创建Go背后的原因之一是发明一种更好的语言,可以用来取代谷歌内部使用的C++网络服务”。