中文

NodeShield:面向 Node.js 的安全增强型 SBOM 运行时强制

密码学与安全 2025-09-03 v2

摘要

软件供应链日益成为恶意行为者的常见攻击向量。Node.js 生态系统因其规模和流行性,遭受了广泛的攻击。为对抗此类攻击,研究社区和实践者提出了各种静态和动态机制,包括进程级和语言级沙箱、权限系统和污点跟踪。drawing on 这些工作的宝贵见识,本文研究了一种面向 Node.js 应用程序的运行时保护机制,其目标是兼容性、自动化、最小开销和政策简洁。具体而言,我们设计、实现并评估了 NodeShield,这是一种用于保护 Node.js 的机制,可在运行时强制执行应用程序的依赖层次结构并控制对系统资源的访问。我们利用正在兴起的 SBOM 标准作为应用程序依赖层次结构的真理来源,从而防止组件窃隐地滥用未声明的组件。我们提议通过一种表示组件可能访问的系统资源集合的能力概念来增强 SBOM。我们提议的 SBOM 扩展,称为 Capability Bill of Materials(CBOM),记录了每个组件所需的能力,为潜在特权行为提供了宝贵的见解。NodeShield 通过代码概述(而非内联)在运行时执行 SBOM 和 CBOM,无需修改原始代码或 Node.js 运行时,从而防止意外的、可能的恶意行为。我们的评估显示,NodeShield 能够阻止超过 98% 的已知供应链攻击,而对服务器的开销不足 1ms/请求。我们在保持广泛与 vanilla Node.js 兼容的同时,使用最多 7 项条目/依赖的简洁策略语言实现了这一目标。

关键词

引用

@article{arxiv.2508.13750,
  title  = {NodeShield: Runtime Enforcement of Security-Enhanced SBOMs for Node.js},
  author = {Eric Cornelissen and Musard Balliu},
  journal= {arXiv preprint arXiv:2508.13750},
  year   = {2025}
}

备注

15 pages, 3 figures, 9 tables