A double-edged sword? Software reuse and potential security vulnerabilities

A Gkortzis, D Feitosa, D Spinellis - Reuse in the Big Data Era: 18th …, 2019 - Springer
Reuse in the Big Data Era: 18th International Conference on Software and …, 2019Springer
Reuse is a common and often-advocated software development practice. Significant efforts
have been invested into facilitating it, leading to advancements such as software forges,
package managers, and the widespread integration of open source components into
proprietary software systems. Reused software can make a system more secure through its
maturity and extended vetting, or increase its vulnerabilities through a larger attack surface
or insecure coding practices. To shed more light on this issue, we investigate the …
Abstract
Reuse is a common and often-advocated software development practice. Significant efforts have been invested into facilitating it, leading to advancements such as software forges, package managers, and the widespread integration of open source components into proprietary software systems. Reused software can make a system more secure through its maturity and extended vetting, or increase its vulnerabilities through a larger attack surface or insecure coding practices. To shed more light on this issue, we investigate the relationship between software reuse and potential security vulnerabilities, as assessed through static analysis. We empirically investigated 301 open source projects in a holistic multiple-case methods study. In particular, we examined the distribution of potential vulnerabilities between the native code created by a project’s development team and external code reused through dependencies, as well as the correlation between the ratio of reuse and the density of vulnerabilities. The results suggest that the amount of potential vulnerabilities in both native and reused code increases with larger project sizes. We also found a weak-to-moderate correlation between a higher reuse ratio and a lower density of vulnerabilities. Based on these findings it appears that code reuse is neither a frightening werewolf introducing an excessive number of vulnerabilities nor a silver bullet for avoiding them.
Springer