NodeShield: Runtime Enforcement of Security-Enhanced SBOMs for Node.js
Eric Cornelissen, Musard Balliu

TL;DR
NodeShield is a runtime security mechanism for Node.js applications that enforces dependency and resource access policies using an extended SBOM standard, effectively preventing supply chain attacks with minimal performance impact.
Contribution
This work introduces NodeShield, which enforces dependency hierarchies and resource access policies at runtime using SBOM and CBOM extensions without modifying existing code or runtime.
Findings
Prevents over 98% of known supply chain attacks
Incurs less than 1ms overhead per request
Maintains broad compatibility with vanilla Node.js
Abstract
The software supply chain is an increasingly common attack vector for malicious actors. The Node.js ecosystem has been subject to a wide array of attacks, likely due to its size and prevalence. To counter such attacks, the research community and practitioners have proposed a range of static and dynamic mechanisms, including process- and language-level sandboxing, permission systems, and taint tracking. Drawing on valuable insight from these works, this paper studies a runtime protection mechanism for (the supply chain of) Node.js applications with the ambitious goals of compatibility, automation, minimal overhead, and policy conciseness. Specifically, we design, implement and evaluate NodeShield, a protection mechanism for Node.js that enforces an application's dependency hierarchy and controls access to system resources at runtime. We leverage the up-and-coming SBOM standard as the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
