VM Generation Identifier for Time-Shifting Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtual machine environments face dataset corruption and security vulnerabilities during transparent time-shifting operations, such as replays and failovers, due to discontinuous and potentially repeated execution timelines, which can re-expose security vulnerabilities and lead to unpredictable random number generation.

Innovation Solution

A generation identifier is introduced that remains constant during contiguous execution timelines and changes with discontiguous and potentially repeated timelines, allowing services to detect time-shifting operations and inhibit dataset corruption, and is used as a seed for random number generation to enhance security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If transparent time-shifting operations (replay, snapshot, failover) are performed in virtual machine environments, then redundancy and security are improved, but dataset corruption and security vulnerabilities are re-exposed

Engineering Contradiction:
Improveredundancy and securityVSAvoiddataset corruption and security vulnerabilities
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system performs preliminary detection of time-shifting operations by monitoring execution timeline continuity before allowing operations to proceed. The generation identifier mechanism is established in advance to detect discontiguous timelines, preventing dataset corruption before it occurs by inhibiting replayed transactions from being committed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A generation identifier acts as an intermediary mechanism between the virtual machine execution timeline and the transaction processing system. This intermediary detects time-shifting operations and communicates their presence to inhibit subsequent harmful actions, such as committing replayed transactions or using compromised random number generators.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If execution timeline is discontiguous with repeated time intervals, then time-shifting detection is enabled, but execution continuity is broken

Engineering Contradiction:
Improvetime-shifting detection accuracyVSAvoidexecution timeline continuity
Core Design Contradiction:
Measurement precisionVSStability of the object's composition

Solution Approach 1:

The system changes the state of the generation identifier to indicate different execution conditions. When the execution timeline is contiguous, the identifier remains constant; when discontiguous time-shifting occurs, the identifier changes state, providing a clear visualizable distinction between normal and shifted execution states.

Inventive Principle:
Principle #32Color changes

3Reliability

If random number generation is used in virtual machine environments, then security is enhanced, but predictability increases during time-shifting operations

Engineering Contradiction:
ImprovesecurityVSAvoidrandomness unpredictability
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system uses feedback from the generation identifier to control random number generation. When time-shifting is detected through generation identifier changes, the feedback mechanism prevents the use of potentially predictable random numbers, ensuring that only random numbers generated from truly unpredictable states are used for security-critical operations.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9250945B2Detecting a repeating execution time sequence in a virtual machine
Publication Date: 2016.02.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9250945B2 patent drawing
  • US9250945B2 patent drawing
  • US9250945B2 patent drawing

AI summary

A generation identifier is provided having a value established upon generating a new virtual machine configuration context or a snapshot of a virtual machine configuration context. The generation identifier is configured to be sampled in order to indicate whether the sampled generation is a latest generation. To use the generation identifier, a service or application persists the generation identifier upon resuming or initiating operation. During normal operation or replay, the persisted generation identifier is compared to the generation identifier sampled from a location associated with the virtual machine configuration context on which the service or application is being run before performing a requested process or committing to a transaction. When the sampled generation identifier is different than the persisted generation identifier, the service or application knows that it is running a time-shifted operation such as from a snapshot replay.