Large-scale Debloating of Binary Shared Libraries

Author:

Agadakos Ioannis1,Demarinis Nicholas2,Jin Di2,Williams-King Kent2,Alfajardo Jearson2,Shteinfeld Benjamin2,Williams-King David3,Kemerlis Vasileios P.2,Portokalidis Georgios4

Affiliation:

1. SRI International, New York, NY

2. Brown University, Providence, RI

3. Columbia University, New York, NY

4. Stevens Institute of Technology, Hoboken, NJ

Abstract

Developers nowadays have access to an arsenal of toolkits and libraries for rapid application prototyping. However, when an application loads a library, the entirety of that library’s code is mapped into the process address space, even if only a single function is actually needed. The unused portion is bloat that can negatively impact software defenses by unnecessarily inflating their overhead or increasing the attack surface. In this article, we investigate whether debloating is possible and practical at the binary level. To this end, we present Nibbler : a system that identifies and erases unused functions within dynamic shared libraries. Nibbler works in tandem with defenses such as continuous code re-randomization and control-flow integrity, enhancing them without incurring additional run-time overhead. We developed and tested a prototype of Nibbler on x86-64 Linux; Nibbler reduces the size of shared libraries and the number of available functions, for real-world binaries and the SPEC CINT2006 suite, by up to 56% and 82%, respectively. We also demonstrate that Nibbler benefits defenses by showing that: (i) it improves the deployability of a continuous re-randomization system for binaries, namely, Shuffler, by increasing its efficiency by 20%, and (ii) it improves certain fast but coarse and context-insensitive control-flow integrity schemes by reducing the number of gadgets reachable through indirect branch instructions by 75% and 49%, on average. Last, we apply Nibbler on ≈30K C/C++ binaries and ≈5K unique dynamic shared libraries (i.e., almost the complete set of the Debian sid distribution), as well as on nine official Docker images (with millions of downloads in Docker Hub), reporting entrancing findings regarding code bloat at large.

Funder

Office of Naval Research

Publisher

Association for Computing Machinery (ACM)

Subject

General Medicine

Reference108 articles.

1. Control-flow integrity

2. Nibbler

3. Alexa. 2018. The top 500 sites on the web. Retrieved from https://www.alexa.com/topsites. Alexa. 2018. The top 500 sites on the web. Retrieved from https://www.alexa.com/topsites.

4. Function boundary detection in stripped binaries

Cited by 8 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. SysPart: Automated Temporal System Call Filtering for Binaries;Proceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security;2023-11-15

2. FineIBT: Fine-grain Control-flow Enforcement with Indirect Branch Tracking;Proceedings of the 26th International Symposium on Research in Attacks, Intrusions and Defenses;2023-10-16

3. Thread-Level Attack-Surface Reduction;Proceedings of the 24th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems;2023-06-13

4. Coverage-Based Debloating for Java Bytecode;ACM Transactions on Software Engineering and Methodology;2023-04-04

5. Trimmer: Context-Specific Code Reduction;Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering;2022-10-10

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3