网站服务器租用技巧,做淘宝店铺标志的网站,wordpress给tag增加字段,杭州网站建设方案推广“Shai-Hulud” 是一种新型的自我复制蠕虫#xff0c;于2025年9月被发现#xff0c;它专门攻击 JavaScript 生态系统中的 npm 包。这种攻击利用了软件供应链中的信任链#xff0c;其自我传播能力使其成为有史以来最严重的 JavaScript 供应链攻击之一。本文将想你揭示感染后的…“Shai-Hulud” 是一种新型的自我复制蠕虫于2025年9月被发现它专门攻击 JavaScript 生态系统中的 npm 包。这种攻击利用了软件供应链中的信任链其自我传播能力使其成为有史以来最严重的 JavaScript 供应链攻击之一。本文将想你揭示感染后的后果演示
本文源自 沙虫Shai-Hulud自我复制原理及演示
推荐超级课程
本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战 攻击演示及工作原理
“Shai-Hulud”蠕虫的攻击过程可以概括为以下几个关键步骤 初始感染: 攻击者通过网络钓鱼等手段窃取了 npm 包维护者的账户凭据。 植入恶意代码: 攻击者利用窃取的凭据向受害者维护的 npm 包中植入恶意代码并发布新版本。恶意代码通常位于一个 bundle.js 文件中并通过 package.json 文件的 postinstall 脚本来执行。 本地凭据窃取: 一旦被感染的 npm 包被下载并安装postinstall 脚本就会自动运行。该脚本会在受害者的计算机上主要针对 Linux 和 macOS 系统搜索并窃取各种敏感信息包括 GitHub 令牌 npm 认证令牌 AWS 和 GCP 等云服务凭据 其他环境变量中暴露的密钥 数据外泄与传播: 公开暴露: 恶意软件会将窃取到的凭据打包并在受害者的 GitHub 账户下创建一个名为 “Shai-Hulud” 的公共仓库将这些敏感信息公开提交。这不仅是一种数据外泄方式也是对受害者的公开羞辱。 自我复制: 这是攻击最危险的部分。蠕虫会利用窃取到的 npm 令牌登录受害者的账户。它会自动识别受害者维护的其他 npm 包向这些包中注入相同的恶意代码然后将新版本发布到 npm 注册表上。 连锁反应: 这种机制形成了一个快速、自动化的传播链。一个被感染的包会感染其维护者的所有其他包这些包又会感染新的开发者从而像滚雪球一样在整个 npm 生态系统中迅速蔓延。 自我复制机制
Shai-Hulud恶意软件的核心创新在于其通过NpmModule.updatePackage函数实现了自复制机制。与传统供应链攻击不同它能够自动识别并感染被入侵开发者维护的其他软件包从而实现“蠕虫式”传播。
传播过程包括
下载现有软件包压缩包修改package.json文件注入恶意postinstall脚本嵌入约3.6MB的压缩后bundle.js有效载荷重新打包并发布到npm注册表
这一过程无需人工干预可全自动在npm生态中横向扩散
被盗取密钥示例
以下以Github Token被盗取为例演示你的信息如何泄露的。 到Github上搜索 “Shai-Hulud” 关键字的代码仓库。这个仓库中只有一个data.json文件的提交 复制这个data.json中的字符串。有一定编程经验的老手可以直接猜出这个看似一个base64的字符串没错它就是base64的字符串只不过是二次encoded的字符串。我们来试着decode一下 echo 上面拷贝的字符串 | base64 -d | base64 -d可怕的事情你会发现它盗取了你当前环境的所有 环境变量如果你在环境变量中设置了AWSGoogleAzure等云的密钥信息甚至是生产环境的密钥那恭喜你你完蛋了 各种密钥 GithubAWS, GCP, Npm, Bitcoin, BlockChain
如何防范
为了保护自己免受此类攻击请立即采取以下行动 检查可疑账户活动: 检查你的 npm 和 GitHub 账户活动查找是否有未经授权的包发布或仓库创建。 轮换凭据: 如果你使用了任何受影响的包请立即轮换所有相关的 npm、GitHub 以及云服务AWS、GCP 等凭据。 审查依赖项: 定期审计你的 package.json 文件和 package-lock.json 文件检查是否有可疑的新增或版本号更改。 使用安全工具: 考虑使用像 Socket.dev 这样的工具它们可以分析你的依赖项并在发现已知的恶意包时发出警告。 保持警惕: 对来自未知来源的 npm 或 GitHub 电子邮件保持警惕尤其是在要求你更新账户或验证 MFA 信息的邮件中。