US9823992B2

Decoupling dynamic program analysis from execution in virtual environments

Summary by NHIP

Real-time program analysis decoupling

The method analyzes a running computer program by recording execution logs in a main workload virtual machine and replaying them on a separate analysis virtual machine. Distinctive elements include recording non-deterministic events like device interrupts and external inputs, then executing analysis code in parallel with the original real-time execution.

Claim Score by NHIP

Read claim 25, the broadest

Abstract

Dynamic program analysis is decoupled from execution in virtual computer environments so that program analysis can be performed on a running computer program without affecting or perturbing the workload of the system on which the program is executing. Decoupled dynamic program analysis is enabled by separating execution and analysis into two tasks: (1) recording, where system execution is recorded with minimal interference, and (2) analysis, where the execution is replayed and analyzed.

US9823992B2, drawing sheet 1
Sheet 1 of 14

Term

Projected expiry 14 November 2031.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Projected expiry

32 claims: 3 independent, 29 dependent

  1. 1
    A method for analyzing a computer program while the computer program is being executed in real-time, the method comprising:executing the computer program in real-time in a main workload virtual machine, said executing producing an instruction stream of the computer program;during the execution of the computer program in the main workload virtual machine, recording a log comprising non-deterministic events occurring during the execution thereof;accessing the log recorded by the main workload virtual machine;replaying the instruction stream of the computer program in the main workload virtual machine on a first analysis virtual machine while consuming the log during the replaying, the first analysis virtual machine being separate from the main workload virtual machine;and executing first program analysis code on the first analysis virtual machine during replay of the instruction stream of the computer program in the main workload virtual machine on the first analysis virtual machine, the first program analysis code executing in parallel with the computer program executing in real-time in the main workload virtual machine.
  2. 13
    A computer system for providing decoupled dynamic program analysis, the computer system comprising:a virtual machine platform comprising a processor programmed to execute a virtual machine software layer to (a) instantiate a main workload virtual machine comprising a virtual processor and emulated devices, and (b) log non-deterministic events in the main workload virtual machine's instruction stream;and an analysis computer system coupled to the virtual machine platform, the analysis computer system being separate from the virtual machine platform, the analysis computer system comprising a processor programmed to execute a first software layer to (a) access a log of the non-deterministic events in the main workload virtual machine's instruction stream, (b) replay the instruction stream of the main workload virtual machine while consuming the log during the replay, and (c) execute first program analysis code during the replay of the instruction stream, the first program analysis code executing in parallel with the main workload virtual machine.
  3. 25
    Broadest claimClaim Score 51, average(NHIP)A computer readable, non-transitory storage medium having stored therein a computer program for decoupled program analysis, wherein an analysis computer system executing the computer program carries out steps of:accessing a log recorded by a main workload virtual machine, the analysis computer system being separate from the main workload virtual machine, the log comprising non-deterministic events occurring during execution of the main workload virtual machine, said execution producing an instruction stream;replaying the instruction stream of the main workload virtual machine while consuming the log during the replaying;and analyzing execution behavior of the main workload virtual machine as replayed during the replaying step by running a first analysis program, the analyzing step being performed in parallel with the execution of the main workload virtual machine.