网站首页 > 精选文章 正文
黑客在新一轮供应链攻击中窃取数千个凭证,攻击目标是使用流行的 Nx 构建系统包的 JavaScript 开发人员。
Nx 每周下载量超过 400 万次,是一个开源的、与技术无关的构建平台,允许开发人员大规模管理代码库。
作为新发现的供应链攻击(称为 s1ngularity)的一部分,黑客窃取了 Nx NPM 令牌,从而允许他们将软件包的恶意版本发布到注册表。
Nx 维护人员解释说,此次攻击的根源是 8 月 21 日引入的一个易受攻击的工作流程,该工作流程可用于代码注入。
尽管在发现该漏洞可被恶意利用后,它几乎立即在主分支中恢复,但威胁组织在对nrwl/nx存储库进行分叉的拉取请求中利用了该漏洞,以过时的分支为目标触发该问题并窃取具有读/写存储库权限的 GITHUB_TOKEN。
随后,GITHUB_TOKEN 被用来触发publish.yml工作流,其中包含用于发布多个恶意版本的 Nx 及其支持插件包的 NPM 令牌。即使没有使用 Nx 的工作区,Nx Console IDE 扩展的用户也受到了影响。
美国东部时间 8 月 26 日下午 6:32 至晚上 8:37 之间,八个恶意 Nx 版本被发布。这些版本于晚上 10:44 被移除,所有具有发布权限的 NPM 令牌于晚上 11:57 被撤销。
数小时后,“Nx 下的所有 NPM 软件包(无论是否受影响)均已设置为需要双重身份验证 (2FA),并且无法再使用 NPM 令牌进行发布。所有 NPM 软件包也已更改为使用新的“受信任发布者”机制,该机制不再使用 NPM 令牌。”Nx 维护人员表示。
网络安全公司Wiz 指出,Nx 版本 21.5.0、20.9.0、21.6.0、20.10.0、21.7.0、20.11.0、21.8.0 和 20.12.0 都包含一个安装后脚本,该脚本会在 Linux 和 macOS 系统上执行恶意 telemetry.js 文件。
该有效载荷旨在系统地搜索系统中包含 SSH 密钥、NPM 令牌、GitHub 令牌、API 密钥和加密货币钱包数据的敏感文件和环境变量。
GitGuardian解释说, 它还通过修改用户的 shell 启动文件并添加关机命令来造成损害,这些命令会在打开新的终端会话时导致系统崩溃。
此外,该代码旨在将 Claude 和 Gemini 等人工智能工具武器化,以帮助进行侦察和数据泄露。
StepSecurity指出: “这是已知的第一起攻击者将开发者 AI 助手变成供应链利用工具的案例。”
该代码对收集的数据进行编码,创建名为“s1ngularity-repository”(或变体)的公共 GitHub 存储库,并将编码数据上传到其中。
Wiz 和 GitGuardian 观察到了数千个这样的存储库,并警告说,尽管它们已被 GitHub 删除或存档,但这些存储库在线的时间足够长,攻击者可以下载其中包含的数据。
Wiz 指出:“在此次泄露的各种数据中,我们观察到超过一千个有效的 Github 令牌、数十个有效的云凭证和 NPM 令牌,以及大约两万个文件被泄露。在许多情况下,该恶意软件似乎在开发者机器上运行,通常是通过 NX VSCode 扩展程序。我们还观察到恶意软件在构建管道(例如 Github Actions)中运行的情况。”
据 GitGuardian 报道,黑客于 8 月 27 日成功将 2,349 个不同的机密信息泄露到已确定的 1,079 个存储库中。在攻击高峰期,几乎有 1,400 个此类存储库可供公众访问。
GitGuardian 表示:“这些密钥中有一半在撰写本文时有效。数量最多的是 GitHub OAuth 应用密钥。乍一看,这个结果令人惊讶,但实际上它与 Nx 的功能有关,因为 GitHub 上有一个应用程序,用于促进 NX Cloud 和 GitHub 之间的交互。”
该安全公司还警告称,被盗的机密应立即撤销,因为任何延迟都可能导致进一步的泄露。
GitGuardian 指出:“在供应链攻击可以在发现后数小时内利用泄露的凭证进行武器化的时代,快速检测暴露、验证影响并在数千个非人类身份之间执行协调撤销的能力已成为弹性软件交付的新基准。”
更多关于本次供应链攻击的技术分析:
https://github.com/nrwl/nx/security/advisories/GHSA-cxm3-wv7p-598c
https://blog.gitguardian.com/the-nx-s1ngularity-attack-inside-the-credential-leak/
https://www.stepsecurity.io/blog/supply-chain-security-alert-popular-nx-build-system-package-compromised-with-data-stealing-malware
猜你喜欢
- 2025-09-13 Windows 10下使用编译并使用openCV
- 2025-09-13 基于Springboot + vue3实现的汽车美容与保养网
- 2025-09-13 超级右键iRightMouse--Mac强大工具
- 2025-09-13 基于Springboot + vue3实现的小区物业管理系统
- 2025-09-13 99 刀买到一把 40 年前的苹果键盘,它竟成了我 2025 年的「码字神器」
- 2025-09-13 Rust如何在一个目录下放多个可执行程序?
- 2025-09-13 MacBook 八款免费必装软件,让你的 Mac 更好用
- 2025-09-13 一分钟学会gitignore(附配置规则)
- 2025-09-13 所有电脑管家都叫你清理的注册表,竟然能偷偷控制你的电脑
- 2025-09-13 Claude Code与Gemini放弃代码索引,是一步烂棋
- 最近发表
-
- 使用VSCode来书写你的Jupyter Notebooks
- 在VSCode中使用uv管理Python项目_用vscode写python怎么运行
- Mac M2芯片 VSCode配置C#开发环境
- 配置vscode远程访问docker_vscode远程window开发
- 普通人 如何 利用 类似 ChatGPT AI 编写程序
- 在Vs code中使用sftp插件以及连接windows远程sftp协议部署指导
- 零代码编程:用kimichat合并一个文件夹下的多个文件
- Windows 10下使用编译并使用openCV
- 基于Springboot + vue3实现的汽车美容与保养网
- 超级右键iRightMouse--Mac强大工具
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)