HackerNews

HackerNews
“沙虫二号”借 npm 预安装脚本窃取凭证,超 2.5 万个代码仓库受影响

“沙虫二号”借 npm 预安装脚本窃取凭证,超 2.5 万个代码仓库受影响

给文章评分:

HackerNews 编译,转载请注明出处:

多家安全厂商近期接连发出预警,npm 代码仓库正遭遇新一轮网络攻击。此次攻击手法与此前的 “沙虫” 攻击如出一辙,这轮被命名为 “沙虫二号” 的供应链攻击事件已入侵数百个 npm 软件包。据艾基多、螺旋卫士、锦鲤安全、赛克特、斯特普安全及维兹安全等机构报告,这些植入恶意代码的 npm 软件包于 2025 年 11 月 21 日至 23 日期间被上传至 npm 平台。


维兹安全的研究人员指出:“此次攻击推出了恶意代码的新型变种,其会在软件预安装阶段执行恶意程序,这使得代码构建与运行环境面临的安全风险大幅上升。”


今年 9 月,“沙虫” 攻击事件浮出水面。与该事件类似,此次攻击也会将窃取的机密信息上传至代码托管平台吉特哈伯,且相关代码仓库的描述标注为 “沙虫二号:卷土重来”。


上一轮 “沙虫” 攻击的主要手段是入侵正规软件包并植入恶意代码。这些恶意代码会借助 “松露猎猪” 凭证扫描工具,搜查开发人员设备中的机密信息,并将信息传输至攻击者控制的外部服务器。此外,受感染的软件包变种还具备自我复制传播能力,会重新上传至遭入侵的开发者名下的其他 npm 软件包中。


而在此次攻击中,攻击者在软件配置文件(package.json)内添加了一个名为 “初始化邦恩脚本” 的预安装脚本。该脚本的作用是秘密安装或定位邦恩运行环境,进而执行内置的恶意脚本 “邦恩环境脚本”。

这款恶意程序会通过两种不同的工作流程执行一系列攻击操作:

  1. 将受感染的设备注册为一台名为 “沙虫二号” 的自建运行器,并添加一个路径为.github/workflows/discussion.yaml 的工作流程。该流程存在注入漏洞,且仅在自建运行器上运行。攻击者可通过在吉特哈伯代码仓库发布讨论帖的方式,在受感染设备上执行任意指令;
  2. 窃取吉特哈伯平台机密区存储的所有机密信息,并将这些信息以文件附件的形式上传至窃取信息专用代码仓库中一个名为 “操作机密文件” 的文件内。文件上传完成后会同步到攻击者控制的设备,随后该工作流程会被删除,以此掩盖攻击痕迹。

螺旋卫士安全团队表示:“恶意程序运行后,会下载并启动‘松露猎猪’工具扫描本地设备,窃取 npm 令牌、亚马逊云科技 / 谷歌云 / 微软云平台凭证以及环境变量等各类敏感信息。”


维兹安全监测到,此次攻击已波及约 350 名独立用户名下的 2.5 万余个代码仓库。在监测的最后数小时内,每 30 分钟就有 1000 个新仓库遭入侵,且该趋势持续蔓延。


维兹安全分析称:“此次攻击延续了此前‘沙虫’系列攻击针对 npm 供应链的攻击模式,且攻击名称与攻击技巧均与前者相关,但攻击者可能已更换。攻击者盗用软件开发者账号,发布植入恶意代码的正规 npm 软件包,这类软件包会在安装过程中执行凭证窃取与外传程序。”


锦鲤安全指出,第二轮攻击的攻击性显著增强。若恶意程序无法完成身份验证或无法在设备中常驻,便会试图删除受害者设备中的整个用户主目录,涵盖当前用户主目录下所有可写入的文件。不过,这种类似文件清除程序的功能仅在满足以下全部条件时才会触发:

  1. 无法通过吉特哈伯的身份验证;
  2. 无法创建吉特哈伯代码仓库;
  3. 无法获取吉特哈伯令牌;
  4. 无法找到 npm 令牌。

安全研究人员尤瓦尔・罗南与伊丹・达迪克曼表示:“也就是说,一旦‘沙虫二号’无法窃取凭证、获取令牌,也无法打通信息外传通道,就会启动毁灭性的数据销毁程序。相较于首轮仅以窃取数据为目标的攻击,此次攻击手段出现明显升级,攻击者的目的已从单纯的数据窃取转变为报复性破坏。”


此外,该恶意程序还会通过执行容器命令获取设备的超级管理员权限。其会将主机的根文件系统挂载到特权容器中,随后植入恶意的超级用户配置文件。攻击者凭借该配置文件,无需密码即可获取受感染设备的超级管理员权限。


针对此次安全威胁,安全专家建议相关机构采取以下防护措施:全面排查所有终端设备,确认是否安装了受感染的软件包;立即卸载存在安全隐患的软件版本;更换所有相关凭证;检查代码仓库的常驻程序,重点排查.github/workflows 路径下是否存在 “沙虫工作流程配置文件” 等可疑文件,同时留意仓库中是否出现异常分支。


 


消息来源:thehackernews

本文由 HackerNews.cc 翻译整理,封面来源于网络;

转载请注明“转自 HackerNews.cc”并附上原文