基于Go编写的恶意软件数量激增2000%
文|白开水
网络安全公司 Intezer 发布了一份报告,概述了威胁行为者在 2020 年期间使用 Go 恶意软件的情况。其中包括对已经活跃多年的恶意软件和从未被公开报道的恶意软件的代码连接和 IoC 的分析。
该报告指出,自 2017 年以来,用 Go 编程语言编码的恶意软件菌株数量在过去几年中急剧增加了约 2000%。这一发现凸显并证实了恶意软件生态系统的一个普遍趋势,即恶意软件作者已经慢慢从 C 和 C++ 转向 Go。
第一个基于 Go 的恶意软件在 2012 年被发现,在此几年后,Go 才在恶意软件领域流行起来。报告指出,在 2019 年之前,发现用 Go 编写的恶意软件更多的是一种罕见的现象,而在 2019 年期间,它变成了一种日常现象。现如今,Go 语言已经被恶意软件广泛采用。国家级黑客组织( APT)、网络犯罪操作员甚至连安全团队都在使用该语言,并经常使用它来创建渗透测试工具包。
而 Golang 之所以出现这种“人气”骤增的现象,主要原因有三。首先是 Go 支持跨平台编译的简易流程;这使得恶意软件开发者只需编写一次代码,就可以从同一个代码库中编译出多个平台的二进制文件,让他们可以从同一个代码库中针对 Windows、Mac 和 Linux,这种多功能性是其他许多编程语言通常不具备的。
第二个原因是基于 Go 的二进制文件仍然很难被安全研究人员分析和逆向工程,这使得基于 Go 的恶意软件的检出率一直很低。第三个原因与 Go 对网络数据包和请求工作的支持有关。Intezer 解释称:
"Go 具有编写良好的网络堆栈,很容易操作。Go 已经成为云计算的编程语言之一,很多云原生应用都是用它编写的。例如,Docker、Kubernetes、InfluxDB、Traefik、Terraform、CockroachDB、Prometheus 和 Consul 都是用 Go 编写的。考虑到创建 Go 的原因之一就是发明一种更好的语言来代替 Google 使用的内部 C++ 网络服务,因此这是有道理的。"
由于恶意软件菌株通常会一直篡改、组装或发送/接收网络数据包,Go 为恶意软件开发人员提供了他们在一个地方所需的所有工具,这也就很容易理解为什么许多恶意软件编码人员都会放弃 C 和 C++ 而使用它。
Intezer 指出,许多恶意软件(家族)都是针对 Linux 和物联网设备的僵尸网络,它们可以安装加密矿机或将受感染的机器加入 DDoS 僵尸网络。此外,使用 Go 编写的勒索软件似乎也在变得越来越普遍。
在 2020 年看到的一些最大和最流行的基于 Go 的威胁的例子包括(每个类别):
Nation-state APT malware:
Zebrocy- 俄罗斯政府资助的组织 APT28 去年为其 Zebrocy 恶意软件创建了一个基于 Go 的版本。WellMess- 俄罗斯政府资助的组织 APT29 去年部署了其基于 Go 的 WellMess 恶意软件的新升级版本。E-crime malware:
GOSH - Carbanak 组织在去年 8 月部署了一个用 Go 编写的名为 GOSH 的新 RAT。Glupteba - 2020 年出现了新版本的 Glupteba loader,比以往任何时候都先进。Bitdefender 看到了一个针对运行 Oracle WebLogic 的 Linux 服务器的新 RAT。 - 2020 年出现了新的改进版 恶意软件,此恶意软件的目标是加密货币钱包和浏览器密码。此外,在 2020 年还发现了一个用 Go 语言编写的 clipboard stealer。基于 Go 编写的新勒索软件菌株:
RobbinHoodNefilimEKANS鉴于其最近的发现,Intezer 与其他公司一起,预计 Golang 的使用率在未来几年将继续上升,并与 C、C++ 和 Python一起,成为未来恶意软件编码的首选编程语言。