Abstract Program Representations for Secure Static Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current static analysis tools face challenges in being easily integrated into application development lifecycles due to installation, configuration, and licensing issues, and there is a lack of cross-team collaboration and feedback, leading to sub-optimal security vulnerability remediation and duplication of work.

Innovation Solution

An application analysis platform generates abstract program representations (APRs) that are encapsulated into binary archive files (ARSA) for secure, efficient static data-flow analysis, allowing for obfuscation of source code and merging of components for comprehensive analysis across different teams and environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional software packages are used for static analysis tools, then the tool functionality is complete, but the installation, configuration, and maintenance complexity increases

Engineering Contradiction:
Improvetool functionalityVSAvoidinstallation and configuration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a simplified copy of the static analysis tool in the form of a browser extension. Instead of requiring installation of a complete software package, the tool is replicated as a lightweight extension that can be added to an existing web browser, eliminating complex installation and configuration steps while maintaining core analysis functionality.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces a browser extension as an intermediary layer between the user and the static analysis tool. This intermediary packages the tool's functionality within the browser ecosystem, allowing users to access and utilize the analysis capabilities without directly managing the underlying software complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If source code is shared for collaboration, then cross-team feedback improves, but security vulnerabilities can be exploited by malicious users

Engineering Contradiction:
Improvecross-team collaborationVSAvoidsecurity vulnerability exploitation
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent creates an obfuscated copy of the source code representation that preserves the structural and logical information needed for analysis and collaboration while removing or obfuscating sensitive security-critical details. This allows teams to collaborate on code review and feedback without exposing the original source code to potential exploitation.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent extracts only the necessary information from the source code for analysis purposes, separating the code structure and logic from the sensitive security implementations. This extraction allows collaborative review of non-sensitive portions while protecting security-critical sections from exposure to malicious users.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If complete source code is scanned for security analysis, then analysis accuracy is high, but processing time and resource consumption increase

Engineering Contradiction:
Improvesecurity analysis accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent extracts and analyzes only the critical structural and logical elements of the source code rather than processing every line and detail. This selective extraction maintains sufficient accuracy for security vulnerability detection while significantly reducing processing time and computational resource consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the source code analysis into distinct phases and components, analyzing different portions of the code at different levels of detail. Critical security-relevant sections receive thorough analysis while less critical areas are processed more lightly, optimizing the balance between accuracy and processing speed.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10482262B2Static analysis based on abstract program representations
Publication Date: 2019.11.19 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10482262B2 patent drawing
  • US10482262B2 patent drawing
  • US10482262B2 patent drawing

AI summary

An application analysis platform enables automatic generation of abstract program representations (APRs) that are amenable to static analyses for finding security vulnerabilities. The APR is generated automatically, preferably from an existing build system or a source repository, and then encapsulated into a binary archival format for consumption by a static analysis tool, which operates on-premises or in the cloud. The abstract program representation is a highly compact version of the actual source code it represents. The archival format obfuscates the source code that is subjected to the analysis, thus protecting it from being reverse-engineered when moved off-premises or otherwise shared with other users, teams and even organizations. Binary archive files generated separately from different source code components may be readily merged and analyzed together to provide more effective static data-flow analysis, even with respect to components that are built on different machines by different teams and at different times.