Homographic Instruction Binding for Process-Level Virtual Machine Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software protection mechanisms are inadequate in preventing reverse engineering and tampering, particularly in virtualized applications, as they fail to effectively counter replacement attacks and value dependency attacks, which exploit the distinct data access patterns between process-level virtual machines (PVMs) and applications.

Innovation Solution

A method is developed to create a robust tamper-resistant execution environment by modifying data values of protected applications using semantically-neutral operations within the execution environment, which includes process-level virtual machines, system-level virtual machines, hypervisors, simulators, or just-in-time compilation systems, thereby binding the application and PVM instance through homographic instructions, ensuring that the application can only execute correctly under its associated protective PVM.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software applications are virtualized using process-level virtual machines (PVMs) to provide protection, then security against reverse engineering is improved, but the system becomes vulnerable to replacement attacks where adversaries substitute the protective PVM with a malicious one

Engineering Contradiction:
Improvesoftware protectionVSAvoidreplacement attacks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces homographic instructions as an intermediary mechanism between the protected application and the PVM. These special instructions act as a binding layer that the protective PVM interprets differently than a malicious replacement would, creating a verifiable connection that prevents undetected substitution of the virtual machine.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent modifies the execution environment by changing the semantic interpretation of specific instructions within the PVM. By altering how certain opcodes are processed (making them homographic), the system creates a parameter change in the execution behavior that distinguishes the legitimate protective PVM from any malicious replacement, thereby preventing replacement attacks while maintaining software protection.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If data values are modified using semantically-neutral operations to bind application and PVM, then tamper resistance is improved, but the complexity of the execution environment increases

Engineering Contradiction:
Improvetamper resistanceVSAvoidexecution environment
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by modifying data values through semantically-neutral operations that do not alter the observable behavior of the protected application. These operations change internal parameters (data values) in a way that binds the application to its protective PVM, improving tamper resistance while maintaining compatibility with the original application functionality.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent uses disposable, application-specific homographic instructions that are inserted into the protected application. These instructions are processed once during execution to establish the binding between application and PVM, then can be discarded or ignored subsequently. This approach provides strong tamper resistance without requiring permanent complex changes to the execution environment.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Reliability

If homographic instructions are used to bind application and PVM instance, then security against value dependency attacks is improved, but the difficulty of detecting and measuring the binding increases

Engineering Contradiction:
Improvesecurity against value dependency attacksVSAvoidbinding detection
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent applies local quality by making the binding verification specific to individual instruction locations and data values. Rather than requiring global detection mechanisms, the homographic instructions create localized binding checks at specific points in the execution flow, improving security against value dependency attacks while keeping detection complexity manageable through targeted rather than comprehensive monitoring.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11042631B2System, method and computer readable medium for software protection via composable process-level virtual machines
Publication Date: 2021.06.22 UNIV OF VIRGINIA PATENT FOUND
  • US11042631B2 patent drawing
  • US11042631B2 patent drawing
  • US11042631B2 patent drawing

AI summary

According to some illustrative embodiments, a method for blending the data of an execution environment and the data of the protected application includes modifying the data values of the protected application using the values of the execution environment in a semantically-neutral manner or modifying the data values of the execution environment using the values of the protected application in a semantically-neutral manner. In some other embodiments, a computer implemented method for binding an execution environment and a protected application includes: selecting at least one instruction from an instruction set of the protected application; selecting at least one context from within the protected application; assigning a new meaning to the selected at least one instruction for the selected at least one context; transforming a program to use the new meaning for the selected at least one instruction and the selected at least one context; and executing the program with the execution environment that knows the newly assigned selected at least one instruction and selected at least one context. In the preferred embodiments, the execution environment comprises any combination of a process-level virtual machine, a system-level virtual machine, a hypervisor, a simulator, an emulator, or a just-in-time compilation system.