Go,或许从诞生之日起就没想过。
自己会以这种方式成为语言中的C位:
最新数据显示,Go语言成为恶意软件的最爱。
4年内基于Go语言的恶意软件数量飙增2000%。
甚至,这正在成为一种趋势。
报告的提供者,网络安全公司Intezer指出,
恶意软件生态系统已经出现一个普遍趋势,即恶意软件作者已经慢慢从C和C++转向 Go。
预计Golang的使用率在未来几年将继续上升,并与C、C++和Python一起,成为未来恶意软件编码的首选编程语言。
消息一出,不少网友纷纷为Go鸣不平。
我直接懵了,这事也要Golang组织管?
恶意软件选择Go的原因
即便如此,但也总不能让Go莫名其妙的背锅吧!
Intezer报告里也直截了当地列出了原因,主要有三个。
首先,Go支持跨平台编译。
开发者只需要编写一次代码,就可以从同一个代码库中编译出多个平台的二进制文件,包括Windows、Linux和Mac系统。
这种通用性是很多编程语言不具备的。
其次,安全人员很难对 Go 语言生成的二进制文件进行反编译和逆向工程。
因此导致 Go 语言编写的恶意程序检出率很低。
第三个原因则与Go对网络数据包和请求的工作支持有关。
Intezer解释道,
Go有一个非常好写的网络栈,很容易使用。
Go已经成为云的编程语言之一,很多云原生应用都是用它编写的。例如,Docker、Kubernetes、InfluxDB、Traefik、Terraform、CockroachDB、Prometheus和Consul都是用Go编写的。
因此开发者更容易继续使用Go语言来写网络工具。
实际上,当年(2007年)谷歌设计创建Go语言,其中一个原因用更好的语言取代谷歌内部使用的C++网络服务。
这样看,也算是情理之中。
Intezer还表示,2019年之前还很少有人使用Go语言来编码恶意软件,但在2019年开始,就逐渐开始形成风潮。
如今, 大量的黑客、安全团队都倾向于使用Go语言,不仅可以用来创建恶意软件,也可用来制作渗透测试工具包。
值得一提的是,这当中许多恶意软件都是针对 Linux 和 IoT 物联网设备的,可以用来挖矿或感染设备,以便用于为DDoS攻击准备的僵尸网络。
此外,勒索软件使用Go语言也十分普遍。
在报告的结尾处,Intezer还列举了一些在过去一年中出现Go编写的恶意软件。
对于这样一份报告,在中文开源社区OSCHINA上引发了热切的讨论。
有网友给Go语言正名:问题不在Go。
还有人说,
做菜刀的人如何制止使用菜刀的罪犯?
当然也有人“换个角度想想”:也说明Go火了啊!
报告传送门:
https://www.intezer.com/wp-content/uploads/2021/02/Intezer-2020-Go-Malware-Round-Up.pdf
参考链接:
https://www.zdnet.com/article/go-malware-is-now-common-having-been-adopted-by-both-apts-and-e-crime-groups/
https://www.oschina.net/news/131384/go-malware-2020
“