Despite the numerous prevention and protection mechanisms that have been introduced into modern operating systems, the exploitation of memory corruption vulnerabilities still represents a serious threat to the security of software systems and networks. A recent exploitation technique, called Return-Oriented Programming (ROP), has lately attracted a considerable attention from academia. Past research on the topic has mostly focused on refining the original attack technique, or on proposing partial solutions that target only particular variants of the attack. In this paper, we present G-Free, a compiler-based approach that represents the first practical solution against any possible form of ROP. Our solution is able to eliminate all unaligned free-branch instructions inside a binary executable, and to protect the aligned free-branch instructions to prevent them from being misused by an attacker. We developed a prototype based on our approach, and evaluated it by compiling GNU libc and a number of real-world applications. The results of the experiments show that our solution is able to prevent any form of return-oriented programming.

G-Free : defeating return-oriented programming through gadget-less binaries / K. Onarlioglu, L. Bilge, A. Lanzi, D. Balzarotti, E. Kirda - In: ACSAC '10 : proceedings of the 26th annual computer security applications conference : december 6–10, 2010, Austin, Texas, USANew York : Association for computer machinery, 2010 Dec. - ISBN 9781450301336. - pp. 49-58 (( Intervento presentato al 26. convegno Annual Computer Security Applications Conference (ACSAC) tenutosi a Austin, USA nel 2010 [10.1145/1920261.1920269].

G-Free : defeating return-oriented programming through gadget-less binaries

A. Lanzi;
2010

Abstract

Despite the numerous prevention and protection mechanisms that have been introduced into modern operating systems, the exploitation of memory corruption vulnerabilities still represents a serious threat to the security of software systems and networks. A recent exploitation technique, called Return-Oriented Programming (ROP), has lately attracted a considerable attention from academia. Past research on the topic has mostly focused on refining the original attack technique, or on proposing partial solutions that target only particular variants of the attack. In this paper, we present G-Free, a compiler-based approach that represents the first practical solution against any possible form of ROP. Our solution is able to eliminate all unaligned free-branch instructions inside a binary executable, and to protect the aligned free-branch instructions to prevent them from being misused by an attacker. We developed a prototype based on our approach, and evaluated it by compiling GNU libc and a number of real-world applications. The results of the experiments show that our solution is able to prevent any form of return-oriented programming.
return-oriented programming; return-to-libc; ROP
Settore INF/01 - Informatica
dic-2010
Book Part (author)
File in questo prodotto:
Non ci sono file associati a questo prodotto.
Pubblicazioni consigliate

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2434/233521
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 191
  • ???jsp.display-item.citation.isi??? 85
social impact