Program Version Identification via Memory Image Signatures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In mission-critical computing applications, long-running programs in cloud-based provider networks face challenges in determining the exact version running on thousands of hosts, due to the complexity of updates, 'hot-patching,' and potential loss or errors in software change records, which can lead to security and availability issues.

Innovation Solution

The use of version discrimination signatures derived from selected subsets of object files, allowing for the identification of running program versions by comparing development environment signatures with run-time signatures extracted from memory images, minimizing disruptions and resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software updates are frequently deployed to long-running programs, then program functionality and security are improved, but version tracking accuracy deteriorates

Engineering Contradiction:
Improveprogram securityVSAvoidversion identification accuracy
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent creates a copy of the program's binary image from memory and generates a signature from this copy. This allows version identification without affecting the running program, enabling accurate version tracking even with frequent updates and hot-patching.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent generates version discrimination signatures from binary images before comparing them during runtime. By preparing signatures in advance from the binary image and storing them for later comparison, the system can quickly identify versions without disrupting program execution.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If hot-patching techniques are used to modify in-memory programs, then program availability is improved, but version determination difficulty increases

Engineering Contradiction:
Improveprogram availabilityVSAvoidversion determination
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The system creates a copy of the binary image from memory for signature generation. This copy approach allows version identification without modifying or interrupting the running program, making it compatible with hot-patching techniques and maintaining high availability.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent extracts specific portions from the binary image that are suitable for version discrimination. By segmenting the binary image into relevant portions and generating signatures from these segments, the system can identify versions efficiently without analyzing the entire program image.

Inventive Principle:
Principle #1Segmentation

3Loss of information

If comprehensive software change records are maintained, then version tracking is improved, but data loss risk increases

Engineering Contradiction:
Improveversion informationVSAvoidversion record accuracy
Core Design Contradiction:
Loss of informationVSMeasurement precision

Solution Approach 1:

The system generates signatures from the actual running program's binary image and uses these signatures to determine version information. This feedback mechanism ensures that version tracking reflects the actual state of running programs, compensating for potential losses or errors in maintenance records.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The running program itself provides the version identification information through its binary image. By extracting signatures directly from the program's memory image, the system makes the program self-describing, eliminating reliance on external records that may be lost or contain errors.

Inventive Principle:
Principle #25Self-service

4Measurement precision

If version identification methods require program restarts, then version accuracy is improved, but service availability deteriorates

Engineering Contradiction:
Improveversion identification accuracyVSAvoidservice availability
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent creates a copy of the binary image from the running program's memory without requiring program termination. This copying approach enables version identification while the program continues to execute, maintaining service availability while achieving accurate version detection.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11200047B2Identifying versions of running programs using signatures derived from object files
Publication Date: 2021.12.14 AMAZON TECH INC
  • US11200047B2 patent drawing
  • US11200047B2 patent drawing
  • US11200047B2 patent drawing

AI summary

A particular portion of a program which can be read from on-disk representations of the program as well as from memory images of the program is identified for use as a version discriminator. A first representation of the portion may be obtained from a first memory image of the program, corresponding to a first running instance of the program. The first representation may be compared to a second representation obtained at a development environment. Based on the results of the comparison, a particular version of the program corresponding to the first running instance may be identified. An indication of the particular version may be stored.