MAJORCA: Multi-Architecture JOP and ROP Chain Assembler

11/10/2021
by   Alexey Nurmukhametov, et al.
0

Nowadays, exploits often rely on a code-reuse approach. Short pieces of code called gadgets are chained together to execute some payload. Code-reuse attacks can exploit vulnerabilities in the presence of operating system protection that prohibits data memory execution. The ROP chain construction task is the code generation for the virtual machine defined by an exploited executable. It is crucial to understand how powerful ROP attacks can be. Such knowledge can be used to improve software security. We implement MAJORCA that generates ROP and JOP payloads in an architecture agnostic manner and thoroughly consider restricted symbols such as null bytes that terminate data copying via strcpy. The paper covers the whole code-reuse payloads construction pipeline: cataloging gadgets, chaining them in DAG, scheduling, linearizing to the ready-to-run payload. MAJORCA automatically generates both ROP and JOP payloads for x86 and MIPS. MAJORCA constructs payloads respecting restricted symbols both in gadget addresses and data. We evaluate MAJORCA performance and accuracy with rop-benchmark and compare it with open-source compilers. We show that MAJORCA outperforms open-source tools. We propose a ROP chaining metric and use it to estimate the probabilities of successful ROP chaining for different operating systems with MAJORCA as well as other ROP compilers to show that ROP chaining is still feasible. This metric can estimate the efficiency of OS defences.

READ FULL TEXT
research
11/16/2020

Survey of Methods for Automated Code-Reuse Exploit Generation

This paper provides a survey of methods and tools for automated code-reu...
research
11/05/2021

A practical analysis of ROP attacks

Control Flow Hijacking attacks have posed a serious threat to the securi...
research
03/11/2019

IskiOS: Lightweight Defense Against Kernel-Level Code-Reuse Attacks

Commodity operating systems such as Windows, Linux, and MacOS X form the...
research
04/13/2022

Software Supply Chain Map: How Reuse Networks Expand

Clone-and-own is a typical code reuse approach because of its simplicity...
research
07/05/2020

Steroids for DOPed Applications: A Compiler for Automated Data-Oriented Programming

The wide-spread adoption of system defenses such as the randomization of...
research
07/25/2018

Fast Flexible IO : A Compositional Approach to Storage Construction for High-Performance Devices

Building storage systems has remained the domain of systems experts for ...
research
09/14/2023

The Nonce-nce of Web Security: an Investigation of CSP Nonces Reuse

Content Security Policy (CSP) is an effective security mechanism that pr...

Please sign up or login with your details

Forgot password? Click here to reset