
近期,npm注册表中出现10款模仿合法软件项目的恶意包,它们会下载一款信息窃取组件,从Windows、Linux和macOS系统中收集敏感数据。
这些恶意包于7月4日被上传至npm平台,因采用多层混淆技术躲过标准静态分析机制,长期未被发现。据网络安全公司Socket的研究人员透露,这10款恶意包的下载量已接近1万次,能够窃取系统密钥环、浏览器及身份验证服务中的凭证信息。
截至本文撰写时,尽管Socket已向npm平台报告相关情况,但以下恶意包仍可获取:
1. typescriptjs
2. deezcord.js
3. dizcordjs
4. dezcord.js
5. etherdjs
6. ethesjs
7. ethetsjs
8. nodemonjs
9. react-router-dom.js
10. zustand.js
Socket研究人员表示,这些恶意包通过虚假验证码验证伪装成合法程序,进而下载一款以PyInstaller打包的24MB信息窃取器。
攻击者为诱骗用户下载,采用了“拼写劫持”(typosquatting)手段——利用多款知名软件的名称拼写错误或变体命名恶意包。涉及的合法软件包括TypeScript(JavaScript的类型化超集)、discord.js(Discord机器人开发库)、ethers.js(以太坊JavaScript开发库)、nodemon(Node应用自动重启工具)、react-router-dom(React浏览器路由工具)及zustand(轻量React状态管理工具)。
开发者在npm平台搜索这些合法包时,可能因拼写失误或直接选择搜索结果中的恶意包而中招。恶意包安装后,会自动触发“postinstall”脚本,生成一个与主机检测到的操作系统匹配的新终端。该脚本在可见的安装日志之外执行“app.js”文件,并立即清空窗口以规避检测。
“app.js”文件是恶意软件加载器,采用四层混淆技术:自解码eval包装器、动态生成密钥的XOR解密、URL编码载荷以及深度控制流混淆。
脚本会通过ASCII码在终端显示虚假验证码,为安装过程制造合法假象。
![]()
虚假的 ASCII 验证码步骤
随后,它会将受害者的地理位置和系统指纹信息发送至攻击者的命令与控制(C2)服务器。获取这些信息后,恶意软件会从外部来源下载并自动启动特定于平台的二进制文件,该文件是一款以PyInstaller打包的24MB可执行程序。
这款信息窃取器的攻击目标包括各类系统密钥环(如Windows凭据管理器、macOS钥匙串、Linux SecretService、libsecret及KWallet),以及基于Chromium内核的浏览器和Firefox浏览器中存储的数据(包括用户配置文件、保存的密码和会话Cookie)。
此外,它还会在常见目录中搜索SSH密钥,并尝试查找和窃取OAuth令牌、JWT令牌及其他API令牌。
被盗取的信息会被打包成压缩文件,先临时存储在/var/tmp或/usr/tmp目录,随后被窃取至攻击者的服务器(IP地址:195[.]133[.]79[.]43)。
建议曾下载过上述任何一款恶意包的开发者立即清理感染文件,并轮换所有访问令牌和密码,因为这些凭证极有可能已被泄露。
从npm或其他开源索引获取包时,建议仔细核对名称是否存在拼写错误,并确保所有包均来自可靠的发布者和官方仓库。
参考及来源:https://www.bleepingcomputer.com/news/security/malicious-npm-packages-fetch-infostealer-for-windows-linux-macos/
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.