ROP Attack Protection via Code Segmentation and Alarm Padding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for preventing Return-Oriented Programming (ROP) attacks often result in performance degradation, increased resource consumption, and fail to effectively detect and alert users to potential attacks, as they may crash the program without clear indication of the cause.

Innovation Solution

The method involves rearranging code blocks with padding areas between them, making it difficult for attackers to execute malicious gadgets, while also incorporating alarm-raising instructions within these padding areas to detect and notify users of potential ROP attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing ROP prevention techniques are applied, then security against ROP attacks is improved, but program performance degrades and resource consumption increases

Engineering Contradiction:
Improvesecurity against ROP attacksVSAvoidprogram performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The code is divided into multiple code blocks with padding areas inserted between them. This segmentation disrupts the continuous code structure that ROP attacks rely on, preventing attackers from easily chaining gadgets while maintaining original functionality. The padding areas act as barriers that break up potential attack vectors without significantly impacting performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Padding areas are introduced as intermediary elements between code blocks. These padding areas contain alarm-raising instructions that monitor for attack patterns. When a potential ROP attack is detected, the alarm instructions trigger notifications without crashing the program, thus providing security while preserving performance and user experience.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If existing ROP prevention techniques are applied, then security against ROP attacks is improved, but detection and user notification capability deteriorates

Engineering Contradiction:
Improvesecurity against ROP attacksVSAvoiddetection and user notification capability
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

Alarm-raising instructions are embedded within the padding areas to provide feedback when ROP attacks are detected. These instructions monitor execution flow and trigger notifications to users when suspicious patterns are identified, enabling detection and user awareness without crashing the program. This feedback mechanism improves both security detection and user notification capability.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The padding areas with alarm-raising instructions are pre-positioned between code blocks before execution. This preliminary arrangement ensures that detection capability is built into the code structure itself, allowing immediate detection of ROP attacks as they attempt to execute, rather than relying on post-execution analysis or external monitoring.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If existing ROP prevention techniques are applied, then security against ROP attacks is improved, but program stability deteriorates due to program crashes

Engineering Contradiction:
Improvesecurity against ROP attacksVSAvoidprogram stability
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

The padding areas, which initially appear to be inert space, are transformed into active security components containing alarm-raising instructions. When ROP attacks attempt to execute through these padding areas, the alarm instructions detect the attack and trigger notifications without crashing the program. This converts what would be harmful execution into a beneficial detection mechanism, maintaining program stability while improving security.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS10223527B2Protecting computer code against ROP attacks
Publication Date: 2019.03.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10223527B2 patent drawing
  • US10223527B2 patent drawing
  • US10223527B2 patent drawing

AI summary

A method, computer product and computerized system, the method comprising: receiving computer code to be protected, wherein the computer code comprising of code blocks arranged consecutively; modifying the computer code, whereby a modified computer code is created, wherein said modifying comprises: introducing a padding area inbetween every two code blocks, wherein each padding area comprises one or more computer instructions; and storing the modified computer code in a computer readable medium.