Fingerprint Inference for Software Artifact Version Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In large software projects, tracking libraries and their versions is challenging due to the dynamic nature of software development, which complicates identifying security vulnerabilities and outdated libraries.
Innovation Solution
A method and system that generate request fingerprints from classes, query an index to identify matching artifact versions, and select the subset with the maximal count of matching fingerprints, using a fingerprint repository with two tiers of granularity to distinguish between artifacts and versions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If traditional library tracking methods are used in large software projects, then developers can maintain source code, but they cannot effectively track libraries and versions in compiled binary code
Solution Approach 1:
The patent replaces manual/traditional library tracking methods with an automated fingerprinting system. The system generates cryptographic fingerprints from binary code and uses automated matching algorithms to identify libraries and versions, substituting the mechanical process of manual tracking with an automated computational approach that can process compiled binary code effectively
Solution Approach 2:
The patent creates cryptographic fingerprints (copies) of library binaries that can be stored and matched without needing the actual binary files. These fingerprint copies enable tracking and identification of libraries and versions through hash-based matching, allowing the system to identify libraries in complex software projects without requiring access to the original source code or binary files
2Reliability
If comprehensive library tracking is implemented, then security vulnerabilities can be identified, but the complexity of managing multiple libraries and versions increases
Solution Approach 1:
The patent replaces complex manual library management with automated fingerprint-based identification. The system automatically generates fingerprints, queries databases, and identifies security vulnerabilities through automated matching processes, reducing the complexity of managing multiple libraries and versions while improving reliability of vulnerability detection
Solution Approach 2:
The patent introduces fingerprint databases and matching algorithms as intermediaries between the binary code and the library identification process. These intermediaries simplify the management of multiple libraries and versions by providing a standardized interface for querying and matching, reducing the direct complexity of managing diverse library formats and versions
3Measurement precision
If fingerprint matching is performed for all artifact versions, then accurate version identification is achieved, but the query time and computational resources increase
Solution Approach 1:
The patent segments the fingerprint matching process into hierarchical levels, first matching at the artifact level and then at the version level. This segmentation allows the system to quickly eliminate non-matching artifacts before performing more detailed version-level matching, reducing overall query time while maintaining accurate version identification
Solution Approach 2:
The patent performs partial matching by first identifying matching artifacts and then selectively performing full version-level matching only on those artifacts. This partial action approach reduces the total computational burden by avoiding exhaustive matching of all artifact versions, thereby reducing query processing time while maintaining identification accuracy
Data Source
AI summary
Fingerprint inference of software artifacts includes receiving a request including classes, generating request fingerprints from the classes, and querying at least one index with the request fingerprints to identify a matching set of artifact versions. Fingerprint inference further includes obtaining, for each matching artifact version in the matching set of artifact versions, a count of the request fingerprints matching a indexed fingerprint related, in the at least one index, to the artifact version, and selecting a subset of the matching set of artifact versions having a count that is maximal amongst the matching set of artifact versions. Fingerprint inference further includes returning the subset of the matching set of artifact versions.


