Virtual Machine Reverse Execution for Data Origin Tracing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods lack a systematic approach to identify and trace the origins of user data contributing to vulnerabilities in computer programs, making it difficult to understand and prevent their exploitation.

Innovation Solution

A method and system utilizing a virtual machine to associate metadata with user data items, allowing reverse execution to trace the origins of computed data items back to their source, enabling identification of user data items contributing to vulnerabilities and potential exploitation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If forward execution is used to process user data, then the program can be executed normally, but the origins of computed data items cannot be traced back to user data sources

Engineering Contradiction:
Improvetraceability of data originsVSAvoidexecution model complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent applies reverse execution to trace data origins from end results back to user data sources. Instead of following the natural forward execution flow, the system executes instructions in reverse order, taking results and producing arguments, thereby tracing the origin of each result associated with a tag back to its contributing user data items.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent introduces metadata as an intermediary mechanism to track data origins. Each data item is associated with metadata indicating its origin location in the user data source, and computed data items are tagged to indicate they are computed from user data. This metadata acts as a mediator that enables tracing without fundamentally altering the execution model.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If reverse execution is implemented to trace data origins, then complete traceability is achieved, but the system complexity and computational overhead increase significantly

Engineering Contradiction:
Improvedata origin informationVSAvoidreverse execution mechanism
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent performs preliminary tagging during forward execution, associating each data item with metadata indicating its origin before reverse execution begins. This preliminary action prepares the data structure in advance, making the subsequent reverse execution more efficient by having all necessary origin information already encoded in the metadata.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a simplified copy of the execution trace through metadata that can be analyzed independently. Instead of maintaining complex execution state information, the system copies essential origin information into metadata tags that can be processed during reverse execution without requiring the full computational overhead of the original execution context.

Inventive Principle:
Principle #26Copying

3Loss of information

If metadata is associated with each data item to track origins, then traceability is improved, but the memory overhead increases

Engineering Contradiction:
Improvedata provenanceVSAvoidmetadata storage
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent applies local quality by associating metadata only with data items that require tracing, rather than uniformly tagging all data. The metadata is selectively applied to user data items and computed data items where origin tracking is necessary, optimizing memory usage by avoiding redundant metadata storage for data that does not require provenance tracking.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9208307B2Automatic algorithm discovery using reverse dataflow analysis
Publication Date: 2015.12.08 NIGHTWING GROUP LLC
  • US9208307B2 patent drawing
  • US9208307B2 patent drawing
  • US9208307B2 patent drawing

AI summary

A system and method for finding vulnerabilities and tracing an end result associated with a vulnerability to its origins in user data. A user data source containing an ordered sequence of user data items may be a data file. In one embodiment the method for identifying, in the user data source, the origins of the end result, includes associating with each user data item a location identifier identifying the location of the user data item in the sequence of user data items executing instructions with a virtual machine, associating with each result the location identifier of the data item when one argument is a user data item and a tag when more than one argument is a user data item. This process may be continued until the end result is obtained. Subsequently, the method may include stepping through instructions with the virtual machine in reverse order, to tracing the origins of the end result to each of the user data items contributing to the result.