Static Library Analysis via Most General Application

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current static analysis methods for libraries require access to application source code and only provide insights into how a specific application interacts with the library, failing to identify potential security vulnerabilities across all possible applications.

Innovation Solution

A method and system that statically analyze libraries by constructing a most general application (MGA) using type-object lattices and abstracted heap update rules, combining native method annotations and library facts to detect security vulnerabilities without requiring application source code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional static analysis methods are used that require application source code, then analysis can be performed on specific application-library interactions, but the analysis cannot identify security vulnerabilities across all possible applications

Engineering Contradiction:
Improvevulnerability detection coverageVSAvoidanalysis method complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent creates an abstracted heap model that copies and represents the essential structure and behavior of actual application heaps without requiring the original application code. This abstracted heap captures the necessary information about memory allocation, object creation, and data flow patterns that occur in real applications, enabling vulnerability analysis across all possible applications using the library.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent transforms the analysis approach by changing parameters from concrete application-specific data to abstracted representations. By using type-object lattices to represent types and objects at multiple levels of abstraction, and by modeling heap structures in terms of allocation patterns rather than specific application data, the analysis can generalize findings across all applications that use the library.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If analysis is performed without application source code, then comprehensive vulnerability detection across all applications is enabled, but the analysis requires sophisticated abstracted heap modeling

Engineering Contradiction:
Improvelibrary analysis applicabilityVSAvoidabstracted heap model complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the complex task of library vulnerability analysis into distinct components: type-object lattice construction for representing types and objects, abstracted heap modeling for capturing memory structure, and rule-based analysis for detecting vulnerabilities. Each component handles a specific aspect of the analysis, making the overall system more manageable and applicable to diverse libraries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal analysis framework that can be applied to any library regardless of its specific functionality. The type-object lattice and abstracted heap models are designed to be language-agnostic and library-agnostic, providing a multi-functional platform that adapts to analyze different libraries by constructing appropriate MGAs for each target library.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If type-object lattices and abstracted heap models are constructed, then comprehensive static analysis without application code is achieved, but the construction and analysis process becomes more complex

Engineering Contradiction:
Improvesecurity vulnerability detectionVSAvoidanalysis system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary actions by pre-constructing type-object lattices and abstracted heap models that represent all possible application behaviors before actual vulnerability analysis begins. The most general application (MGA) is constructed in advance to encapsulate all potential interaction patterns between applications and the target library, so that the actual analysis phase only needs to evaluate these pre-prepared models against vulnerability criteria.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9336397B2Combining type-analysis with points-to analysis for analyzing library source-code
Publication Date: 2016.05.10 ORACLE INT CORP

AI summary

In general, in one aspect, the invention relates to a method for statically analyzing a library that includes obtaining native method annotations associated with native methods invoked by the library and extracting facts corresponding to the library from the library to obtain library facts. The library is written in a first programming language. The method also includes constructing a type-object lattice, modeling an abstracted heap using the type-object lattice, expressing abstracted heap update operations as heap update rules, and constructing, based on the library, a most general application (MGA) for the library. The method additionally includes analyzing the library using the native method annotations, the library facts, the MGA, the abstracted heap, and the heap update rules to obtain results, storing the results of the analysis, and performing an action based on the results.