艾体宝新闻 | NPM 生态系统陷入困境:自我传播恶意软件在大规模供应链攻击中感染了 187 个软件包

NPM 生态系统遭受了迄今为止波及范围最广的供应链攻击之一,超过 187 个流行软件包被高级恶意软件入侵。该恶意软件能够自我传播和自动收集凭证。此次攻击影响了数百万周下载量的软件包,包括 angulartics2、ngx-toastr 和 @ctrl/tinycolor,表明网络犯罪分子正在改进其策略,以创造出能够在软件供应链中自主传播的「蠕虫式」恶意软件。本博客将全面分析此次攻击的方法、恶意负载的技术能力,以及与这次前所未有的供应链入侵相关的入侵指标 (IOC)。

Mend.io 对我们的开发环境和产品进行了内部审计,可以确认我们未受此次零日事件的影响。

NPM 供应链漏洞概述

攻击始于对不同组织的多个软件包维护者账户的协同入侵。攻击者成功渗透了维护者的账户,从而将恶意代码注入到他们的软件包中。 此次攻击之所以特别危险,在于该恶意软件能够通过 npm 生态系统自我传播,自动修改 package.json 文件,并使用合法的维护者凭证重新发布特洛伊木马化的版本。

通过自动化扩大攻击面

与需要手动干预的传统供应链攻击不同,这种恶意软件像真正的「蠕虫」一样运作,具备自动传播能力。恶意代码会扫描受感染环境中的 npm 项目,自动修改其依赖项,并将其与嵌入的恶意软件一起重新发布,从而形成指数级的增长模式,能够迅速危及整个软件生态系统。

恶意软件分析

该恶意软件负载设计用于在多种环境中执行,包括开发人员工作站、CI/CD 管道和生产服务器,从而最大程度地发现和窃取凭证。

初始执行和持久化

恶意软件通过 npm 软件包生命周期挂钩执行,通常在软件包安装或更新过程中触发。 ### 多阶段凭证收集 恶意软件通过几个协调的阶段运作,每个阶段都旨在最大化凭证发现的同时,在不同环境类型中保持隐蔽。

第一阶段:环境侦察和 TruffleHog 部署 恶意软件首先会下载并执行合法的开源凭证扫描工具 TruffleHog,以系统地在受感染的系统中搜索暴露的秘密信息。

第二阶段:云端元数据端点利用 恶意软件专门针对云端环境元数据端点,以提取云端服务凭证和实例信息。

第三阶段:GitHub 仓库操纵 恶意软件在受感染的 GitHub 账户下创建名为「Shai-Hulud」的仓库,用于存储和组织被盗的凭证,使攻击者可以轻松获取。

先进的传播机制

也许这种恶意软件最令人担忧的方面是其自我传播能力,这使其无需人工干预即可在 npm 软件包之间自主传播。

自动化软件包修改 恶意软件会扫描受感染环境中的 package.json 文件,并自动修改它们以包含恶意依赖项或生命周期挂钩。

利用 GitHub Actions 恶意软件利用 GitHub Actions 来自动化凭证窃取,并在仓库更新过程中保持持久性。

影响和生态系统启示 这次 npm 供应链攻击标志着威胁行为者能力的显著演进,对软件开发生态系统构成了前所未有的风险: ### 指数级的传播潜力 蠕虫般的行为使其能够在 npm 生态系统中呈指数级增长。每个受感染的软件包都可能危及多个下游软件包,产生连锁反应,可在数小时内影响数千个项目。

针对开发人员的攻击 通过专门针对开发人员环境,此次攻击危及了那些通常拥有较高权限并能访问多个系统、仓库和云端环境的个人,从而使每次感染的潜在影响最大化。

大规模自动化凭证收集 TruffleHog 的整合使得在整个开发环境中系统地发现凭证成为可能,可能暴露: - GitHub 个人访问令牌 - 云端服务凭证(AWS、GCP、Azure) - 数据库连接字符串 - API 密钥和身份验证令牌 - SSH 私钥和证书

CI/CD 管道污染 恶意软件修改 package.json 文件并重新发布软件包的能力意味着它可以污染 CI/CD 管道,可能影响生产部署,并在已部署的应用程序中创建持久的后门。 ## 归因和威胁态势 此次攻击的特征与 S1ngularity/nx 威胁组织的特征一致,该组织以其先前复杂的 npm 供应链攻击而闻名。使用「Shai-Hulud」仓库命名惯例与之前的攻击模式相符,表明该威胁行为者仍在持续活动。

攻击复杂度指标

  • 先进的自动化能力

  • 多阶段负载设计

  • 云原生环境感知

  • 整合 GitHub Actions

  • 自我传播的蠕虫行为

结论

本次攻击中所分析的复杂的自我传播恶意软件,代表了供应链威胁能力的显著升级。通过结合自动化传播、全面的凭证收集以及对云原生环境的利用,该恶意软件展示了威胁行为者如何适应现代开发实践和基础设施。 这一事件凸显了供应链安全的极端重要性,以及在整个软件开发生命周期中采取全面安全措施的必要性。随着软件包生态系统的持续增长和开发实践日益云原生化,我们可以预见到更多针对现代软件开发基础元素的复杂攻击。

缓解建议

为防范类似的供应链攻击和自动化凭证收集,开发人员和组织应实施以下措施:

供应链安全措施

  • 使用软件包锁定文件以防止意外的版本更新

  • 为关键应用程序实施私有 npm 注册表

  • 定期审计和轮换维护者访问凭证

  • 启用分支保护规则,要求进行拉取请求审查

  • 对所有提交实施强制性安全扫描

  • 监控意外的仓库创建或可见性更改

随着供应链攻击变得更加自动化和复杂,积极的安全措施和全面的监控变得至关重要。npm 生态系统的庞大规模以及开发社区对第三方软件包的依赖,使得这一攻击向量对网络犯罪分子极具吸引力,需要整个软件开发社区提高警惕并加大安全投入。

相关推荐
清山博客3 小时前
OpenCV 人脸识别和比对工具
前端·webpack·node.js
要加油哦~3 小时前
AI | 实践教程 - ScreenCoder | 多agents前端代码生成
前端·javascript·人工智能
程序员Sunday3 小时前
说点不一样的。GPT-5.3 与 Claude Opus 4.6 同时炸场,前端变天了?
前端·gpt·状态模式
yq1982043011563 小时前
静思书屋:基于Java Web技术栈构建高性能图书信息平台实践
java·开发语言·前端
aPurpleBerry3 小时前
monorepo (Monolithic Repository) pnpm rush
前端
青茶3603 小时前
php怎么实现订单接口状态轮询请求
前端·javascript·php
鹏北海4 小时前
micro-app 微前端项目部署指南
前端·nginx·微服务
发现一只大呆瓜4 小时前
虚拟列表:从定高到动态高度的 Vue 3 & React 满分实现
前端·vue.js·react.js
css趣多多4 小时前
add组件增删改的表单处理
java·服务器·前端
证榜样呀4 小时前
2026 大专计算机专业必考证书推荐什么
大数据·前端