Hypervisor Code Module Verification and Relocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtual environments, existing code loading mechanisms lack secure and efficient methods for verifying and relocating code modules, which can lead to security vulnerabilities and inefficiencies in resource management.

Innovation Solution

A method where a hypervisor provides a virtual machine with a guest operating system, receives symbol entries and a signed code module, verifies the code module using a decryption key, applies relocations based on symbol entries, and allows the guest operating system to execute the code module, ensuring secure and efficient code loading.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If code modules are loaded without verification in virtual environments, then resource management efficiency is improved, but security vulnerabilities increase

Engineering Contradiction:
Improveresource management efficiencyVSAvoidsecurity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The hypervisor performs verification of code modules before they are executed in the guest operating system. This preliminary verification action ensures that only authenticated and properly formatted code modules are loaded, preventing security vulnerabilities while maintaining efficient resource management through automated validation processes.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The hypervisor acts as an intermediary between the guest operating system and the code modules. It receives code modules from the guest OS, verifies their authenticity and integrity, applies necessary relocations, and then allows execution. This intermediary role ensures security without requiring changes to the guest OS or code module structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If code modules are verified and relocated by the hypervisor, then security is improved, but processing time increases

Engineering Contradiction:
ImprovesecurityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The code modules include embedded verification information (such as digital signatures or hashes) that enable the hypervisor to perform rapid authentication without requiring complex external validation processes. The modules essentially provide their own verification data, reducing the time required for the hypervisor to validate them.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Verification information is prepared and embedded in the code modules before they are passed to the hypervisor. This preliminary preparation of verification data allows the hypervisor to perform quick validation checks rather than having to perform complex analysis during the loading process, thus reducing processing time.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If relocations are applied to code modules, then code compatibility is improved, but system complexity increases

Engineering Contradiction:
Improvecode compatibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The hypervisor serves as an intermediary that automatically performs relocation operations on code modules. It receives relocation information from the code module, applies the necessary address adjustments, and loads the module into the appropriate memory location. This automated intermediary process handles complexity internally while presenting a simple interface to the guest operating system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Relocation information is extracted and processed by the hypervisor before the code module is executed. The hypervisor performs all necessary address translations and adjustments in advance, ensuring that the code module is fully prepared for execution without requiring further modifications during runtime, thus simplifying the overall system operation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9898326B2Securing code loading in a virtual environment
Publication Date: 2018.02.20 RED HAT ISRAEL
  • US9898326B2 patent drawing
  • US9898326B2 patent drawing
  • US9898326B2 patent drawing

AI summary

Methods, systems, and computer program products are included for loading a code module. A method includes providing, by a hypervisor, a virtual machine that includes a guest operating system. The code module and a signature corresponding to the code module are sent by the guest operating system to the hypervisor. One or more relocations are applied to the code module. The hypervisor verifies the signature corresponding to the code module. After verifying the signature, the hypervisor allows the guest operating system to execute the code module.