Incremental IR Merging for Security Vulnerability Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for testing code changes to fix security bugs in source code are time-intensive and prone to introducing new security defects, as they require full static security analysis scans, which can be cumbersome for large or complex applications, and may not accurately determine if the bug is fully resolved across all data flow paths.

Innovation Solution

The system generates an incremental intermediate representation of the security vulnerability fix, merges it with a full intermediate representation of the previous source code version, creates an impact graph, and performs a security vulnerability analysis to assess whether the fix is effective, while also identifying potential regressions and removing unrelated findings.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If full static security analysis scans are performed to test code changes, then comprehensive security bug detection is achieved, but the testing process becomes time-intensive and cumbersome

Engineering Contradiction:
Improvesecurity bug detection accuracyVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the full static security analysis into incremental analysis (focusing only on changed code paths) and full analysis (comprehensive scanning). By dividing the analysis scope based on the extent of code changes, the system performs detailed security checks only where necessary while maintaining overall comprehensiveness, thus reducing testing time without sacrificing detection accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by performing security analysis selectively on impacted code paths rather than scanning the entire codebase. The system identifies and analyzes only the portions of code that are affected by changes, using impact graphs to trace data flow paths from changed statements to potential security vulnerabilities, thereby achieving efficient testing without exhaustive full-scan overhead.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If full static security analysis scans are performed on large or complex applications, then comprehensive security assessment is achieved, but the complexity and cumbersomeness of the process increases

Engineering Contradiction:
Improvesecurity assessment completenessVSAvoidanalysis process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the complex security analysis process into manageable segments: generating incremental intermediate representations of changed code, merging with full intermediate representations, creating impact graphs to identify affected paths, and performing targeted analysis. This segmentation reduces the perceived and actual complexity of analyzing large applications by breaking down the monolithic full-scan approach into structured, incremental steps.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediate representations (IR) and impact graphs as intermediary structures that bridge the gap between source code changes and security vulnerability detection. These intermediaries simplify the analysis process by providing structured data formats that capture code semantics and data flow paths, making it easier to trace and analyze security-relevant changes without directly confronting the full complexity of the original codebase.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If full static security analysis is performed to determine if security bugs are fixed, then accurate bug resolution verification is achieved, but the testing efficiency decreases

Engineering Contradiction:
Improvebug fix verification accuracyVSAvoidtesting efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies partial action by focusing security verification efforts on specific data flow paths that are impacted by code changes. Using impact graphs, the system identifies and analyzes only the relevant paths from changed statements to potential security sinks, rather than performing exhaustive full-scan verification. This approach maintains accurate bug fix detection for affected paths while significantly improving testing efficiency by avoiding redundant analysis of unchanged code paths.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent performs preliminary actions by generating intermediate representations and impact graphs before conducting the actual security analysis. This preliminary structuring of data identifies the scope of impacted code paths in advance, allowing the subsequent security verification to focus efficiently on relevant areas. The preliminary analysis phase prepares the groundwork for targeted verification, improving overall productivity without sacrificing measurement precision.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11650905B2Testing source code changes
Publication Date: 2023.05.16 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11650905B2 patent drawing
  • US11650905B2 patent drawing
  • US11650905B2 patent drawing

AI summary

Embodiments are disclosed for testing source code changes. The techniques include generating an incremental intermediate representation of a security vulnerability fix to repair an identified security vulnerability of a source code application. The techniques also include merging the incremental intermediate representation with a full intermediate representation of a previous version of the source code application. The techniques further include generating an impact graph based on the merged intermediate representation. Additionally, the techniques include performing a security vulnerability analysis on the security vulnerability fix based on the merged intermediate representation, the impact graph, and the identified security vulnerability. Further, the techniques include updating the security vulnerability analysis by removing one or more findings that are not related to the impact graph. Also, the techniques include generating a security assessment for the security vulnerability fix based on the updated security vulnerability analysis.