威胁研究团队发现,名为fezbox的npm包中隐藏着一场新的恶意软件活动。该包伪装成JavaScript/TypeScript实用工具库,实则包含多层混淆技术——包括将二维码用作载荷投递机制。
研究人员表示:“fezbox通过多层混淆隐藏恶意行为,其中包括创新性地利用二维码进行隐写。在此包中,威胁行为者……在二维码内执行载荷,以窃取浏览器Web cookie中的用户名和密码凭证。”
fezbox对外宣称是开发者辅助函数集合,其README强调性能优势、TypeScript支持,甚至包含一个用于生成和解析二维码的“QR Code Module”。
然而,未披露的是:导入该库会触发隐藏例程。“它确实描述了‘QR Code Module’……但未说明导入库后会从远程URL获取二维码并执行其中包含的代码。”
安装后,fezbox会运行经过高度混淆、专为浏览器端执行设计的脚本。恶意软件会等待120秒,随后调用函数从Cloudinary图片URL下载并解析二维码。
Socket强调了这一 stealth 策略:“在开发环境(isDevelopment)中,以及2/3的非开发环境场景下,代码不会执行任何操作。这通常是一种隐蔽战术——威胁行为者不想在虚拟环境或非生产环境中被发现。”
二维码本身包含JavaScript载荷,构成第二层混淆。
载荷的目的明确:窃取cookie中的凭证。
“代码从document.cookie 读取cookie,然后提取用户名和密码(再次使用字符串反转的混淆手段,如‘drowssap’实为‘password’)。如果窃取的cookie中同时包含用户名和密码,信息会通过HTTPS POST请求发送至https://my-nest-app-production[.]up[.]railway[.]app/users。”
这种数据窃取方式可将被盗凭证静默传输至攻击者服务器。
fezbox至少采用三层混淆:
- 字符串反转(如“drowssap”→“password”);
- 二维码隐写隐藏载荷;
- 加密编码与无意义代码(no-op red herrings)混淆JavaScript代码。
正如Socket所指出:“隐写术是将秘密文件隐藏在显眼位置的技术,二维码非常适合这一用途……将二维码用作隐写混淆技术相当巧妙,再次表明威胁行为者会利用一切可用工具。”
截至报告发布时,fezbox仍在npm上可用,但Socket已向npm安全团队申请移除该包并封禁威胁行为者账户。
开发者被强烈敦促立即从项目中移除fezbox,审计依赖项,并轮换可能已泄露的所有凭证。
发表评论
您还未登录,请先登录。
登录