Guard Regions for Memory Corruption Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional techniques lack an efficient and robust system for detecting and handling memory-corruption vulnerabilities in software, which can lead to dangerous consequences such as corruption of in-memory data.

Innovation Solution

The implementation of guard regions in memory, with bipartite guards and guard maps, to track and prevent disallowed memory accesses, ensuring the application program does not exploit these vulnerabilities by modifying its execution to prevent memory corruption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional techniques are used for detecting and handling software vulnerabilities, then the system is simpler to implement, but the system lacks robustness and efficiency in detecting and handling memory-corruption vulnerabilities

Engineering Contradiction:
Improverobustness in detecting memory-corruption vulnerabilitiesVSAvoidcomplexity of detection system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The memory is segmented into data regions and guard regions, with each guard region containing guard values. This segmentation allows the system to detect memory-corruption vulnerabilities by checking whether accessed memory locations contain guard values, thereby improving reliability without requiring a completely new detection architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Guard regions act as intermediaries between valid data regions and invalid memory areas. These guard regions contain distinctive guard values that serve as markers to detect unauthorized or erroneous memory accesses, enabling robust vulnerability detection while maintaining a relatively simple system structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If guard regions with bipartite guards are implemented to track memory accesses, then the system achieves high precision in detecting disallowed accesses, but the device complexity increases

Engineering Contradiction:
Improveprecision in detecting disallowed memory accessesVSAvoidcomplexity of guard region management
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

Different parts of the memory system are assigned different qualities: data regions contain valid data, guard regions contain guard values, and the system uses different detection mechanisms for different types of memory accesses. This local differentiation enables precise detection of disallowed accesses while keeping the overall system manageable through localized rather than universal complexity.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system uses distinctive guard values (analogous to color changes) to mark guard regions. By checking whether accessed memory locations contain these distinctive markers, the system achieves high precision in detecting unauthorized accesses. The use of specific marker values makes detection straightforward despite the added structural complexity.

Inventive Principle:
Principle #32Color changes

3Reliability

If the system modifies execution to prevent exploitation of memory vulnerabilities, then the security against memory-corruption vulnerabilities is improved, but the execution speed may be reduced

Engineering Contradiction:
Improveprotection against memory-corruption vulnerabilitiesVSAvoidexecution speed of application program
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by pre-establishing guard regions with guard values before the application program executes. This allows the detection mechanism to be already in place, enabling the system to detect and prevent memory-corruption vulnerabilities during normal execution without requiring extensive runtime modifications or slow post-hoc analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The guard region detection system operates autonomously to detect and prevent memory vulnerabilities. When a disallowed access is detected, the system automatically modifies execution to prevent exploitation without requiring external intervention or complex runtime decision-making processes, thereby maintaining execution speed while improving security.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10990667B2Systems and/or methods for automatically protecting against memory corruption vulnerabilities
Publication Date: 2021.04.27 GRAMMATECH INC
  • US10990667B2 patent drawing
  • US10990667B2 patent drawing
  • US10990667B2 patent drawing

AI summary

Certain example embodiments described herein relate to techniques for automatically protecting, or hardening, software against exploits of memory-corruption vulnerabilities. The techniques include arranging a plurality of guard regions in the memory in relation to data objects formed by the application program, identifying an access by the application program to a guard region arranged in the memory as a disallowed access, and modifying the execution of the application program in response to the identifying, the modifying being in order to prevent exploitation of the memory and/or to correctly execute the application program.