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