Virtual Machine Manager Selective Code Integrity Enforcement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing devices are vulnerable to malicious programs that can compromise their security, leading to unauthorized access, data theft, and system disruptions, despite existing protection methods.

Innovation Solution

Implementing a virtual machine manager that enforces selective code integrity by verifying the integrity of code through digital signatures and a chain of trust, allowing only verified code to execute in kernel mode while allowing the operating system to manage execution permissions in user mode.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code integrity verification is enforced for all executable code, then security against malicious programs is improved, but system complexity and performance overhead increase

Engineering Contradiction:
ImprovesecurityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments code integrity verification into two distinct modes: kernel mode verification (mandatory, enforced by virtual machine manager) and user mode verification (optional, controlled by operating system policies). This segmentation allows critical security functions to be protected with strict verification while permitting flexible, policy-based verification for less critical user applications, thereby reducing overall system complexity and performance overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different verification strictness levels to different execution contexts. Kernel mode code receives mandatory, enforced verification with no exceptions, while user mode code receives verification based on configurable operating system policies. This local differentiation of verification quality allows the system to maintain high security where needed while reducing complexity in less critical areas.

Inventive Principle:
Principle #3Local quality

2Reliability

If code integrity verification is enforced for all executable code, then protection against malicious programs is improved, but execution flexibility and productivity decrease

Engineering Contradiction:
ImprovesecurityVSAvoidexecution flexibility
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides code execution into kernel mode and user mode with different verification requirements. Kernel mode code undergoes mandatory verification to ensure system security, while user mode code execution is governed by flexible operating system policies that can adapt to different application needs, thereby maintaining both security and execution flexibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic policy enforcement for user mode code verification. Operating systems can configure verification policies based on application requirements, allowing the system to adapt verification strictness dynamically. This enables productive applications to execute with appropriate verification levels while maintaining security posture.

Inventive Principle:
Principle #15Dynamics

3Reliability

If code integrity verification is performed on all code, then security is improved, but performance overhead increases due to verification operations

Engineering Contradiction:
ImprovesecurityVSAvoidperformance overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments verification operations to apply them only where necessary. Kernel mode code verification is enforced to maintain system security, while user mode code verification is applied selectively based on operating system policies. This segmentation reduces the overall number of verification operations performed, thereby reducing performance overhead and energy consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies verification partially rather than universally. By enforcing verification only for kernel mode code and applying optional verification for user mode code based on policies, the system performs the minimum necessary verification to maintain security while avoiding excessive verification operations that would increase performance overhead.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP3047375B1Virtual machine manager facilitated selective code integrity enforcement
Publication Date: 2021.04.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3047375B1 patent drawingFigure 1
  • EP3047375B1 patent drawingFigure 2
  • EP3047375B1 patent drawingFigure 3

AI summary

A virtual machine manager facilitates selective code integrity enforcement. A virtual machine manager (or other higher privileged entity) can verify the integrity of code in memory pages, and a virtual processor running in kernel mode executes the code on a memory page only if the virtual machine manager (or other higher privileged entity) has verified the code integrity of that code. However, the virtual machine manager need not verify the integrity of code in memory pages when the virtual processor is running in user mode. Rather, an operating system running on the virtual processor can apply any of a variety of policies (e.g., optionally perform any of a variety of different checks or verifications of the code) to determine whether the code can be executed in user mode.