【全球资讯】NPM 包通过 Chrome 的帐户恢复工具窃取密码

admin 2021年10月29日11:42:22评论87 views字数 3728阅读12分25秒阅读模式

点击上方蓝字“Ots安全”一起玩耍

【全球资讯】NPM 包通过 Chrome 的帐户恢复工具窃取密码

在另一场大规模的软件供应链攻击中,密码窃取者通过 ChromePass 从 Windows 系统上的 Chrome 窃取凭据。


npm 开源代码库中发现了一个使用合法密码恢复工具的凭据窃取代码炸弹,它潜伏在 npm 开源代码存储库中,等待植入从该源提取代码的庞大应用程序群中。


研究人员从 Windows 系统上的 Chrome 中捕获了恶意软件窃取凭据。密码窃取器是多功能的:它还可以侦听来自攻击者的命令和控制 (C2) 服务器的传入命令,可以上传文件、从受害者的屏幕和摄像头进行记录以及执行 shell 命令。


npm(最初是 Node Package Manager 或 NPM 的缩写)是 JavaScript 运行时环境 Node.js 的默认包管理器,Node.js 建立在 Chrome 的 V8 JavaScript 引擎之上。它类似于 GitHub、RubyGems 和 PyPI 等其他代码存储库,因为它是(非常长的)软件供应链的一部分。


用“庞大”来描述生态系统是一种轻描淡写的说法:npm 托管着超过 150 万个独特的包,每天为全球约 1100 万开发人员提供超过 10 亿次 JavaScript 包请求。


滥用 Google ChromePass 实用程序

除了文本 JavaScript 文件,npm 还包含各种类型的可执行文件,例如 PE、ELF 和 Mach-O。ReversingLabs 研究人员在周三的一篇文章中发表了他们的发现,他们表示,在对代码存储库进行分析期间,他们发现了一个有趣的嵌入式 Windows 可执行文件:凭据窃取威胁。标记为“Win32.Infostealer.Heuristics”,它出现在两个包中:nodejs_net_server 和 temptesttempfile。


至少就目前而言,第一个主要威胁是 nodejs_net_server。一些细节:

  • nodejs_net_server:自 2019 年 2 月首次发布以来,已发布 12 个版本,总共下载超过 1,300 次的包。它最后一次更新是在六个月前,由某人使用“chrunlee”的名字创作。根据 ReversingLabs 的说法,chrunlee 似乎也是 GitHub 上的活跃开发人员,该开发人员正在开发 61 个存储库。

【全球资讯】NPM 包通过 Chrome 的帐户恢复工具窃取密码

nodejs_net_server NPM 包摘要。资料来源:ReversingLabs。

【全球资讯】NPM 包通过 Chrome 的帐户恢复工具窃取密码

chrunlee 的 github 个人资料。资料来源:ReversingLabs。

通过静态分析,研究人员在 nodejs_net_server 包的多个版本中发现了 Win32.Infostealer.Heuristics 文件。它的元数据显示该文件的原始名称是“a.exe”并且它位于“lib”文件夹内。研究人员指出,带有类似扩展名的单字母文件名会向威胁猎人发出危险信号。果然,a.exe 原来是一个名为 ChromePass 的实用程序:一个合法的工具,用于恢复存储在 Chrome 网络浏览器中的密码。


chrunlee 通过 12 个版本增强了 nodejs_net_server 包,直到去年 12 月最终使用脚本对其进行升级以下载密码窃取程序,开发人员将其托管在个人网站上。研究人员推测,它随后被调整为运行 TeamViewer.exe,“可能是因为作者不希望恶意软件与其网站之间存在如此明显的联系”。


分析师称,chrunlee 发布了第一个版本“只是为了测试 NPM 包的发布过程”。三个月后,恶意软件制造商实现了远程 shell 功能,并在多个后续版本中进行了改进。然后,在 2020 年 4 月,chrunlee 对版本 1.0.7 和 1.0.8 中的 shell 功能进行了小的修改。最后,在 2020 年 12 月,版本 1.1.0 更新了一个脚本来下载密码窃取工具。


第二题包

  • temptesttempfile:总下载量超过 800 次。分析师观察到,考虑到“主页和 GitHub 存储库链接到此包会导致不存在的网页”,这有点令人头疼。

chrunlee 的 npm 包之一——tempdownloadtempfile——也有不存在的链接。它的一个文件——file/test.js——实现了与 nodejs_net_server 包版本中发现的相同的远程 shell 功能,但这个包不执行执行劫持,并且它缺乏持久性机制,使其目的是“一个有点不清楚,”ReversingLabs 说。


有趣的开发人员 F-Up

ReversingLabs 分析师在挑选 nodejs_net_server 代码时发现了一个开发“有趣的事实”:它的作者 chrunlee 不仅编写了一个凭据窃取程序,而且还意外地发布了他们自己存储的登录凭据,与密码抓取器正面交锋,打开作者自己起来攻击。


研究人员观察到:“看来,来自 npm 存储库的已发布版本 1.1.1 和 1.1.2 包括在作者的个人计算机上测试 ChromePass 工具的结果。” “这些登录凭据存储在与密码恢复工具相同的文件夹中的‘a.txt’文件中,名为‘a.exe’。”


另一个有趣的事实:该文本文件有 282 个从 chrunlee 浏览器捕获的登录凭据,其中一些可能仍然有效(ReversingLabs 没有验证它们)。而且,其中一些凭据具有最蹩脚的密码(例如“111”)和用户名(“admin”,任何人?)。

【全球资讯】NPM 包通过 Chrome 的帐户恢复工具窃取密码

恶意软件作者 chrunlee 从他们自己的浏览器中恢复的一些密码。资料来源:ReversingLabs。


“仅查看一些恢复的凭据……就表明作者并不总是关心最佳密码策略实践,”分析师优雅地轻描淡写。


更新:现在删除了坏包

ReversingLabs 于 7 月 2 日联系了 npm 安全团队,让他们提前了解 nodejs_net_server 和 tempdownloadtempfile 包,并在上周(周四)再次回过头来,因为该团队仍未从存储库中删除这些包。


当 Threatpost 联系维护存储库的 npm Inc. 时,GitHub 发言人发送了以下声明:“在我们调查后,这两个软件包都被删除了。”


早期的 npm 劫持

这不是 npm 第一次被有毒代码渗透。今年早些时候,三个恶意软件包被发布到 npm;研究人员表示,任何被代码损坏的应用程序都可能从 Discord 用户那里窃取令牌和其他信息。


2018 年 7 月,攻击者破坏了ESLint 维护者的 npm 凭据,并向 npm 注册表发布了流行的“eslint-scope”和“eslint-config-eslint”软件包的恶意版本。恶意代码复制了运行 eslint-scope 的机器的 npm 凭据并将其上传给攻击者。


几个月后,也就是 2018 年 11 月,又发现了另一个恶意软件包:它依赖于流行软件包“event-stream”的 3.3.6 版。这个名为“flatmap-stream”的恶意软件包包含一个加密的有效载荷,专门用于从 Copay 应用程序中窃取比特币。


存储库是越来越受欢迎的目标

尽管该恶意软件在 npm 注册表中存在超过三年的事实令人担忧,但值得庆幸的是,那些年让防病毒引擎有机会迎头赶上:VirusTotal显示 46 家安全供应商已将 a. exe 文件为恶意文件。Sonatype 高级安全研究员 Ax Sharma 表示,他周三告诉 Threatpost,Chrome 密码窃取恶意软件“进一步证实了对开源生态系统的攻击如何存在并且可能多年未被发现。”


请注意,这不仅仅是网络攻击者瞄准线中的 npm。本月早些时候,研究人员偶然发现了一组渗透到 PyPI 中的加密矿工,也就是 Python Package Index (PyPI),这是一个用 Python 编程语言创建的软件代码存储库。


根据该报告,npm 渗透只是开发人员如何过度信任第三方代码、重用库以获得快速、简单的结果以及“在将它们纳入之前很少[进行]深入的安全评估的最新例子。他们的项目。”


当然,有很多代码需要解决。


ReversingLabs 表示:“这种遗漏是由于在第三方代码中发现的潜在安全问题具有压倒性的性质和数量巨大。” “因此,一般来说,软件包会被快速安装以验证它们是否解决了问题,如果没有,则转向替代方案。这是一种危险的做法,可能会导致意外安装恶意软件。”


Sharma 表示,发现 a.exe 的特别之处在于它使用合法的密码恢复 Windows 实用程序 ChromePass 从用户的 Chrome 浏览器中窃取密码。“威胁行为者通常依靠合法的组件和服务来进行他们的险恶活动,以逃避检测,”他通过电子邮件说。


在报告的结论中,ReversingLabs 指出,软件供应链攻击正成为恶意行为者的“强大策略”,开发人员成为其组织及其客户群的关键切入点。


报告警告说:“针对开发人员的最常见的攻击媒介之一是利用公共软件包存储库。” “由于这些存储库拥有大量托管包,它们为恶意软件潜伏提供了一个很好的藏身之处。在这些存储库中反复发现恶意包已经证明,对能够提供可靠识别和保护的安全解决方案的需求不断增长对抗这些类型的攻击。”


  • 072121 15:09 更新:添加了来自 Axe Sharma 的输入。

  • 072121 16:18 更新:更新了故事以包含 GitHub 的声明。

  • 072121 17:44 更新:更正了 GitHub 的初始声明:此时,两个包都已被删除。

【全球资讯】NPM 包通过 Chrome 的帐户恢复工具窃取密码

本文始发于微信公众号(Ots安全):【全球资讯】NPM 包通过 Chrome 的帐户恢复工具窃取密码

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年10月29日11:42:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【全球资讯】NPM 包通过 Chrome 的帐户恢复工具窃取密码http://cn-sec.com/archives/447126.html

发表评论

匿名网友 填写信息