Masking Mechanism for Secure Native Code Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for executing untrusted native code on computing devices face challenges in ensuring security while maintaining performance, as they often rely on virtualization or interpretation, which can lead to performance disadvantages and increased security risks.

Innovation Solution

A system that employs a masking mechanism to securely execute native code by ensuring target addresses are aligned to restricted byte boundaries, using a secure runtime environment to enforce code and data integrity, and utilizing hardware-based segmented memory protection to limit access and control flow integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If virtualization or interpretation is used to execute untrusted native code, then security is improved, but execution performance deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoidexecution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a secure runtime environment as an intermediary layer between the untrusted native code and the operating system. This environment provides security enforcement through controlled memory access and execution monitoring without requiring full virtualization or interpretation, thus maintaining native execution performance while improving security

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the execution environment into distinct protected regions with specific access permissions. By dividing memory into code segments, data segments, and stack segments with enforced access controls, the system achieves security through structural segmentation rather than through slow virtualized execution

Inventive Principle:
Principle #1Segmentation

2Reliability

If interpreted languages are used to limit unsafe operations, then security is improved, but execution performance deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoidexecution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces the mechanical interpretation process with direct native code execution under hardware-enforced constraints. Instead of using an interpreter to execute bytecodes with limited operations, the system compiles code to native machine instructions that execute at full processor speed while being constrained by hardware-based memory protection and access control mechanisms

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If virtual machine execution environments are used to isolate untrusted applications, then security is improved, but execution performance deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoidexecution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The secure runtime environment acts as a lightweight intermediary that provides isolation and security enforcement without the overhead of a full virtual machine. It monitors and controls access to system resources directly at the hardware level, eliminating the need for software-based virtualization layers that slow down execution

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8151349B1Masking mechanism that facilitates safely executing untrusted native code
Publication Date: 2012.04.03 GOOGLE LLC
  • US8151349B1 patent drawing
  • US8151349B1 patent drawing
  • US8151349B1 patent drawing

AI summary

This disclosure presents a system that uses masking to safely execute native code. This system includes a processing element that executes the native code and a memory which stores code and data for the processing element. The processing element includes a masking mechanism that masks one or more bits of a target address during a control flow transfer to transfer control to a restricted set of aligned byte boundaries in the native code.