攻击者竟然将恶意RubyGems包用到了加密货币供应链攻击之中
写在前面的话
近期,安全研究人员发现了一种新型的恶意RubyGems包,而这种恶意的RubyGems包竟然被网络犯罪分子应用到了针对加密货币的供应链攻击活动之中。
RubyGems是一个针对Ruby语言应用程序的包管理器,可以帮助广大开发人员下载代码或将他人开发的代码整合进自己的应用程序之中。简而言之,RubyGems是Ruby的一个包管理器,它提供一个分发Ruby程序和库的标准格式,还提供一个管理程序包安装的工具。RubyGems旨在方便地管理gem安装的工具,以及用于分发gem的服务器。这类似于Ubuntu 下的apt-get,CentOS的yum,Python的pip。它将一个Ruby应用程序打包到一个gem里,作为一个安装单元。其主要特点就是能远程安装包、简化包之间依赖关系的管理、简单可靠的卸载(uninstallation)和查询机制,即能查询本地和远程服务器的包信息、能保持一个包的不同版本、以及基于Web的查看接口,能查看你安装的gem的信息。RubyGems大约创建于2003年11月,从Ruby 1.9版起成为Ruby标准库的一部分。
需要注意的是,任何人都可以向RubyGems库中上传一个Gem,这也就意味着,网络犯罪分子以及攻击者同样可以将恶意包上传到这个代码存储库之中,并诱使其他的开发人员将这些恶意包整合到各自开发的应用程序之中。
如果一个大型项目集成了这种恶意软件包,那么它将会创建一个影响范围非常广的供应链攻击场景。
恶意gems会窃取用户的加密货币
就在今天,开源安全公司Sonatype报告了两个恶意的Ruby包,通过安全研究人员的分析,这两个恶意Ruby包都会安装一个剪贴板劫持工具。据了解,这两个软件包分别伪装成了一个比特币库和一个用于显示不同颜色效果字符串的代码库。
这两个恶意软件包名字分别为“pretty_color-0.8.1.gem”和“ruby-bitcoin-0.0.20.gem”,其中都包含了一个恶意的Ruby脚本,而这个脚本将会充当创建剪贴板劫持程序的VBS脚本。
我们可以从下图中看到,ruby-bitcoin-0.0.20.gem包含了一个extconf.rb脚本,而这个脚本中则包含了经过混淆处理的Base64编码字符串。
下面给出的是用于创建the_Sore.vbs文件的Ruby代码:
值得注意的是,这个Ruby脚本中还包含了一行注释(“你猜猜谁又卷土重来了?Tomislav Maljic先生!”),并在这条注释中“挑逗”了一下Reversing Labs的安全分析人员Tomislav Maljic,因为这位研究人员之前发现了760个可以执行剪贴板劫持攻击的恶意Ruby包。
在脚本代码之中,经过混淆处理的Base64编码字符串是一个VBS文件,该文件执行之后又会创建另一个恶意的VBS文件,当用户登录进Windows系统时,该文件将会自动执行。这个VBS脚本就是一个恶意剪贴板劫持工具,并且会将自身存储在“C:\ProgramData\Microsoft Essentials\Software Essentials.vbs”以伪装成旧版本的Microsoft Security Essentials安全软件。
下图显示的是实现剪贴板劫持功能的VBS脚本代码:
比特币:bc1qgmem0e4mjejg4lpp03tzlmhfpj580wv5hhkf3p
以太坊:0xcB56f3793cA713813f6f4909D7ad2a6EEe41eF5e
门罗币:467FN8ns2MRYfLVEuyiMUKisvjz7zYaS9PkJVXVCMSwq37NeesHJpkfG44mxEFHu8Nd9VDtcVy4kM9iVD7so87CAH2iteLg
恶意软件包的上传时间
根据研究人员对恶意代码包的时间戳分析,ruby-bitcoin-0.0.20.gem包于12月7日被添加到了RubyGems中,而pretty_color-0.8.1.gem包是在12月13日被添加进去的,目前已经有61次下载了。不过,这两个包在添加到存储库的第二天就被RubyGems删除了。
值得一提的是,攻击者的所有加密货币钱包目前都还没有收到任何一个加密货币转账。
攻击演示视频
总结
众所周知,供应链攻击正在变得越来越流行,因为针对目标项目的一次入侵或代码整合都有可能会影响到许多的用户。
在过去的两个月时间里,安全研究人员还发现了很多恶意NPM项目会在目标用户的设备内安装njRAT远程访问木马(一种远程访问木马(RAT),用于劫持受害者的机器来执行键盘记录、截屏、操纵和泄露数据以及进行网络摄像头和麦克风录音)或窃取目标的Discord账号。就在这个星期,网络管理公司SolarWinds就遭受了大规模的供应链攻击,影响了包括美国政府机构在内的近18000个客户。
译文声明
译文仅供参考,具体内容表达以及含义原文为准。