ROP Defense Using Trie Graph for System Security

ROP Defense Using Trie Graph for System Security

Alex Yao Chu Zhu, Wei Qi Yan, Roopak Sinha
Copyright: © 2021 |Pages: 12
DOI: 10.4018/IJDCF.20211101.oa7
Article PDF Download
Open access articles are freely available for download

Abstract

Most Intrusion Detection Systems (IDS) / Intrusion Prevention Systems (IPS) cannot defend the attacks from a Return Oriented Program (ROP) which applies code reusing and exploiting techniques without the need for code injection. Malicious attackers chain a short sequence as a gadget and execute this gadget as an arbitrary (Turing-complete) behavior in the target program. Lots of ROP defense tools have been developed with satisfactory performance and low costs overhead, but malicious attackers can evade ROP tools. Therefore, it needs security researchers to continually improve existing ROP defense tools, because the defense ability of target devices, such as smartphones is weak, and such devices are being increasingly targeted.  Our contribution in this paper is to propose an ROP defense method that has provided a better performance of defense against ROP attacks than existing ROP defense tools.
Article Preview
Top

ROP attacks were firstly documented in 2007 by Shacham,(2007) for the Intel x86 architecture. Among the state-of-the-art cyberattacks, ROP attack is a most effective cyberattack (Ding et al., 2012) illustrated by recent ROP attacks that have compromised Harvard architecture-based platforms, i.e., Apple iPhone and Sequoia AVC advantage that is impossible to be achieved by using traditional cyberattacks based on injection code (Checkoway, et al., 2010).

An attacker deliberately reuses code snippets inside the program to accomplish the execution of malicious codes (Li, et al,2018). The defined steps of this process chain sequence instructions together as a basic block within the memory address space (Hund, Holz, & Freiling, 2009). Gadgets are integrated together to replace the in action calls in Return-to-LIBC (McClure, Scambray, Kurtz, & Kurtz, 2009). There are six sorts of ROP evolution: 1). Return-to-LIBC; 2). Jump-Oriented Programming; 3). String-Oriented Programming; 4). Blind Return-Oriented Programming; 5). Signal Return-Oriented Programming; 6). Function-Oriented Programming.

Return-to-LIBC

Return-to-LIBC is one of ROP without a non-executable stack. It typically targets the process of returning address pointing to where the shared library, such as a C library that is loaded and accessible through UNIX processes (Shacham, 2007). The existing codes from the linked library and text segment can be leveraged to escalate privilege. A Return-to-LIBC changes a return address to direct to a new location of RAM to control program process flow. The requested arguments to the shared library function are stored in a stack where malicious attackers can access, modify them, and invoke other library functions.Return-to-LIBC attack allows a malicious attacker to execute arbitrary code. This is extremely difficult to be detected by using IDS/IPS as it neither does it modifies existing codes, nor injects malicious codes.

Complete Article List

Search this Journal:
Reset
Volume 16: 1 Issue (2024)
Volume 15: 1 Issue (2023)
Volume 14: 3 Issues (2022)
Volume 13: 6 Issues (2021)
Volume 12: 4 Issues (2020)
Volume 11: 4 Issues (2019)
Volume 10: 4 Issues (2018)
Volume 9: 4 Issues (2017)
Volume 8: 4 Issues (2016)
Volume 7: 4 Issues (2015)
Volume 6: 4 Issues (2014)
Volume 5: 4 Issues (2013)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing