文章摘要
GitLab发现npm生态系统正遭受大规模供应链攻击,恶意软件"Shai-Hulud"通过受感染包传播,具有蠕虫式自动扩散能力,并包含"死亡开关"机制威胁用户数据安全。GitLab确认自身未使用这些恶意包,并公开研究结果以协助安全社区应对。
文章总结
GitLab发现npm生态大规模供应链攻击事件
GitLab漏洞研究团队近日发现一起活跃的大规模供应链攻击事件,一种破坏性恶意软件变种正在通过npm生态系统传播。内部监测系统已发现多个受感染软件包,其中包含经过升级的"Shai-Hulud"恶意软件。
攻击特征分析: - 具备蠕虫式传播特性,可自动感染受影响开发者维护的其他软件包 - 包含"死亡开关"机制,当传播和数据外泄通道被切断时将威胁销毁用户数据 - 已确认GitLab未使用任何受感染软件包
技术细节: 1. 初始感染载体: - 通过修改package.json中的preinstall脚本指向setup_bun.js - 该加载器脚本伪装成安装Bun JavaScript运行环境,实际用于建立恶意执行环境
- 凭证窃取:
- 收集GitHub、npm、AWS、GCP和Azure凭证
- 使用Trufflehog工具扫描文件系统获取敏感信息
- 数据外泄网络:
- 利用被盗GitHub令牌创建标记为"Sha1-Hulud: The Second Coming"的公开仓库
- 构建弹性网络,使受感染系统共享访问令牌
- 供应链传播:
- 使用被盗npm令牌感染受害者维护的所有软件包
- 注入恶意脚本并重新发布受感染软件包
死亡开关机制: 当同时失去GitHub和npm访问权限时,将触发数据销毁程序: - Windows系统:删除所有用户文件并覆盖磁盘扇区 - Unix系统:使用shred命令覆盖文件后删除
检测与防护建议: 1. 使用GitLab Ultimate的依赖项扫描功能 2. 启用GitLab Duo Chat的安全分析代理 3. 重点关注以下IoC指标: - bun_environment.js文件 - .truffler-cache/目录 - 可疑的Bun安装命令
当前进展: GitLab正持续监控新感染情况,并与社区合作制定安全修复策略。此次攻击标志着供应链攻击的升级演变,其威胁机制使攻击者基础设施具备更强的防御能力。
(注:原文中的代码片段、图片引用及重复内容已作精简处理,保留核心技术细节和关键防护建议)
评论总结
评论总结:
- 关于NPM安全漏洞的普遍性
- 观点:NPM成为主要攻击目标可能因其普及度高
- 引用:"Does anyone know why NPM seems to be the only attractive target?"(wiradikusuma)
- 引用:"Not all the npm packages, but always an npm package"(TZubiri)
- 安全威胁的严重性
- 观点:凭证窃取是最令人担忧的问题
- 引用:"The credential harvesting aspect is what concerns me most"(thepasswordapp)
- 观点:这相当于经济战
- 引用:"is this not effectively (economic) warfare?"(Incipient)
- 解决方案建议
- 观点:开发者应定期更换凭证
- 引用:"This is why periodic credential rotation matters"(thepasswordapp)
- 观点:应建立开发者身份验证机制
- 引用:"enable developers to optionally identify themselves"(yupyupyups)
- 其他观点
- 观点:C语言编程相对安全
- 引用:"Lucky for us C programmers"(dmitrygr)
- 观点:对商业化推广持保留态度
- 引用:"until they used it to try and sell me on Gitlab's security features"(Aeolun)