Visible to the public Defending against ROP Attacks with Nearly Zero Overhead

TitleDefending against ROP Attacks with Nearly Zero Overhead
Publication TypeConference Paper
Year of Publication2019
AuthorsQin, Peng, Tan, Cheng, Zhao, Lei, Cheng, Yueqiang
Conference Name2019 IEEE Global Communications Conference (GLOBECOM)
Keywordscomposability, Human Behavior, human factors, Libraries, Memory management, Monitoring, Programming, pubcrawl, resilience, Resiliency, rop attacks, Runtime, Scalability, static analysis, Training
AbstractReturn-Oriented Programming (ROP) is a sophisticated exploitation technique that is able to drive target applications to perform arbitrary unintended operations by constructing a gadget chain reusing existing small code sequences (gadgets) collected across the entire code space. In this paper, we propose to address ROP attacks from a different angle-shrinking available code space at runtime. We present ROPStarvation , a generic and transparent ROP countermeasure that defend against all types of ROP attacks with almost zero run-time overhead. ROPStarvation does not aim to completely stop ROP attacks, instead it attempts to significantly increase the bar by decreasing the possibility of launching a successful ROP exploit in reality. Moreover, shrinking available code space at runtime is lightweight that makes ROPStarvation practical for being deployed with high performance requirement. Results show that ROPStarvation successfully reduces the code space of target applications by 85%. With the reduced code segments, ROPStarvation decreases the probability of building a valid ROP gadget chain by 100% and 83% respectively, with the assumptions that whether the adversary knows the vulnerable applications are protected by ROPStarvation . Evaluations on the SPEC CPU2006 benchmark show that ROPStarvation introduces nearly zero (0.2% on average) run-time performance overhead.
DOI10.1109/GLOBECOM38437.2019.9013944
Citation Keyqin_defending_2019