艾体宝新闻 | 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 生态系统的庞大规模以及开发社区对第三方软件包的依赖,使得这一攻击向量对网络犯罪分子极具吸引力,需要整个软件开发社区提高警惕并加大安全投入。

相关推荐
摇滚侠2 小时前
PNPM 包管理工具和 NPM 包管理工具
vscode·npm·node.js·pnpm
qq_12498707532 小时前
基于springboot+vue的家乡特色旅游宣传推荐系统(源码+论文+部署+安装)
java·前端·vue.js·spring boot·毕业设计·计算机毕设·计算机毕业设计
pas1362 小时前
38-mini-vue 实现解析 element
前端·javascript·vue.js
We་ct2 小时前
LeetCode 3. 无重复字符的最长子串:滑动窗口最优解演进与解析
前端·算法·leetcode·typescript
奔跑的web.2 小时前
前端使用7种设计模式的核心原则
前端·javascript·设计模式·typescript·vue
蜕变菜鸟2 小时前
折叠页面 css
前端
菩提小狗3 小时前
小迪安全2022-2023|第35天:WEB攻防-通用漏洞&XSS跨站&反射&存储&DOM&盲打&劫持|web安全|渗透测试|
前端·安全·xss
这个昵称也不能用吗?3 小时前
React 19 【use】hook使用简介
前端·react.js·前端框架
web小白成长日记3 小时前
修复 Storybook MDX 中 “does not provide an export named ‘ArgsTable‘” 的实战
前端