Analyzing the Criticality of NPM Packages Through a Time-Dependent Dependency Graph

Bachelor Thesis (2022)
Author(s)

A.J.M. Brands (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

Georgios Gousios – Mentor (TU Delft - Software Technology)

Diomidis Spinellis – Mentor (TU Delft - Software Engineering)

Avishek Anand – Graduation committee member (TU Delft - Web Information Systems)

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2022 Anna Brands
More Info
expand_more
Publication Year
2022
Language
English
Copyright
© 2022 Anna Brands
Graduation Date
23-06-2022
Awarding Institution
Delft University of Technology
Project
['CSE3000 Research Project']
Programme
['Computer Science and Engineering']
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

In (open-source) development, developers routinely rely on other libraries to improve their coding efficiency by reusing code. This reliance on other packages could cause issues when critical dependencies have suddenly have a vulnerability introduced to them. This work analyzes the criticality for NPM. To get an accurate picture of what the most-critical and thus possibly most-vulnerable packages are, the entirety of NPM must be analyzed. However, this proved too big to be able to fit in 500GB of memory. This work therefore examines a small subset of 100 thousand packages. To do the analysis, this paper proposes a novel approach of embedding a time dimension into the package network to provide better accuracy. This papers analysis show that both with and without this time dimension, \texttt{babel} packages are by far the most important in the package graph (as measured by PageRank). We should, however, keep in mind that this came from only analyzing 100 thousand packages. Thus, further research is required to confirm this conclusion. In particular, other importance measures should be used to find out the packages' criticality.

Files

RP_FINAL_AJMBRANDS.pdf
(pdf | 1.4 Mb)
License info not available