Static Vulnerability Analysis in Application Packages

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for analyzing computer programs for security vulnerabilities are inadequate, as they fail to effectively detect vulnerabilities in application packages without dynamic testing, which is resource-intensive and not feasible for large-scale scanning.

Innovation Solution

A method involving disassembling executable code within application packages to search for patterns associated with potentially vulnerable functions, determining the presence of secure implementation instructions, and identifying vulnerabilities by comparing against secure function definitions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If dynamic testing is used to detect vulnerabilities, then measurement precision is improved, but productivity deteriorates due to resource-intensive requirements

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidscanning efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing static analysis on application packages before they are installed or executed. The system disassembles and analyzes the package structure, manifest files, and code in advance to identify vulnerabilities, eliminating the need for resource-intensive dynamic testing during actual use. This allows vulnerabilities to be detected ahead of time while maintaining high scanning efficiency across large numbers of applications.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If static analysis is performed on application packages, then productivity is improved through efficient large-scale scanning, but measurement precision deteriorates compared to dynamic testing

Engineering Contradiction:
Improvescanning efficiencyVSAvoidvulnerability detection accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent applies segmentation by dividing the vulnerability analysis process into distinct phases: package structure analysis, manifest file parsing, code disassembly, and pattern matching. Each phase focuses on specific aspects of the application package, allowing the system to maintain high productivity through automated batch processing while achieving reliable detection accuracy through systematic examination of different code layers and security-relevant components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses copying by creating and analyzing copies of the application package's code and metadata during static analysis. The system disassembles the package to generate intermediate representations and compares these copies against known vulnerability patterns and secure coding standards. This allows thorough examination without requiring the original application to be executed, maintaining both efficiency and detection capability.

Inventive Principle:
Principle #26Copying

3Measurement precision

If code disassembly and pattern searching is performed, then measurement precision is improved for detecting vulnerable functions, but device complexity increases

Engineering Contradiction:
Improvevulnerability pattern detection accuracyVSAvoidanalysis system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by transforming the application code from its original format through disassembly into intermediate representations that are more amenable to pattern matching. The system changes parameters such as code representation format, analysis depth, and pattern matching criteria to optimize both detection accuracy and processing efficiency. This allows precise vulnerability identification while managing system complexity through automated transformation processes.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10242200B1Static analysis of vulnerabilities in application packages
Publication Date: 2019.03.26 TRIPWIRE INC
  • US10242200B1 patent drawing
  • US10242200B1 patent drawing
  • US10242200B1 patent drawing

AI summary

Apparatus and methods are disclosed herein for analyzing computer programs for potential security vulnerabilities. In one computer-implemented embodiment of the disclosed technology, a method includes analyzing a package for an application (e.g., a mobile device application package) by disassembling at least a portion of executable code associated with the application, searching for a pattern associated with a potentially vulnerably function or method, and, if the function or method is defined, then analyzing disassembled code for the function to determine whether a vulnerability is present. In some examples, a number of packages are stored in an application store database and scanned periodically to statically analyze the package for vulnerabilities.