Is Less Really More? Why Reducing Code Reuse Gadget Counts via Software Debloating Doesn't Necessarily Lead to Better Security

02/28/2019
by   Michael D. Brown, et al.
0

Nearly all modern software suffers from bloat that negatively impacts its performance and security. To combat this problem, several automated techniques have been proposed to debloat software. A key metric used in these works to demonstrate improved security is code reuse gadget count reduction. The use of this metric is based on the prevailing idea that reducing the number of gadgets available in a software package reduces its attack surface and makes mounting a gadget-based code reuse attack such as return-oriented programming more difficult for an attacker. In this paper, we challenge this idea and show through a variety of realistic debloating scenarios the flaws inherent to the gadget count reduction metric. Specifically, we demonstrate that software debloating can achieve high gadget count reduction rates, yet fail to limit an attacker's ability to construct an exploit. Worse yet, in some scenarios high gadget count reduction rates conceal instances in which software debloating makes security worse by introducing new high quality gadgets. To address these issues, we outline a set of measures for accurately assessing the security impact of software debloating with respect to gadget-based code reuse attacks. Further, we address complications in implementing these measures arising from the shortcomings of automated debloating models by proposing a security oriented human-in-the-loop model that overcomes these limitations.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset