2020
DOI: 10.1145/3414997
|View full text |Cite
|
Sign up to set email alerts
|

Large-scale Debloating of Binary Shared Libraries

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 possib… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
41
0

Year Published

2020
2020
2022
2022

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 23 publications
(44 citation statements)
references
References 75 publications
0
41
0
Order By: Relevance
“…In contrast, our study focuses on the evolution and the emergence of bloat in Java projects, while spotting some of the current research gaps and tooling for effective dependency management. Other studies have focused on eliminating bloat in source code [33], binary shared libraries [1], highly configurable programs [15], or containers [24]. Other works have focused on improving the debloat process through various optimizations techniques [2,3,11,31,35].…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…In contrast, our study focuses on the evolution and the emergence of bloat in Java projects, while spotting some of the current research gaps and tooling for effective dependency management. Other studies have focused on eliminating bloat in source code [33], binary shared libraries [1], highly configurable programs [15], or containers [24]. Other works have focused on improving the debloat process through various optimizations techniques [2,3,11,31,35].…”
Section: Related Workmentioning
confidence: 99%
“…In this work, we consider a software project as a collection of Java source code files and configuration files organized to be build with Maven. 1 In this section, we present the key concepts for the analysis of a project 𝑝 in the context of the set of its software dependencies, denoted as D.…”
Section: Introductionmentioning
confidence: 99%
“…Debloating We implemented a function-level debloating [2,14] tool for x86_64 and ARM64. Starting from the program entry point and from every function whose address is taken, this tool iterates over our control-flow graph and finds all reachable code.…”
Section: Egalito Toolsmentioning
confidence: 99%
“…We implemented inplace randomization [44], and a JIT-Shuffling continuous randomization technique (based on Shuffler [61] and TASR [8]). We also implemented debloating [2,14], where unneeded code is removed from the program to improve security. Finally, control-flow integrity (CFI) is another code-reuse defense, where the target of every indirect control flow is validated [1,31,48].…”
Section: Introductionmentioning
confidence: 99%
“…Guided linking can sometimes replace dynamic relocations with static references; in other cases, caching can be combined with our system for an additional performance gain. [Agadakos et al 2019;Davidsson et al 2019;Mulliner and Neugschwandtner 2015;Ziegler et al 2019]. The primary goal is to improve security by reducing the attack surface, with code size reduction as a secondary goal.…”
Section: Optimizing Dynamically Linked Codementioning
confidence: 99%