npm恶意软件包威胁开发者应用开发者收到警告npm JavaScript注册表中出现了恶意版本的pgserve一款用于应用开发的嵌入式PostgreSQL服务器和automagik一款AI编码工具这些恶意软件包可能会感染开发者的计算机。下载并使用这些版本会导致数据、令牌、SSH密钥、凭证包括亚马逊云服务AWS、微软Azure和谷歌云平台GCP的凭证、浏览器钱包中的加密货币以及浏览器密码被盗取。此外该恶意软件还会传播到其他联网的PC。安全公司研究发现本周两家安全公司的研究人员发出了这些警告。Socket的研究人员发现针对寻找pgserve和automagik的应用开发者的虚假软件包出现了。pgserve用于应用开发和测试automagik是Namastex.ai推出的一款AI编码和代理编排命令行工具。研究人员表示此次攻击与近期被称为CanisterWorm的活动有相似之处CanisterWorm是一种利用蠕虫的供应链攻击它用恶意软件替换了npm上合法软件包的内容。在Socket审查时虚假的automagik/genie软件包每周下载量达6744次虚假的pgserve软件包每周下载量约为1300次。当Socket发布警告时automagik的虚假版本为4.260421.33至4.260421.39并且仍有新的恶意版本在不断发布和被识别。研究人员称受影响版本、维护者或发布路径受损的全面情况仍在调查中。StepSecurity的发现另外StepSecurity的研究人员也在npm上发现了pgserve的恶意版本。他们指出受影响的版本1.1.11、1.1.12和1.1.13会注入一个1143行的凭证收集脚本每次安装时都会通过postinstall运行。根据StepSecurity的说法pgserve的最后一个合法版本是v1.1.10。StepSecurity表示与简单的信息窃取程序不同这种恶意软件是一种供应链蠕虫如果它在受害者机器上找到npm发布令牌就会将自身重新注入该令牌可以发布的每个软件包中进一步扩大受影响范围。被盗数据会被加密并传输到一个去中心化的互联网计算机协议ICP容器这是一个区块链托管的计算端点选择它是因为执法部门或域名扣押无法将其关闭。软件供应链攻击案例这只是软件供应链攻击的最新案例。在这类攻击中威胁行为者希望开发者从开源注册表下载受感染的实用程序和工具并将其用于软件包中从而广泛传播恶意软件。例如上个月黑客入侵了Axios HTTP客户端库主要维护者的npm账户去年夏天攻击者还入侵了npm上的几个JavaScript测试实用程序。专家建议加拿大安全编码咨询公司SheHacksPurple的负责人Tanya Janca表示下载了pgserver和automagik恶意版本的开发者需要迅速采取行动。她建议“立即更换你能想到的所有凭证然后加强CI/CD网络出口控制让构建运行器只能访问其明确需要的域名。确保构建运行器和部署运行器使用具有不同权限的独立服务账户。目标是确保即使恶意软件包在你的构建环境中运行它也无法访问攻击者的基础设施用于数据和机密信息的窃取同时阻止它进入你的部署管道。”为防止受到任何恶意npm软件包的攻击Janca建议IT领导者默认禁用自动postinstall脚本执行。开发者也应立即运行命令“npm config set ignore - scripts true”。她承认这样做可能会导致一些合法软件包偶尔出现问题但目的是制造一个有意的阻碍点迫使开发者有意识地决定是否允许脚本在他们的机器上运行。此外开发者需要工具来检查发布到npm的内容是否与源代码仓库中的内容一致。Janca说“并非所有软件成分分析工具都能做到这一点所以要向供应商明确询问该工具是否能检测到注册表与仓库之间的不匹配。”最后她建议对发布令牌应用最小权限原则严格限制其范围只给予它们特定软件包所需的权限并定期自动轮换。Janca指出人们往往认为这只是一起凭证盗窃事件但实际上这可能导致整个组织被接管而且攻击可能分阶段进行。首先攻击者在安装时获取你的机密信息如AWS密钥、GitHub令牌、SSH密钥、数据库密码等其次如果有npm发布令牌蠕虫会立即利用它将自身注入你能发布的每个软件包中使下游用户也成为受害者第三被盗的云凭证会被用于渗透你的基础设施如创建资源、窃取数据、跨账户横向移动第四CI/CD管道会默认信任运行器和服务账户从而将攻击者的恶意代码引入生产环境。她还指出开发者往往需要很长时间才能发现这类攻击而此时攻击者可能已经访问了源代码、生产系统、客户数据以及用户依赖的软件。分析师观点Forrester Research的高级安全和风险分析师Janet Worthington表示近期的攻击如CanisterSprawl活动和Namastex.ai npm软件包被入侵显示威胁行为者的策略转向了自我传播的恶意软件这些软件会窃取凭证并自动感染其他软件包。她在一封电子邮件中提到“这种行为与早期的Shai - Hulud蠕虫爆发类似该蠕虫通过收集npm令牌并重新发布受感染的维护者版本在数百个软件包中传播。”虽然像npm这样的开放注册平台正在加强对发布者账户和令牌的保护但这些事件表明攻击不再局限于单个恶意软件包而是会迅速在注册表生态系统中蔓延甚至扩散到其他生态系统。Worthington建议企业通过维护精选注册表、在管道中自动化软件成分分析SCA以及使用依赖防火墙来限制暴露范围和影响半径确保只使用经过审查的开源和第三方组件。Janca指出开发者处于源代码、云基础设施、CI/CD管道和发布凭证的交叉点因此攻击一名开发者可能意味着攻击他们维护的每个软件包的所有用户甚至整个组织。近几个月的几次攻击还针对个人加密钱包和企业凭证。她表示“这表明攻击者清楚他们攻击的对象类型并在优化单次攻击的收益。”