Virtual Environment Harvard Architecture Memory Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional sandbox environments struggle to securely execute untrusted software modules without exposing the memory layout of the computer system, making them vulnerable to attacks like return-oriented programming (ROP) due to the lack of distinct memory access controls.

Innovation Solution

Implementing a virtual environment with a Harvard architecture on a von Neumann-style computer, where instruction memory is unreadable and data memory is accessible, allowing for the execution of untrusted modules while preventing access to instruction memory, thereby hiding the memory layout and enhancing security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a conventional sandbox environment uses a single memory for storing data and instructions, then the device complexity is reduced, but the security against memory layout discovery and ROP attacks deteriorates

Engineering Contradiction:
Improvememory architecture complexityVSAvoidsecurity against memory layout discovery
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent divides the single memory into two separate memory spaces: instruction memory for storing executable instructions and data memory for storing data. This segmentation prevents untrusted modules from accessing instruction memory while maintaining separate storage functions, thereby improving security without requiring complex hardware memory architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary memory access control mechanism that mediates between the untrusted module and the memory spaces. The system permits access to data memory while blocking access to instruction memory, acting as a protective intermediary that enables safe execution of untrusted code without exposing the complete memory layout.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If a virtual environment allows untrusted modules to access any memory, then the ease of operation is improved, but the security against harmful factors deteriorates

Engineering Contradiction:
Improvemodule execution capabilityVSAvoidmemory layout exposure to attacks
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent segments memory access permissions by creating distinct memory spaces with different access controls. Untrusted modules can execute and access data memory freely, maintaining ease of operation, while instruction memory remains protected from access, preventing memory layout discovery and ROP attacks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent converts the potential harm of memory access into a benefit by selectively permitting access to data memory while blocking access to instruction memory. This selective permission system turns what could be a security vulnerability into a protective feature, allowing modules to function while preventing harmful memory layout discovery.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

3Reliability

If the instruction memory is made unreadable by instructions, then the security against ROP attacks is improved, but the device complexity increases

Engineering Contradiction:
Improvesecurity against ROP attacksVSAvoidmemory access control mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements segmentation by creating separate instruction memory and data memory spaces with different access permissions. The instruction memory is configured to be unreadable by instructions, while data memory remains accessible. This segmentation achieves ROP attack protection through a relatively simple architectural division rather than complex access control mechanisms.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9372704B2Virtual environment having harvard architecture
Publication Date: 2016.06.21 GOOGLE LLC
  • US9372704B2 patent drawing
  • US9372704B2 patent drawing
  • US9372704B2 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, relating to software execution. One of the methods includes executing, on a computer including a single memory for storing data and instructions, a virtual environment including a data memory and an instruction memory, the instruction memory configured to be unreadable by instructions stored in the instruction memory; receiving, at the virtual environment, a software module comprising multiple instructions; and performing validation of the software module including: identifying, in the software module one or more calls to the single memory; and verifying that the one or more calls to the single memory are in the data memory.