发布于2022年10月16日2年前 针对 npm 的注册表 API 发现的一种新颖的定时攻击可以被利用来潜在地泄露组织使用的私有包,使开发人员面临供应链威胁的风险。 “通过创建可能的包名称列表,威胁参与者可以检测组织范围内的私有包,然后伪装公共包,诱骗员工和用户下载它们,”Aqua Security 研究员 Yakir Kadkoda说。 Scoped Confusion 攻击分析了npm API (registry.npmjs[.]org) 在查询私有包时返回 HTTP 404 错误消息所需的时间,并根据不存在的响应时间测量它模块。 “与存在的私人包裹相比,获得不存在的私人包裹的回复平均需要更少的时间,”Kadkoda 解释说。 最终,这个想法是识别公司内部使用的软件包,然后威胁参与者可以使用这些软件包来创建相同软件包的公共版本,以试图毒化软件供应链。 最新发现也与依赖混淆攻击不同,它要求攻击者首先猜测组织使用的私有包,然后在公共范围内发布具有相同名称的虚假包。 相反,依赖混淆(又名命名空间混淆)依赖于包管理器在私有注册表之前检查包的公共代码注册表这一事实,从而导致从公共存储库中检索恶意更高版本的包。 Aqua Security 表示,它已于 2022 年 3 月 8 日向 GitHub 披露了该漏洞,促使微软旗下子公司发布回应称,由于架构限制,定时攻击将不会得到修复。 作为预防措施,建议组织定期扫描 npm 和其他包管理平台,以查找伪装成内部对应物的相似或欺骗包。 “如果你没有找到与你的内部包相似的公共包,请考虑创建公共包作为占位符以防止此类攻击,”Kadkoda 说。