供应链安全公司 ReversingLabs 警告称,最近观察到的一次恶意活动依靠拼写错误来诱骗用户下载恶意 NPM 软件包,该软件包会通过 rootkit 感染他们的系统。
该恶意软件包名为“node-hide-console-windows”,旨在模仿 NPM 存储库上合法的“node-hide-console-window”软件包,首次出现于 8 月底,但已积累了 700多个删除之前 下载。
为了确保恶意包与合法包难以区分,威胁行为者不仅模仿了包名称,还模仿了存储库内容,发布了十个版本的代码,与真正的“node-hide-console”相同-窗户'。
执行后,恶意代码将从远程位置获取可执行文件,该可执行文件是 DiscordRAT 2.0 的副本,这是一种开源远程访问木马 (RAT),声称其创建“仅供教育用途”。
设置完成后,DiscordRAT 会在关联的 Discord 服务器中创建一个频道,然后等待来自其操作员的其他命令。RAT 可以从受感染的系统中窃取信息,可以禁用安全程序、杀死进程、阻止使用鼠标和键盘,甚至关闭系统。
ReversingLabs 对此次攻击中使用的恶意软件变体的分析还显示,其中包含对新命令的支持,该命令允许威胁行为者在受害者的系统上启动旧版本的 r77 rootkit。
r77 是一种开源恶意软件,易于部署,可以与其他软件捆绑在一起,并且可以通过两个注册表子项(一个用于可执行路径,另一个用于恶意软件进程)隐藏其在系统上的存在。
据 ReversingLabs 称,该恶意软件包的所有 10 个版本都下载了提供 DiscordRAT 2.0 的相同可执行文件,而 DiscordRAT 2.0 又可以执行 r77 rootkit。RAT 还包含删除 rootkit 的命令。
该恶意软件包的最新两个版本还包含用于获取 PyInstaller 编译的可执行文件的代码,该可执行文件为 Blank-Grabber 信息窃取程序提供服务。
恶意“node-hide-console-windows”软件包已从 NPM 存储库中删除。
对开源开发者的威胁
尽管威胁行为者努力使恶意软件包看起来值得信赖,但该活动并没有表现出复杂的迹象,特别是考虑到使用了很容易检测到的开源恶意软件,但其造成的威胁不应被低估。
无论这次活动的复杂程度如何,这些软件包都凸显了潜伏在 NPM 或 PyPI 等公共存储库以及 GitHub 上的始终存在且不断增长的危险。像 Rootkit 这样危险和具有侵入性的东西对每个人来说都很容易获得,并且有详细的记录,并且随时可以使用。
这次攻击突显了开发人员在没有首先彻底验证开源软件包的情况下信任开源软件包时所面临的风险。
从大多数包管理器安装任何软件包,基本上都会运行作者编写的代码。这给软件包开发者带来了很大的信任,而这种信任可能会被滥用,从而使威胁行为者能够危害任何下载和安装该软件包的系统,”洛哈尼在一封电子邮件评论中说。
此次活动再次表明威胁行为者对开源环境越来越感兴趣,这使得他们能够发起有影响力的供应链攻击。
开源软件包是全球分布的许多企业软件系统的基础,也是供应链安全近年来成为优先事项的原因之一。保护这些环境的网络安全技术必须覆盖每个位置、每台设备上的每个用户。
下载恶意软件包并感染 r77 rootkit 的开发人员应该重新安装系统,以删除任何恶意软件。
由于 r77 是无文件 rootkit,并且框架可能在部署之前已被修改,因此按照灾难恢复协议重新映像受影响的设备通常更安全。强烈建议将适当的日志发送到不可变的日志存储服务,这有助于蓝队搜索和识别可能受影响的系统。
保持对开发环境中使用的所有依赖项的可见性至关重要,以有效补救任何攻击。
团队需要保留一个强大而准确的库来记录安装的软件包,以便他们可以快速返回并删除已被破坏的库或恶意拼写错误的库,因为这是一个手动过程。