Containing Malicious Package Updates in npm with a Lightweight Permission System

03/08/2021
by   Gabriel Ferreira, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/11/2016

Package equivalence in complex software network

The public package registry npm is one of the biggest software registry....
research
02/28/2022

Practical Automated Detection of Malicious npm Packages

The npm registry is one of the pillars of the JavaScript and TypeScript ...
research
05/31/2023

You Can Run But You Can't Hide: Runtime Protection Against Malicious Package Updates For Node.js

Maliciously prepared software packages are an extensively leveraged weap...
research
07/18/2023

The Hitchhiker's Guide to Malicious Third-Party Dependencies

The increasing popularity of certain programming languages has spurred t...
research
04/23/2018

Measurement Errors in R

This paper presents an R package to handle and represent measurements wi...
research
02/11/2021

I Know What You Imported Last Summer: A study of security threats in thePython ecosystem

The popularity of Python has risen rapidly over the past 15 years. It is...
research
05/05/2023

Meta-Maintanance for Dockerfiles: Are We There Yet?

Docker allows for the packaging of applications and dependencies, and it...

Please sign up or login with your details

Forgot password? Click here to reset