Augmented Memory Instructions for Buffer Overflow Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current CPU architectures are vulnerable to buffer overflow attacks, as they do not effectively prevent the execution of injected bytecode due to the lack of execute disable flags, which recognize bytecode as general-purpose data and allow its execution by the CPU.

Innovation Solution

Introducing augmented load and store instructions that include permission validation to ensure that the permissions specified by the instructions match the permissions associated with the memory addresses, preventing execution by triggering a page fault if permissions do not match, thereby enhancing security against malicious code execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If CPU architectures use general-purpose data recognition for bytecode, then bytecode can be executed by the CPU, but the system becomes vulnerable to buffer overflow attacks and malicious code execution

Engineering Contradiction:
Improvebytecode execution capabilityVSAvoidbuffer overflow attack vulnerability
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent changes the permission parameters associated with bytecode memory regions by introducing execute disable flags that set specific permission bits (readable, writable, executable) to prevent malicious code execution while maintaining legitimate bytecode functionality

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces an intermediary permission validation mechanism that acts between the CPU and bytecode execution, using augmented instructions to check execute disable flags and prevent unauthorized code execution without affecting normal bytecode operation

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If execute disable flags are introduced to prevent malicious code execution, then security against buffer overflow attacks is improved, but the complexity of the CPU architecture increases

Engineering Contradiction:
Improvesecurity against buffer overflow attacksVSAvoidCPU architecture complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements execute disable flags using existing permission bit fields in the CPU architecture that are already used for memory management, allowing the same mechanism to serve both traditional memory protection and new security functions without adding separate dedicated hardware structures

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent modifies existing permission parameters (readable, writable, executable bits) to incorporate security checks, reusing existing architectural parameters for dual purposes of memory management and security enforcement

Inventive Principle:
Principle #35Parameter changes

3Reliability

If augmented load and store instructions with permission validation are implemented, then security is enhanced by preventing unauthorized memory operations, but the instruction complexity and processing overhead increase

Engineering Contradiction:
Improvesecurity through permission validationVSAvoidinstruction set complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges permission validation logic directly into the existing load and store instruction execution paths, combining security checks with standard memory access operations to avoid separate validation steps and reduce overall system complexity

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10795679B2Memory access instructions that include permission values for additional protection
Publication Date: 2020.10.06 RED HAT INC
  • US10795679B2 patent drawing
  • US10795679B2 patent drawing
  • US10795679B2 patent drawing

AI summary

Systems and methods for executing an augmented program instruction are described. An example method may include a central processing unit receiving an executable program instruction. The central processing unit determines that the executable program instruction is an augmented program instruction. The augmented program instruction may include operands that provide input for an operation to be performed and an additional operand specifying a validation permission value to be compared to a permission value associated with a page table entry referenced by the augmented program instruction. Upon determining that the validation permission value specified in the augmented program instruction matches the permission value associated with the page table entry referenced by the augmented program instruction, the central processing unit performing the operation specified by the augmented program instruction.