Litcius/Paper detail

Trimmer: An Automated System for Configuration-Based Software Debloating

Aatira Anum Ahmad, Abdul Rafae Noor, Hashim Sharif, Usama Hameed, Shoaib Asif, Mubashir Anwar, Ashish Gehani, Fareed Zaffar, Junaid Haroon Siddiqui

2021IEEE Transactions on Software Engineering17 citationsDOI

Abstract

Software bloat has negative implications for security, reliability, and performance. To counter bloat, we propose <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Trimmer</small> , a static analysis-based system for pruning unused functionality. <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Trimmer</small> removes code that is unused with respect to user-provided command-line arguments and application-specific configuration files. <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Trimmer</small> uses concrete memory tracking and a custom inter-procedural constant propagation analysis that facilitates dead code elimination. Our system supports both context-sensitive and context-insensitive constant propagation. We show that context-sensitive constant propagation is important for effective software pruning in most applications. We introduce <italic xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">sparse constant propagation</i> that performs constant propagation only for configuration-hosting variables and show that it performs better (higher code size reductions) compared to constant propagation for all program variables. Overall, our results show that <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Trimmer</small> reduces binary sizes for real-world programs with reasonable analysis times. Across 20 evaluated programs, we observe a mean binary size reduction of 22.7 percent and a maximum reduction of 62.7 percent. For 5 programs, we observe performance speedups ranging from 5 to 53 percent. Moreover, we show that winnowing software applications can reduce the program attack surface by removing code that contains exploitable vulnerabilities. We find that debloating using <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">Trimmer</small> removes CVEs in 4 applications.

Topics & Concepts

Context (archaeology)Computer scienceConstant (computer programming)PruningSource lines of codeSoftwareCode (set theory)Binary numberProgramming languageTheoretical computer scienceAlgorithmArtificial intelligenceMathematicsArithmeticBiologyPaleontologyAgronomySet (abstract data type)Security and Verification in ComputingAdvanced Malware Detection TechniquesDistributed systems and fault tolerance
Trimmer: An Automated System for Configuration-Based Software Debloating | Litcius