ROP Chain Detection via Offset Dictionary Preprocessing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing static approaches for detecting Return-Oriented Programming (ROP) chains lack accuracy due to over-detection, as they focus solely on byte string features without considering the link among ROP chains, leading to incidental detection of non-ROP chains as malicious.

Innovation Solution

An attack code detection apparatus that includes a preprocessing unit to analyze library files and generate an offset dictionary of ROP gadgets and stack pointer increments, and a detecting unit to verify the validity of ROP chains in unknown data series, ensuring correct linking and reducing over-detection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If static detection focuses solely on byte string features, then detection speed is improved, but detection accuracy deteriorates due to over-detection of non-ROP chains

Engineering Contradiction:
Improvedetection speedVSAvoiddetection accuracy
Core Design Contradiction:
SpeedVSMeasurement precision

Solution Approach 1:

The detection process is segmented into two distinct phases: (1) preprocessing phase where library files are analyzed to extract ROP gadget addresses and build an offset dictionary, and (2) detection phase where the unknown data series is verified against the pre-built dictionary. This segmentation allows the system to maintain high detection speed through pre-computation while achieving high accuracy through structured verification of ROP chain linkages.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary analysis of library files to identify all possible ROP gadgets and their offsets before actual detection occurs. The offset dictionary is built in advance, containing ROP gadget addresses and their corresponding stack pointer increments. During detection, the system only needs to verify if the extracted chains match the pre-computed patterns, significantly improving detection speed while maintaining accuracy.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If verification of ROP chain linking is performed, then detection accuracy is improved, but device complexity increases

Engineering Contradiction:
Improvedetection accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The offset dictionary serves as an intermediary data structure that simplifies the verification process. Instead of directly analyzing the complex linkages between ROP gadgets in the unknown data series, the system uses the pre-built offset dictionary as a reference to verify chains. This intermediary structure reduces the computational complexity of verification while maintaining high detection accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system creates a simplified copy of the ROP chain structure in the offset dictionary during preprocessing, storing only the essential information (gadget addresses and offsets) needed for verification. This copied representation allows for fast comparison and validation during detection without requiring the full complexity of the original library file structures.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11010471B2Attack code detection apparatus, attack code detection method, and attack code detection program
Publication Date: 2021.05.18 NIPPON TELEGRAPH & TELEPHONE CORP
  • US11010471B2 patent drawing
  • US11010471B2 patent drawing
  • US11010471B2 patent drawing

AI summary

An attack code detection apparatus includes a preprocessing unit that analyzes in advance a library file for learning used in an ROP (Return Oriented Programming) chain, and obtains sets including the addresses of ROP gadgets, which represent pieces of code in the library file, and increment values of the stack pointer at the time of execution of the ROP gadgets; and a detecting unit that refers to the obtaining result of the preprocessing unit, that verifies, regarding an unknown data series representing the examination target, whether or not the ROP chain is valid in which the ROP gadgets are correctly linked, and that detects whether or not the unknown data series representing the examination target is a malicious data series.