Improvement Analysis of Function-Level over Package-Level Vulnerability Recommendations

Bachelor Thesis (2021)
Author(s)

N.L.C. Mook (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

M. Keshani – Mentor (TU Delft - Software Engineering)

S. Proksch – Mentor (TU Delft - Software Engineering)

Asterios Katsifodimos – Graduation committee member (TU Delft - Web Information Systems)

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2021 Niels Mook
More Info
expand_more
Publication Year
2021
Language
English
Copyright
© 2021 Niels Mook
Graduation Date
02-07-2021
Awarding Institution
Delft University of Technology
Project
Fine-Grained GitHub Dependency Analyzer
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

Software reuse in the form of dependencies has become widespread in software development. However, dependencies have the potential to suffer from vulnerabilities, thereby potentially putting depending projects at risk. Dependency analysis software can be used to manage vulnerable dependencies, such as Dependabot. Yet, such programs are generally inaccurate as a result of false positives, due to the limitations of package-level analysis. In the case of a false positive vulnerability recommendation, a software project imports a vulnerable dependency, but does not use any of its vulnerable functions. While most developers already do not pay enough attention to using vulnerable dependencies, false positives can only make this worse. Instead, function-level vulnerability analysis has the capability to eliminate package-level false positives. In this paper, research is performed to gain quantitative insight in the improvement of function-level over package-level analysis in terms of recommendation correctness. A package-level analysis simulation in combination with a function-level analysis was performed, built with the FASTEN framework. The latter uses RTA call graph generation and method tracing to remove package-level false positives. In total, 4071 open-source repositories were analyzed with 393 open-source vulnerabilities, of which 259 projects had positive recommendations. Comparison shows that 85\% of package-level recommendations are false positives, which are removed by performing function-level analysis instead. This indicates significant improvement by function-level analysis. Research on greater data sets would be needed for further insight in this improvement.

Files

BSc_Thesis_Mook_2021.pdf
(pdf | 0.855 Mb)
License info not available