Not All Dependencies are Equal: An Empirical Study on Production Dependencies in NPM

07/29/2022
by   Jasmine Latendresse, et al.
0

Modern software systems are often built by leveraging code written by others in the form of libraries and packages to accelerate their development. While there are many benefits to using third-party packages, software projects often become dependent on a large number of software packages. Consequently, developers are faced with the difficult challenge of maintaining their project dependencies by keeping them up-to-date and free of security vulnerabilities. However, how often are project dependencies used in production where they could pose a threat to their project's security? We conduct an empirical study on 100 JavaScript projects using the Node Package Manager (npm) to quantify how often project dependencies are released to production and analyze their characteristics and their impact on security. Our results indicate that less than 1 released to production. Our analysis reveals that the functionality of a package is not enough to determine if it will be released to production or not. In fact, 59 are not used in production, and 28.2 development dependencies are used in production, debunking two common assumptions of dependency management. Findings also indicate that most security alerts target dependencies not used in production, making them highly unlikely to be a risk for the security of the software. Our study unveils a more complex side of dependency management: not all dependencies are equal. Dependencies used in production are more sensitive to security exposure and should be prioritized. However, current tools lack the appropriate support in identifying production dependencies.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/12/2021

On the Impact of Security Vulnerabilities in the npm and RubyGems Dependency Networks

The increasing interest in open source software has led to the emergence...
research
10/27/2020

Dependency Smells in JavaScript Projects

Dependency management in modern software development poses many challeng...
research
09/30/2021

Towards a modern CMake workflow

Modern CMake offers the features to manage versatile and complex project...
research
06/11/2020

The Role of Modularity and Neuro-Regulation for the Production of Multiple Behaviors

This project investigates whether functional specialization or modularit...
research
08/29/2017

Why feature dependencies challenge the requirements engineering of automotive systems: An empirical study

Functional dependencies and feature interactions in automotive software ...
research
06/11/2019

Evolution of ROOT package management

ROOT is a large code base with a complex set of build-time dependencies;...
research
07/10/2023

Analyzing the Evolution of Inter-package Dependencies in Operating Systems: A Case Study of Ubuntu

An Operating System (OS) combines multiple interdependent software packa...

Please sign up or login with your details

Forgot password? Click here to reset