Memory Categorization for Secure Data Separation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory corruption vulnerability defenses, such as Control Flow Integrity, are either expensive or insufficient in protecting against memory corruption attacks, and current full memory safety solutions incur high overhead, while attackers can still exploit vulnerabilities like Heartbleed by reading beyond memory boundaries or using dangling pointers.

Innovation Solution

The introduction of memory categorization, known as MEMCAT, which automatically separates trusted and untrusted data types in memory using separate stacks and heaps, categorizing allocations through static and dynamic analysis, and instrumenting allocations to enforce separation, thereby limiting attackers' ability to access sensitive data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If full memory safety defenses are implemented, then security against memory corruption attacks is improved, but system overhead becomes prohibitively high

Engineering Contradiction:
Improvesecurity against memory corruption attacksVSAvoidsystem overhead
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments memory into distinct categories (trusted and untrusted data types) using separate stacks and heaps. This segmentation allows selective security measures to be applied only where needed, rather than implementing full memory safety defenses across the entire memory space, thereby reducing overall system overhead while maintaining security against memory corruption attacks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different memory safety properties to different memory regions based on their trust level. Trusted data types receive full memory safety protection, while untrusted data types receive minimal or no protection. This local quality approach enables tailored security measures that reduce overhead in untrusted regions while maintaining strong security in trusted regions.

Inventive Principle:
Principle #3Local quality

2Reliability

If control flow integrity mitigations are applied, then protection against control flow modification is improved, but protection against data leakage remains insufficient

Engineering Contradiction:
Improveprotection against control flow modificationVSAvoiddata leakage through out-of-bound reads
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent segments data into trusted and untrusted categories, allowing different protection strategies for each. Trusted data is protected against both control flow modification and data leakage, while untrusted data is protected only against control flow modification. This segmentation resolves the contradiction by providing appropriate protection levels for different data types.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces memory categorization as an intermediary layer between the attacker and the data. By categorizing data into trusted and untrusted types, the system can mediate access control to provide fine-grained protection that addresses both control flow integrity and data leakage concerns appropriately.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If memory categorization is implemented, then security against memory corruption vulnerabilities is improved, but implementation complexity increases

Engineering Contradiction:
Improvesecurity against memory corruption vulnerabilitiesVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the memory management system into separate stacks and heaps for trusted and untrusted data. This segmentation, while adding some complexity, follows established memory management patterns and can be integrated with existing compilers and runtimes, thereby limiting the increase in implementation complexity while providing meaningful security improvements.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10229046B2Memory categorization
Publication Date: 2019.03.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10229046B2 patent drawing
  • US10229046B2 patent drawing
  • US10229046B2 patent drawing

AI summary

Separating data of trusted and untrusted data types in a memory of a computer during execution of a software program. Assigning mutually separated memory regions in the memory, namely, for each of the data types, a memory region for storing any data of the respective data type, and an additional memory region for storing any data which cannot be uniquely assigned to one of the data types. For each allocation instruction, performing a memory allocation including linking the allocation instruction to at least one data source, generating instruction-specific context information, evaluating the data source to determine the data type, associating the data type with the context information, based on the context information, assigning the allocation instruction to the memory region assigned to the evaluated data type, and allocating memory for storing data from the data source in the assigned memory region.