Enriched Pointer Integrity Verification for Secure Binary Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for executing binary code with microprocessors are vulnerable to a broad spectrum of attacks based on erroneous use of pointers, including stack overflow, stack underflow, and temporal safety violations, as they do not effectively detect and prevent invalid pointer usage across different memory regions.

Innovation Solution

The implementation of enriched pointers that include an address and a unique identifier, along with integrity and error correction codes, to securely manage data and function pointers, ensuring that only valid pointers are used within their designated memory contexts, and modifying compiler instructions to generate and enforce these secure pointers during binary code execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conventional pointers are used to manage memory addresses, then the ease of operation is improved, but the reliability deteriorates due to vulnerability to pointer misuse attacks

Engineering Contradiction:
Improveease of pointer usageVSAvoidsecurity against pointer attacks
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent embeds multiple layers of security information within the pointer structure itself. Each pointer contains not only the address but also associated metadata such as permissions, memory region identifiers, and validation codes. This nested structure allows the system to verify pointer validity and enforce access controls without requiring separate validation mechanisms, thus maintaining ease of operation while significantly improving reliability against pointer misuse attacks.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent transforms the traditional pointer parameter from a simple address value into a composite structure containing multiple parameters including address, permissions, memory region tags, and integrity codes. This parameter enrichment enables the system to detect and prevent various types of pointer attacks (stack overflow, use-after-free, dangling pointers) by validating these additional parameters during pointer usage, thereby improving reliability while preserving ease of operation through automated validation.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If enriched pointers with additional security information are implemented, then the reliability is improved, but the device complexity increases

Engineering Contradiction:
Improvesecurity against pointer attacksVSAvoidpointer structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where the enriched pointer structure automatically performs validation and security checks during normal operation. The pointer carries its own validation metadata and permissions, enabling it to self-verify its validity and enforce access controls without requiring complex external validation logic. This approach improves reliability while minimizing the increase in device complexity by shifting validation responsibilities to the pointer structure itself rather than requiring additional system-level complexity.

Inventive Principle:
Principle #25Self-service

3Reliability

If validation mechanisms are added to detect pointer misuse, then the reliability is improved, but the productivity decreases due to additional checking overhead

Engineering Contradiction:
Improvedetection of invalid pointer usageVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs validation actions in advance by embedding all necessary validation metadata directly into the pointer structure during pointer creation. Memory region identifiers, permissions, and integrity codes are pre-computed and attached to pointers before they are used. This preliminary action allows the system to perform rapid validation during pointer usage by simply checking pre-computed fields rather than performing complex validation routines at runtime, thus improving reliability while minimizing productivity loss.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts validation logic from complex runtime verification routines and embeds it directly into the pointer structure itself. By taking out the validation requirements and incorporating them as intrinsic parts of the pointer (metadata, permissions, region tags), the system performs validation through simple field comparisons rather than complex computational checks, thereby improving reliability while maintaining high execution speed and productivity.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11232194B2Method for executing a binary code of a secure function with a microprocessor
Publication Date: 2022.01.25 COMMISSARIAT A LENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
  • US11232194B2 patent drawing
  • US11232194B2 patent drawing
  • US11232194B2 patent drawing

AI summary

A method for executing a binary code of a secure function includes obtaining a pointer containing: a first range of bits containing the address of a line of code, and a second, different range of bits containing an identifier of the pointer, storing the line of code, this line of code containing a first integrity tag constructed or encrypted using the identifier of the pointer, loading the line of code from the address contained in the first range of bits of the pointer, verifying the integrity of the loaded line of code by constructing a second integrity tag using the identifier of the pointer contained in the second range of bits of the pointer used to load it.