最近,npm 安全团队从 npm 网站上删除了一个 JavaScript 库,因为该库中包含恶意代码,这些恶意代码可以在开发者的计算机上打开后门。
Sonatype 发布的报告表示,该恶意 JavaScript 库是“twilio-npm”,一个看起来像是 Twilio 相关库的恶意库。该库于上周五首次在 npm 网站上发布,在发布的当天就被 Sonatype 团队发现了其恶意行为,于是 npm 安全团队将这一软件包列入黑名单并删除。
虽然 twilio-npm 的恶意代码在发布当天就被发现了,npm 也已经尽快将其删除,但是该库仍已经被下载超过 370 次,并且自动包含在通过 npm 命令行程序构建和管理的 JavaScript 项目中。该库的恶意行为是被 Sonatype 的安全研究员 Ax Sharma 发现的,Ax Sharma 说,在这个山寨的 Twilio 库中发现的恶意代码会在所有下载并使用该库的开发者电脑上打开 TCP 反向 Shell。反向 Shell 程序打开了“4.tcp.ngrok [。] io:11425
的连接,从而可以接收被感染用户的计算机上运行的命令。
Sharma 表示,反向 Shell 程序只能在基于 UNIX 的操作系统上工作。
npm 安全小组发布了一篇公告表示:“任何安装或运行了此软件包的计算机都应被认为完全受到了威胁。该计算机上存储的所有机密和密钥都应该立即转移至另一台计算机。”
图为 npm 发布的公告
在过去的三个月中,npm 已经先后三次删除恶意软件包,而此次则为第四次。
8 月,npm 员工删除了一个名为“ fallguys ”的恶意 npm(JavaScript)库,该库声称提供了“ Fall Guys:Ultimate Knockout ”游戏API的接口,可实际上,在开发者把该库加入到自己的项目中后,该库会运行其恶意代码,窃取用户浏览器和 Discord 的敏感文件。
9 月,npm 员工删除了 4 个 npm 库,原因是这些库中的恶意代码收集用户的详细信息并将这些信息上传至 GitHub。这四个库包括:
10 月,npm 移除了 4 个 npm 库,原因是这些库中的恶意代码会向远程服务器建立连接并泄露用户数据。
《NPM 移除 4 个恶意软件包:泄露用户数据已有数月,4 个包分工明确》
有开发者对此表示无奈:“为什么 npm 总是会被心怀不轨的人盯上?”总的来说,使用别人的依赖库还是要谨慎,尽量选择有大公司背书的依赖库,有能力的开发者,自己造轮子不香吗?
对此你有什么看法呢?欢迎在下方留言和大家一起讨论。
领取专属 10元无门槛券
私享最新 技术干货