Analyzing the Gadgets Towards a Metric to Measure Gadget Quality
This work addresses a critical gap in cybersecurity for exploit developers and defenders by providing metrics to compare mitigation effectiveness, though it is incremental as it builds on existing gadget analysis.
The paper tackles the problem of lacking a common metric for gadget quality in code-reuse attacks, proposing four metrics to measure gadget quality, usefulness, and practicality, and finds that MPX binaries have a 17% increase in useful gadgets and reduced side-effects, making them more vulnerable to ROP attacks.
Current low-level exploits often rely on code-reuse, whereby short sections of code (gadgets) are chained together into a coherent exploit that can be executed without the need to inject any code. Several protection mechanisms attempt to eliminate this attack vector by applying code transformations to reduce the number of available gadgets. Nevertheless, it has emerged that the residual gadgets can still be sufficient to conduct a successful attack. Crucially, the lack of a common metric for "gadget quality" hinders the effective comparison of current mitigations. This work proposes four metrics that assign scores to a set of gadgets, measuring quality, usefulness, and practicality. We apply these metrics to binaries produced when compiling programs for architectures implementing Intel's recent MPX CPU extensions. Our results demonstrate a 17% increase in useful gadgets in MPX binaries, and a decrease in side-effects and preconditions, making them better suited for ROP attacks.