VMFUNC Instructions for Secure Multi-Page Guest Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtual machine management systems restrict guests to access only a single privileged page for security, limiting their ability to write to multiple privileged pages without causing virtual machine exits or security breaches.

Innovation Solution

Implementing multiple virtual machine functions that allow guests to switch between different page tables, granting write access to specific privileged pages while denying access to others, using the VMFUNC instruction to manage privileged memory access securely.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a guest is restricted to access only a single privileged page, then security is maintained, but the guest's ability to write to multiple privileged pages is limited

Engineering Contradiction:
ImprovesecurityVSAvoidaccess to multiple privileged pages
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent divides the single privileged page access into multiple segmented privileged pages, each accessible through its own dedicated virtual machine function. The guest can invoke specific VMFUNC instructions (e.g., VMFUNC1, VMFUNC2, VMFUNC3) to access different privileged pages (HYP_PAGE1, HYP_PAGE2, HYP_PAGE3) independently, allowing versatile access while maintaining security boundaries for each segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal mechanism where a single guest virtual machine can access multiple privileged pages through a standardized interface (VMFUNC instructions). Each virtual machine function provides the same security-guaranteed access pattern but to different privileged pages, making the system universally applicable for various privileged operations without compromising security.

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

2Adaptability or versatility

If the guest switches between different page tables to access multiple privileged pages, then access versatility is improved, but context switching overhead increases

Engineering Contradiction:
Improveaccess to multiple privileged pagesVSAvoidcontext switching overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent pre-establishes multiple independent virtual machine functions (VMFUNC1, VMFUNC2, VMFUNC3) that are already configured to access different privileged pages. When the guest needs to access a privileged page, it directly invokes the pre-configured function rather than dynamically creating or switching page tables, eliminating context switching overhead while maintaining access versatility.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If the guest writes to privileged pages without secure access control, then operational flexibility is improved, but security breaches may occur

Engineering Contradiction:
Improvewrite access to privileged pagesVSAvoidsecurity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent introduces virtual machine functions as intermediary layers between the guest and privileged pages. The guest cannot write directly to privileged pages; instead, it must invoke VMFUNC instructions that act as mediators, providing controlled write access through predefined secure interfaces. This intermediary mechanism maintains ease of operation while preventing security breaches.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9600190B2Virtual machine functions for multiple privileged pages
Publication Date: 2017.03.21 RED HAT ISRAEL
  • US9600190B2 patent drawing
  • US9600190B2 patent drawing
  • US9600190B2 patent drawing

AI summary

A method includes, with a guest, executing a first virtual machine function, determining a first pointer value stored in a register of a processor running on the host system while the first virtual machine function is executed, the first pointer value pointing to a first page table corresponding to a default page table, the first page table indicating that the guest has access to a first privileged page, switching to the first page table, executing a second virtual machine function, the second virtual machine function, determining a second pointer value stored in the register of the processor while the second virtual machine function is executed, the second pointer value pointing to a second page table corresponding to the default page table, the second page table that indicates that the guest has access to a second privileged page, and switching to the second page table.