TY - GEN
T1 - BinTrimmer
T2 - 16th International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment, DIMVA 2019
AU - Redini, Nilo
AU - Wang, Ruoyu
AU - Machiry, Aravind
AU - Shoshitaishvili, Yan
AU - Vigna, Giovanni
AU - Kruegel, Christopher
N1 - Publisher Copyright:
© Springer Nature Switzerland AG 2019.
PY - 2019
Y1 - 2019
N2 - The increasing complexity of modern programs motivates software engineers to often rely on the support of third-party libraries. Although this practice allows application developers to achieve a compelling time-to-market, it often makes the final product bloated with conspicuous chunks of unused code. Other than making a program unnecessarily large, this dormant code could be leveraged by willful attackers to harm users. As a consequence, several techniques have been recently proposed to perform program debloating and remove (or secure) dead code from applications. However, state-of-the-art approaches are either based on unsound strategies, thus producing unreliable results, or pose too strict assumptions on the program itself. In this work, we propose a novel abstract domain, called Signedness-Agnostic Strided Interval, which we use as the cornerstone to design a novel and sound static technique, based on abstract interpretation, to reliably perform program debloating. Throughout the paper, we detail the specifics of our approach and show its effectiveness and usefulness by implementing it in a tool, called BinTrimmer, to perform static program debloating on binaries. Our evaluation shows that BinTrimmer can remove up to 65.6% of a library’s code and that our domain is, on average, 98% more precise than the related work.
AB - The increasing complexity of modern programs motivates software engineers to often rely on the support of third-party libraries. Although this practice allows application developers to achieve a compelling time-to-market, it often makes the final product bloated with conspicuous chunks of unused code. Other than making a program unnecessarily large, this dormant code could be leveraged by willful attackers to harm users. As a consequence, several techniques have been recently proposed to perform program debloating and remove (or secure) dead code from applications. However, state-of-the-art approaches are either based on unsound strategies, thus producing unreliable results, or pose too strict assumptions on the program itself. In this work, we propose a novel abstract domain, called Signedness-Agnostic Strided Interval, which we use as the cornerstone to design a novel and sound static technique, based on abstract interpretation, to reliably perform program debloating. Throughout the paper, we detail the specifics of our approach and show its effectiveness and usefulness by implementing it in a tool, called BinTrimmer, to perform static program debloating on binaries. Our evaluation shows that BinTrimmer can remove up to 65.6% of a library’s code and that our domain is, on average, 98% more precise than the related work.
UR - http://www.scopus.com/inward/record.url?scp=85067833497&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85067833497&partnerID=8YFLogxK
U2 - 10.1007/978-3-030-22038-9_23
DO - 10.1007/978-3-030-22038-9_23
M3 - Conference contribution
AN - SCOPUS:85067833497
SN - 9783030220372
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 482
EP - 501
BT - Detection of Intrusions and Malware, and Vulnerability Assessment - 16th International Conference, DIMVA 2019, Proceedings
A2 - Perdisci, Roberto
A2 - Perdisci, Roberto
A2 - Maurice, Clémentine
A2 - Giacinto, Giorgio
A2 - Almgren, Magnus
PB - Springer Verlag
Y2 - 19 June 2019 through 20 June 2019
ER -