Defeating zombie gadgets by re-randomizing code upon disclosure

  • Micah Morton
  • , Hyungjoon Koo
  • , Forrest Li
  • , Kevin Z. Snow
  • , Michalis Polychronakis
  • , Fabian Monrose

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Over the past few years, return-oriented programming (ROP) attacks have emerged as a prominent strategy for hijacking control of software. The full power and flexibility of ROP attacks was recently demonstrated using just-in-time ROP tactics (JIT-ROP), whereby an adversary repeatedly leverages a memory disclosure vulnerability to identify useful instruction sequences and compile them into a functional ROP payload at runtime. Since the advent of just-in-time code reuse attacks, numerous proposals have surfaced for mitigating them, the most practical of which involve the re-randomization of code at runtime or the destruction of gadgets upon their disclosure. Even so, several avenues exist for performing code inference, which allows JIT-ROP attacks to infer values at specific code locations without directly reading the memory contents of those bytes. This is done by reloading code of interest or implicitly determining the state of randomized code. These so-called “zombie gadgets” completely undermine defenses that rely on destroying code bytes once they are read. To mitigate these attacks, we present a low-overhead, binary-compatible defense which ensures an attacker is unable to execute gadgets that were identified through code reloading or code inference. We have implemented a prototype of the proposed defense for closed-source Windows binaries, and demonstrate that our approach effectively prevents zombie gadget attacks with negligible runtime overhead.

Original languageEnglish
Title of host publicationEngineering Secure Software and Systems - 9th International Symposium, ESSoS 2017, Proceedings
EditorsElias Athanasopoulos, Eric Bodden, Mathias Payer
PublisherSpringer Verlag
Pages143-160
Number of pages18
ISBN (Print)9783319621043
DOIs
StatePublished - 2017
Externally publishedYes
Event9th International Symposium on Engineering Secure Software and Systems, ESSoS 2017 - Bonn, Germany
Duration: 3 Jul 20175 Jul 2017

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume10379 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference9th International Symposium on Engineering Secure Software and Systems, ESSoS 2017
Country/TerritoryGermany
CityBonn
Period3/07/175/07/17

Keywords

  • Code inference
  • Code reuse
  • Destructive reads
  • JIT-ROP

Fingerprint

Dive into the research topics of 'Defeating zombie gadgets by re-randomizing code upon disclosure'. Together they form a unique fingerprint.

Cite this