paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Containing Malicious Package Updates in npm with a Lightweight Permission System

用轻量级权限系统遏制 npm 中的恶意包更新
ICSE 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE)2021匹配度 1/10 · 该论文关注 npm 供应链安全与包级运行时权限,不属于用户画像中的静态分析、LLM/Agent 交叉、浮点程序分析或贝叶斯程序分析等核心方向;虽然涉及程序权限与运行时机制,但与研究方向基本无关。引用 58 inbox
Gabriel Ferreira, Limin Jia, Joshua Sunshine, Christian Kastner
crossref: 2026-09-12dblp: 2026-09-12arxiv: 2026-09-12

AI 速览

一句话:提出在运行时按包强制的最小权限系统,限制 npm 包对文件系统与网络 API 的访问,抵御恶意更新。

Node.js/npm 生态中存在大量第三方包,攻击者可通过向其依赖推送恶意更新来攻陷应用。作者在调研 npm 仓库时发现,许多被 Node.js 应用使用的包只做简单计算,并不需要访问文件系统或网络 API,这为按包实施最小权限设计提供了机会。为此,论文提出一种轻量级权限系统,在运行时对包权限进行强制,从而同时保护应用与包依赖免受恶意更新的侵害。文章还讨论了此类解决方案的设计空间,并表明该系统能让大量包变得难以被利用,且代价几乎可以忽略。

问题
npm 等快速演进的软件生态中,第三方包依赖可被恶意更新攻陷,而现有机制难以按包实施最小权限。
方法
基于 npm 仓库中许多包仅做简单计算、无需文件系统或网络 API 的观察,设计并实现一个在运行时强制包权限的轻量级权限系统,并讨论其设计空间。
评估
通过分析 npm 仓库中包对文件系统与网络 API 的使用情况,论证方案可行性,并表明系统使大量包更难被利用而几乎不带来额外开销。
原文摘要(Abstract)

The large amount of third-party packages available in fast-moving software ecosystems, such as Node.js/npm, enables attackers to compromise applications by pushing malicious updates to their package dependencies. Studying the npm repository, we observed that many packages in the npm repository that are used in Node.js applications perform only simple computations and do not need access to filesystem or network APIs. This offers the opportunity to enforce least-privilege design per package, protecting applications and package dependencies from malicious updates. We propose a lightweight permission system that protects Node.js applications by enforcing package permissions at runtime. We discuss the design space of solutions and show that our system makes a large number of packages much harder to be exploited, almost for free.

链接与引用

DOI 原文 · arXiv · PDF(开放获取) · DBLP

BibTeX
@inproceedings{Ferreira0SK21,
  title = {Containing Malicious Package Updates in npm with a Lightweight Permission System},
  author = {Gabriel Ferreira and Limin Jia and Joshua Sunshine and Christian Kastner},
  booktitle = {ICSE},
  year = {2021},
  doi = {10.1109/icse43902.2021.00121}
}