Remote Software Vulnerability Analysis via Object Space Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Analyzing software applications written in interpreted programming languages for security vulnerabilities and intellectual property protection is challenging without access to source code or runtime environments, as these applications can modify themselves dynamically, making debugging and testing difficult.

Innovation Solution

A system and method that extracts information about the application's internal structure and operations using an extraction component installed in the development/runtime environment, translating this information into a format suitable for static vulnerability analysis without requiring source code or binary representation, allowing for assessment of software quality and identification of potential security vulnerabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If source code is distributed for interpreted language applications, then functionality and adaptability are improved, but intellectual property security and code protection deteriorate

Engineering Contradiction:
ImprovefunctionalityVSAvoidintellectual property security
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent extracts the essential functional information from the interpreted source code through runtime monitoring and object space analysis, separating the functionality needed for analysis from the actual source code. This allows vulnerability assessment without requiring access to or distribution of the original source code, thereby protecting intellectual property while maintaining analysis capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system creates a copy of the runtime object space and execution state rather than requiring the original source code. By analyzing this copied runtime representation, the system can assess vulnerabilities without needing the actual source code distributed, thus protecting IP while enabling functionality analysis.

Inventive Principle:
Principle #26Copying

2Measurement precision

If runtime environment is provided for testing interpreted applications, then measurement precision and reliability are improved, but device complexity and operational requirements worsen

Engineering Contradiction:
Improvetesting accuracyVSAvoidruntime environment requirements
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary extraction component that acts as a bridge between the application and the analysis system. This component monitors and extracts object space information during runtime, allowing the analysis system to obtain precise runtime data without requiring full access to or complexity of the complete runtime environment. The intermediary handles the complexity locally while providing simplified data to the external analyzer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system extracts only the necessary object space and runtime state information needed for testing, rather than requiring the entire runtime environment to be available externally. This selective extraction maintains measurement precision by capturing essential runtime data while reducing the complexity and operational requirements of the external analysis system.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If source code is made accessible for vulnerability analysis, then security assessment quality is improved, but intellectual property protection and code confidentiality worsen

Engineering Contradiction:
Improvevulnerability assessment qualityVSAvoidcode confidentiality
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent extracts runtime object space information and execution state data that are sufficient for vulnerability assessment without requiring access to the actual source code. By analyzing this extracted runtime representation, the system achieves high-quality security assessment while maintaining code confidentiality, as the source code never needs to be exposed or distributed.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system creates and analyzes a copy of the runtime execution state rather than requiring the original source code. This copied runtime representation contains sufficient information for vulnerability analysis while preserving the confidentiality of the actual source code, eliminating the trade-off between assessment quality and IP protection.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9207920B2Systems and methods for remote analysis of software applications
Publication Date: 2015.12.08 VERACODE INC
  • US9207920B2 patent drawing
  • US9207920B2 patent drawing
  • US9207920B2 patent drawing

AI summary

A system for testing a software application receives one or more object spaces extracted from a development or runtime environment of the software application. The extracted object space includes information about various objects associated with the software application, its dependencies, and/or environment, and some of the objects may be dynamically created and/or modified. The extracted object space does not include any source code. A language dependent extraction component can extract the object space using introspections and/or reflection APIs. The extracted object can be translated into a language-independent format and can be analyzed to identify any vulnerabilities in the software application without access to the source code, compiled binary, and runtime environment of the software application.