Context Agent Injection via Virtual Machine Introspection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtual machine introspection faces challenges in obtaining operating system and application-level information from guest virtual machines, particularly due to the difficulty in mapping memory regions and handling variations in kernel structures, as well as the complexity of identifying application-level information and obtaining user-level data in a scalable and time-sensitive manner.

Innovation Solution

Injecting a kernel module into the guest virtual machine's memory address space to create a user-level process, referred to as a context agent, which executes within the virtual machine to facilitate the collection of information and verify its integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If virtual machine introspection is used to monitor guest virtual machines, then monitoring capability is provided, but difficulty in mapping memory regions and handling kernel structure variations increases

Engineering Contradiction:
Improvemonitoring capabilityVSAvoidmemory mapping complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a kernel module as an intermediary component between the introspection system and the guest operating system. This kernel module handles memory region mapping and kernel structure variations, abstracting away the complexity from the introspection mechanisms. The kernel module serves as a mediator that translates introspection requests into appropriate guest OS context operations, resolving the technical contradiction by isolating the complexity in a dedicated intermediary layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If traditional introspection methods are used, then isolation is maintained, but ability to obtain user-level information in a scalable manner decreases

Engineering Contradiction:
Improveuser-level information accessVSAvoidinformation gathering efficiency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent transitions from traditional external introspection to an internal dimension by injecting a kernel module within the guest virtual machine's kernel space. This dimensional shift enables direct access to user-level process information through the kernel's existing data structures, while maintaining isolation through the virtualization layer. The kernel module operates in a different dimensional space (kernel space) that provides direct pathways to user-level information without breaking isolation boundaries.

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

3Loss of information

If kernel modules are injected into guest virtual machines, then user-level information access is improved, but complexity of injection process increases

Engineering Contradiction:
Improveapplication-level information accessVSAvoidinjection process simplicity
Core Design Contradiction:
Loss of informationVSEase of manufacture

Solution Approach 1:

The patent designs the kernel module with universal functionality that can be injected across different guest operating systems and virtual machine configurations. The module implements standardized interfaces and adaptation mechanisms that allow it to perform multiple functions (memory mapping, process information collection, kernel structure handling) through a single injection process. This multi-functionality reduces the complexity of the injection process by providing a one-size-fits-all solution that works across diverse environments.

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

Data Source

PatentUS9547346B2Context agent injection using virtual machine introspection
Publication Date: 2017.01.17 KYNDRYL INC
  • US9547346B2 patent drawing
  • US9547346B2 patent drawing
  • US9547346B2 patent drawing

AI summary

A computer implemented method, apparatus, and computer usable program code for executing a process within a virtual machine. A module is injected into an operating system for the virtual machine to form an injected module. The injected module is executed to load an agent process within an application space within the virtual machine. Execution of the agent process is initiated by the injected module.