Scratching the Surface of ./configure: Learning the Effects of Compile-Time Options on Binary Size and Gadgets - Archive ouverte HAL
Communication Dans Un Congrès Année : 2022

Scratching the Surface of ./configure: Learning the Effects of Compile-Time Options on Binary Size and Gadgets

Résumé

Numerous software systems are configurable through compile-time options and the widely used ./configure. However, the combined effects of these options on binary's non-functional properties (size and attack surface) are often not documented, and or not well understood, even by experts. Our goal is to provide automated support for exploring and comprehending the configuration space (a.k.a., surface) of compile-time options using statistical learning techniques. In this paper, we perform an empirical study on four C-based configurable systems. We measure the variation of binary size and attack surface (by quantifying the number of code reuse gadgets) in over 400 compile-time configurations of a subject system. We then apply statistical learning techniques on top of our build infrastructure to identify how compile-time options relate to non-functional properties. Our results show that, by changing the default configuration, the system's binary size and gadgets vary greatly (roughly −79% to 244% and −77% to 30%, respectively). Then, we found out that identifying the most influential options can be accurately learned with a small training set, while their relative importance varies across size and attack surface for the same system. Practitioners can use our approach and artifacts to explore the effects of compile-time options in order to take informed decisions when configuring a system with ./configure.
Fichier principal
Vignette du fichier
paper32-ICSR2022_v03.pdf (972.13 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-03627246 , version 1 (01-04-2022)

Licence

Identifiants

Citer

Xhevahire Tërnava, Mathieu Acher, Jean-Marc Jézéquel, Arnaud Blouin, Luc Lesoil. Scratching the Surface of ./configure: Learning the Effects of Compile-Time Options on Binary Size and Gadgets. ICSR 2022 - 20th International Conference on Software and Systems Reuse, Jun 2022, Montpellier, France. pp.1-18, ⟨10.1007/978-3-031-08129-3_3⟩. ⟨hal-03627246⟩
295 Consultations
206 Téléchargements

Altmetric

Partager

More