一场名为“沙伊-哈路德”的大规模供应链攻击通过npm注册表渗透了JavaScript生态系统。
总共发现了477个软件包,其中包括来自CrowdStrike的软件包,这些软件包含有隐蔽的后门程序和被植入木马的模块,其设计目的是窃取凭证、泄露源代码,并在开发人员的计算机上实现远程代码执行(RCE)。
沙伊-哈路德供应链攻击
攻击者的攻击活动始于2025年8月初,当时他们利用被攻陷的维护者账户发布恶意更新,这些更新仅涉及小版本号的提升(例如,从1.2.3升至1.2.4)。
每次更新都会在模块入口文件(通常是index.js)中注入一个小型的、经过混淆处理的有效载荷。该加载器会连接到一个命令与控制(C2)服务器,以获取第二阶段的有效载荷。
Socket报告称,该有效载荷会搜索项目目录中的.env文件、SSH私钥(id_rsa)以及存储在.git/config中的Git凭据,然后将这些信息以加密形式传输回攻击者的基础设施。
沙伊-哈路德(Shai-Halud)利用版本范围劫持,使攻击者能够保持持久控制权:指定依赖项时使用宽松语义化版本范围(例如“^1.2.0”)的下游项目会自动拉入被植入木马的版本。
许多备受关注的库都受到了影响,其中既有开发工具和命令行界面实用程序,也有用户界面组件框架,这扩大了影响范围。检测策略包括:
将npm audit、Snyk或OWASP Dependency-Check等工具集成到CI管道中,以标记异常的版本发布。
通过npm ci –prefer-offline –hash-checksums,根据已知有效的SHA-256哈希值验证包的完整性。采用运行时监控(例如,Windows上的Sysmon、Linux上的auditd)来检测意外的网络调用或eval()的使用。
缓解措施
- 锁定依赖版本:固定到特定的包版本,避免使用宽泛的语义化版本范围。
- 轮换密钥:撤销并重新生成所有暴露的API令牌、SSH密钥和环境变量。
- 审核你的依赖项:运行 npm ls –prod –depth=0 以查看直接依赖项并对照安全公告进行交叉检查。
由于开源生态系统仍是主要目标,因此通过严格的验证和持续的监控来保护软件供应链比以往任何时候都更为关键。
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。