NPM软件包通过隐写术QR码隐藏恶意软件

安全研究人员发现名为"fezbox"的恶意npm包使用隐写术QR码隐藏凭证窃取恶意软件。该软件包通过多层混淆技术逃避检测,展示了攻击者如何不断改进代码混淆技术,对软件供应链构成威胁。

NPM软件包通过隐写术QR码隐藏恶意软件

被污染的软件包伪装成JavaScript工具库,通过高度混淆的凭证窃取程序威胁软件供应链。

攻击者以一种新颖的方式污染了npm注册表上的代码包,将凭证窃取恶意软件隐藏在伪装成提供JavaScript工具的软件包中的隐写术QR码内。

根据本周发布的博客文章,Socket Threat Research的研究人员本周初在npm网站上发现了名为"fezbox"的恶意软件包,并请求将其删除以及暂停发布该包的用户。根据在线别名为"janedu"的中文攻击者发布的描述,该软件包本应是一个"按功能模块组织的JavaScript/TypeScript常用辅助函数工具库,以便您可以仅导入所需内容"。

然而,该软件包隐藏了一个从QR码中执行的有效载荷,可以从浏览器中的Web cookie窃取用户名和密码凭证。它还包含其他层次的混淆,展示了"威胁行为者如何继续改进他们的混淆技术",Socket Threat Research的Olivia Brown在文章中指出。

在Socket Threat Research文章发布时,该软件包仍然处于活动状态;此后已被删除并标记为构成供应链风险的恶意软件。然而,目前尚不清楚攻击者是否仍在npm注册表上活动,之前下载该软件包的用户可能仍然面临风险。

被污染的Npm软件包:高级混淆,简单功能

被污染的npm软件包如今已成为攻击者通过软件供应链快速广泛传播恶意软件的不幸典型方式。然而,作为一个恶意软件包本身,fezbox可能不会如此成功,因为"大多数应用程序不再在cookie中存储明文密码",Brown指出。

但该软件包使用的高级恶意软件混淆方法使其对安全研究人员值得关注,因为它展示了攻击者如何提高在看似合法的软件包中隐藏恶意代码的赌注,一位安全专家指出。

“威胁行为者传统上通过将受害者引导至凭证钓鱼网页来利用QR码,“Cofense钓鱼防御中心高级总监Chance Caldwell观察道。“然而,这种新攻击展示了一种更先进的技术:将混淆的恶意代码直接嵌入QR码本身。”

此外,攻击者设计的代码"只有恶意有效载荷才能正确解释它,有效地将其隐藏于传统的静态安全措施之外,“他补充道。

QR码作为恶意软件传播选项

QR码实际上并不是隐藏恶意软件的异常方式,因为它们预期在代码内部包含有效载荷,通常会将某人带到另一个目的地,通常是网站,Brown观察到。

“隐写术是在显而易见的地方隐藏秘密文件的实践,QR码非常适合这一点,“她在文章中写道。“使用QR码作为隐写混淆技术非常聪明,再次表明威胁行为者将继续使用他们可用的所有工具。”

在尝试解构代码时,Socket Threat Research团队发现了多层混淆——反转字符串、QR码本身和混淆的有效载荷——然后才能检查有效载荷代码本身。

“反转字符串是经典的反分析隐身技巧,“Brown指出。“在执行静态分析时,某些工具可能无法检测到反转版本的密码或反转的URL。”

一旦代码被分析,研究人员发现有效载荷可以读取Web cookie并提取用户名和密码。“如果被盗cookie中同时存在用户名和密码,它会通过HTTPS POST请求发送信息,“Brown在文章中写道。“否则,它什么都不做,安静退出。”

供应链攻击者升级

如前所述,考虑到密码现在在cookie中的存储方式,被污染的软件包本身如果嵌入软件中可能无法造成严重损害。然而,使用QR码进行进一步混淆是"威胁行为者的创造性转折”,展示了网络攻击者如何继续提升在看似合法的软件包内隐藏恶意软件的水平,根据Brown的说法。

这就是为什么"开发人员比以往任何时候都更需要使用工具检查他们的软件依赖项”,以确保不存在恶意代码,她补充道。

确实,尽管QR码隐写技术可能很危险,但它只有在实际进入受害者机器时才对供应链和最终用户构成威胁,Caldwell指出。这就是为什么开发人员和最终用户都需要在当前混淆技术不断演变和发展时保持领先,他说。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计