NodeShield: 运行时 SBOM 强制执行 (CBOM) 以微不足道的开销限制 Node.js 的供应链攻击

Node.js安全供应链

关键更新

一种名为 NodeShield 的新研究系统实现了应用程序 SBOM 的运行时强制执行,并结合了 Node.js 的能力物料清单 (CBOM):它在每个依赖项的沙箱中运行模块,强制执行声明的能力(网络、文件系统、eval、原生插件使用等),并在运行时阻止或记录偏差。在论文的评估中,NodeShield 防止了约 98% 的 67 个已知供应链攻击,同时每个请求增加了不到 1 毫秒的运行时开销,并要求紧凑的每个依赖项策略。(arxiv.org)

重要性

这是 SBOM 从静态清单工件转变为 Node.js 的主动运行时保护的首次实际演示,而无需修改 Node 运行时。对于交付服务器或边缘服务的团队来说,NodeShield 的方法改变了威胁模型:不仅仅是加强 CI 和注册表,您可以在生产中对第三方模块强制执行最小权限,并快速检测/恢复意外行为。

实际影响:

  • 将 SBOM 生成添加到 CI(CycloneDX/SPDX),并为依赖项推导或注释 CBOM 能力条目,然后在暂存环境中运行强制执行(日志模式),以在切换到阻止之前暴露实际违规行为。
  • 对于边缘情况,预计会有适度的工程工作:动态导入、原生插件和故意反射模式将需要能力注释或小的代码更改;这些在论文中被指出为限制。
  • NodeShield 是对其他防御措施(包签名、私有注册表、依赖项固定、操作系统/容器沙箱和 Node 的权限模型)的补充,而不是替代。其低开销和与原生 Node.js 的兼容性使其逐步采用成为可能——可以从保护高风险服务或面向公众的处理程序开始。

如果您管理 Node 服务,请在您的暂存管道中评估 NodeShield(或类似的运行时 SBOM 强制执行)作为供应链防御的实际下一层。(arxiv.org)

来源

继续阅读