Automatic Diversity in the Software Supply Chain

11/04/2021
by   Nicolas Harrand, et al.
0

Despite its obvious benefits, the increased adoption of package managers to automate the reuse of libraries has opened the door to a new class of hazards: supply chain attacks. By injecting malicious code in one library, an attacker may compromise all instances of all applications that depend on the library. To mitigate the impact of supply chain attacks, we propose the concept of Library Substitution Framework. This novel concept leverages one key observation: when an application depends on a library, it is very likely that there exists other libraries that provide similar features. The key objective of Library Substitution Framework is to enable the developers of an application to harness this diversity of libraries in their supply chain. The framework lets them generate a population of application variants, each depending on a different alternative library that provides similar functionalities. To investigate the relevance of this concept, we develop ARGO, a proof-of-concept implementation of this framework that harnesses the diversity of JSON suppliers. We study the feasibility of library substitution and its impact on a set of 368 clients. Our empirical results show that for 195 of the 368 java applications tested, we can substitute the original JSON library used by the client by at least 15 other JSON libraries without modifying the client's code. These results show the capacity of a Library Substitution Framework to diversify the supply chain of the client applications of the libraries it targets.

READ FULL TEXT

page 5

page 8

research
10/15/2021

Breaking Bad? Semantic Versioning and Impact of Breaking Changes in Maven Central

Just like any software, libraries evolve to incorporate new features, bu...
research
07/03/2019

Towards Automated Application-Specific Software Stacks

Software complexity has increased over the years. One common way to tack...
research
02/18/2019

Binary Debloating for Security via Demand Driven Loading

Modern software systems heavily use C/C++ based libraries. Because of th...
research
04/29/2021

The Behavioral Diversity of Java JSON Libraries

JSON is a popular file and data format that is precisely specified by th...
research
05/15/2023

CompSuite: A Dataset of Java Library Upgrade Incompatibility Issues

Modern software systems heavily rely on external libraries developed by ...
research
10/25/2018

Fine-Grained Library Customization

Code bloat widely exists in production-run software. Left untackled, it ...
research
03/20/2018

Generic Library Interception for Improved Performance Measurement and Insight

As applications grow in capability, they also grow in complexity. This c...

Please sign up or login with your details

Forgot password? Click here to reset