Tree Structure for Protecting Virtual Machine Memory Page Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtual machine (VM) systems face challenges in protecting guest integrity drivers from kernel-level attacks and malicious programs that attempt to tamper with memory pages or interfere with the integrity monitoring mechanism, necessitating robust protection mechanisms to ensure the integrity of the VM's security framework.

Innovation Solution

Implementing a guest integrity driver that operates in integrity mode, requesting the hypervisor to monitor specific memory pages and notify the driver of any writes, using a tree structure to protect protection data and employing hypercalls to manage memory page monitoring and alert actions, while ensuring only trusted execution can enter integrity mode to prevent malicious interference.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a guest integrity driver is implemented to monitor memory pages in real-time, then the ability to detect malicious activity is improved, but the driver becomes vulnerable to kernel-level attacks and tampering

Engineering Contradiction:
Improvedetection capabilityVSAvoiddriver integrity
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent segments the monitoring system into distinct components: the guest integrity driver in the virtual machine, the hypervisor in the host system, and separate data structures (protection data, page information) stored in different memory locations. This segmentation isolates the driver from direct access to critical monitoring data, preventing tampering while maintaining detection capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces the hypervisor as an intermediary between the guest integrity driver and the physical memory monitoring mechanisms. The hypervisor validates and mediates all access to protection data and monitored pages, ensuring that the driver cannot be tampered with by kernel-level attacks while still enabling comprehensive monitoring.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If protection data is stored in memory pages accessible to the guest OS, then the integrity monitoring can function, but malicious code can tamper with the protection data itself

Engineering Contradiction:
Improvemonitoring functionalityVSAvoiddata tampering
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent implements a nested structure where guest virtual memory pages are mapped to guest physical memory pages, which are in turn mapped to host physical memory pages. The protection data is stored in host physical memory pages that are inaccessible to the guest OS, creating nested layers of protection where inner layers protect against attacks from outer layers.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent adds a new dimension of protection by storing protection data in a separate address space (host physical memory) that is orthogonal to the guest memory space. This dimensional separation allows the monitoring system to function while preventing tampering, as malicious code in the guest space cannot reach into the host space to corrupt protection data.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Reliability

If the hypervisor monitors all memory pages for writes, then complete security monitoring is achieved, but system performance deteriorates due to the overhead of monitoring every page

Engineering Contradiction:
Improvesecurity coverageVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by differentiating between monitored and non-monitored memory pages. Instead of uniformly monitoring all pages, the system selectively monitors only those pages marked with protection data, reducing the monitoring overhead while maintaining complete security coverage for critical pages.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements partial monitoring by focusing resources on monitoring only the pages that contain protection data or are explicitly marked for monitoring. This partial action approach achieves sufficient security coverage without the excessive overhead of monitoring every single memory page in the system.

Inventive Principle:
Principle #16Partial or excessive action

4Ease of operation

If an entry point for integrity mode is established, then controlled access to monitoring functions is improved, but the entry point itself becomes a target for attacks

Engineering Contradiction:
Improveaccess controlVSAvoidentry point exploitation
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent implements preliminary action by establishing the integrity mode entry point and configuring protection data before the guest OS and potential malicious code execute. The hypervisor pre-configures the monitoring structures and validates the entry point, ensuring that even if attackers target the entry point, the protective structures are already in place to detect and prevent exploitation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10592267B2Tree structure for storing monitored memory page data
Publication Date: 2020.03.17 VMWARE INC
  • US10592267B2 patent drawing
  • US10592267B2 patent drawing
  • US10592267B2 patent drawing

AI summary

Mechanisms to protect the integrity of a data structure that is traversed to locate protected memory pages are provided. Leaf nodes of the data structure store mappings that indicate which memory pages are protected. Both the pages indicated by the mappings and the pages that store the data structure are monitored by a tracing service that sends a notification to the hypervisor when a write to a traced page occurs. When system software receives such a notification, the system software traverses the data structure to determine whether any of the memory pages of the data structure is the traced page that was written to. If so, the alert action for that page is performed. If not, the system software determines whether any of the mappings in the leaf nodes include such a page and, if so, the alert action for that page is performed.