Go 语言“助力”恶意软件?仅 4 年基于 Go 的恶意软件数就激增 2000%!

点击上图查看教学大纲

整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

Go(又称 Golang),是谷歌于 2009 年正式发布的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。因其语法简单,精简易学,逐渐受到越来越多开发者的喜爱,并于 2016 年荣登 TIOBE“年度最佳语言”。

不过,Go 的逐渐流行也吸引了部分不法分子的注意。近日 络安全公司 Intezer发布的一份 告称,自 2017 年以来,用 Go 编写的恶意软件数量急剧增加了近 2000%

第一款由 Go 编写的恶意软件

2007 年开始设计、2009 年正式推出的 Go,在问世 3 年后的 2012 年就被利用到了恶意软件的开发中。

据了解,这款恶意软件名为 Trojan.Encriyoko,是在受感染的电脑上加密各种文件格式,使加密文件无法使用的一种木马病毒。该恶意软件最初的原始样本其实是一个名为 GalaxyNxRoot.exe、用 .NET 编写的 dropper(木马程序 ,启动后会从体内资源部分释放出病毒文件),并伪装成 root 工具以欺骗用户安装它。

一旦执行,GalaxyNxRoot.exe 文件将启动两个由 Go 编写的可执行文件

  • %Temp%PPSAP.exe
  • %Temp%adbtool.exe
  • 其中,PPSAP.exe 文件是一个盗取信息的木马,用于收集系统信息,包括当前云运行的进程、用户名、MAC 地址等,随后将信息发送至以下远程位置:

    http://golang.iwebs.ws/about/step1.php

    而 adbtool.exe 文件则从以下远程位置下载加密文件:

    http://sourceslang.iwebs.ws/downs/zdx.tgz

    该文件被解密为动态链接库(DLL)文件并加载,随后便尝试对受感染计算机上的各种文件格式进行加密。目标文件格式包括:

  • 源代码文件(.c,.cpp,.cs,.php,.java,.pas,.vb,.frm,.bas,.go,.asp,.aspx,.jsp,.pl,.py 、. rb)
  • 图像文件(.jpg,.png,.psd)
  • 音频文件(.wav,.wma,.amr,.awb)
  • 存档文件(.rar,.zip,.iso,.gz,.7z)
  • 文档文件(文件扩展名包含以下字符串:doc,xls,ppt,mdb,pdf)
  • 其他类型的文件(文件扩展名包含以下字符串:dw,dx,sh,pic,111,win,wvw,drew,grp,rpl,mce,mcg,pag)
  • 一旦文件被该恶意软件加密,将很难恢复。

    基于 Go 的恶意软件层出不穷

    不过,虽然第一款由 Go 编写的恶意软件出现于 2012 年,但 Go 真正成为恶意软件领域的流行语言还是在几年之后。

    以下例举部分 2020 年发现基于 Go 的恶意软件。

    国家 APT 恶意软件:

  • Zebrocy——俄罗斯政府支持的 APT28 组织去年为其 Zebrocy 恶意软件创建了一个基于 Go 的版本;
  • WellMess——俄罗斯政府支持的 APT29 组织去年部署了其基于 Go 的WellMess 恶意软件的新升级版本。
  • 电子犯罪恶意软件:

  • GOSH——去年 8 月,臭名昭著的 Carbanak 组织部署了一种用 Go 编写、名为 GOSH 的新 RAT;
  • Glupteba——2020 年出现比以往都要先进的新版 Glupteba 加载器;
  • Bitdefender 发现了一种针对运行 Oracle WebLogic 的 Linux 服务器的新型 RAT 病毒;
  • CryptoStealer.Go——2020 年出现了 CryptoStealer.Go 恶意软件的新版本和改进版,该恶意软件的目的是加密货币钱包和浏览器密码;
  • 此外,2020 年还发现了用 Go 编写的剪贴板窃取者。
  • Go 编写的新勒索软件病毒:

  • RobbinHood:勒索软件,通过使用“另类”的方式关闭并删除杀软。在执行过程中释放并加载带有漏洞的驱动程序,之后对该驱动程序进行漏洞利用,关闭 Windows DSE 机制,一旦成功便会迅速加载没有签名的 Rootkit(Rootkit 主要功能为结束并删除指定的进程和杀软),上述操作完成后开始加密;
  • Nefilim:勒索软件病毒,遍历磁盘,对磁盘中的文件进行加密,并为加密后的文件名添加 NEFILIM 后缀。病毒加密完成后,调用 cmd 命令进行自我删除。该勒索软件威胁受害者如果不支付赎金,将会公布窃取到的受害者数据信息;
  • EKANS:一种被用于定向 ICS 活动的病毒,共发现两个版本的样本,均使用 Go 进行编写。一旦该恶意软件落在易受攻击的机器上,就会对文件进行加密,并显示一张勒索纸条,要求对方支付赎金,以换取解密密钥。
  • Go 颇受恶意软件“青睐”的三大原因

    Intezer 称,调查 告证实了恶意软件生态系统的总体趋势,恶意软件开发者已逐渐由 C 和 C++ 转向 Go。而 Go 能在恶意软件领域使用范围急剧上升,主要是以下三个原因:

  • Go 支持简单的跨平台编译过程。这对恶意软件开发者简直是一个“福音”:只需编写一次代码,并从相同的代码库为多个平台编译二进制文件,那么他们就可以从同一代码库中针对 Windows,Mac 和 Linux 进行开发,这是其他许多编程语言不具备的多功能性。
  • 安全研究人员目前还是很难对基于 Go 的二进制文件进行分析和逆向工程,因此基于 Go 的恶意软件的检测率一直很低。
  • Go 支持处理 络数据包和请求。Intezer 对此解释道:
  • Go 具有编写良好并易于使用的 络堆栈,并且 Go 也已经成为了许多云原生应用的编程语言之一,例如 Docker, Kubernetes, fluxdb, Traefik, Terraform, CockroachDB, Prometheus 和 Consul都是用 Go 编写的。考虑到当初创建 Go 的原因之一就是发明一种更好的语言代替谷歌使用的内部 C++ 络服务,因此这个现象也是合理的。

    由于恶意软件经常会遭遇篡改、组装或发送/接收 络数据包,而 Go 恰好为恶意软件开发者提供了所需的所有工具,这也就是众多容易软件开发者放弃 C 和 C++ 的原因。

    以上这就是 Go 颇受恶意软件开发者“青睐”的三大原因。依据最近的势头,Intezer和许多人都认为 Go 的使用将在未来持续增加,并加入 C、C++ 和 Python 的行列,成为今后编写恶意软件的首选编程语言。

    对此,你有什么看法吗?欢迎评论区留言!

    参考链接:

    https://www.zdnet.com/article/go-malware-is-now-common-having-been-adopted-by-both-apts-and-e-crime-groups/

    https://community.broadcom.com/symantecenterprise/communities/community-home/librarydocuments/viewdocument?DocumentKey=7a3cd022-0705-43fb-8c11-181ec86b2c74&CommunityKey=1ecf5f55-9545-44d6-b0f4-4e4a7f5f5e68&tab=librarydocuments

    扫码,优惠购书

    配套视频演示

    本书部分配套资源展示

    PPT,大纲、教案、进度表、答案、题库、上机、600个案例资源库、前端设计文档、经典 站设计模板、600分钟视频等

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年2月2日
    下一篇 2021年2月3日

    相关推荐