Scratching the Surface of ./configure: Learning the Effects of Compile-Time Options on Binary Size and Gadgets - Archive ouverte HAL Access content directly
Conference Papers Year : 2022

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

Abstract

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
Origin : Files produced by the author(s)

Dates and versions

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

Licence

Attribution

Identifiers

Cite

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⟩
223 View
142 Download

Altmetric

Share

Gmail Facebook X LinkedIn More