Cross-Module Context-Sensitive Security Analysis for Software Bug Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The traditional computer program development cycle is labor-intensive and time-consuming due to manual code review and limitations of scanning-based tools in identifying the source of program bugs, especially in complex software projects where expertise and knowledge across all modules are difficult to maintain, leading to potential security flaws and delayed production.

Innovation Solution

A computer-implemented method for detecting program bugs through cross-module context-sensitive security analysis (CMCSSA) that performs summary collection and interprocedural analysis to map data flows across source modules, identifying untrusted data and critical references, and tracing bugs back to their originating sources, leveraging industry knowledge and reducing the need for extensive expertise.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual code review is used to identify program bugs, then the ability to detect security flaws is improved, but the time and human resources required increase significantly

Engineering Contradiction:
Improvesecurity flaw detectionVSAvoidcode review time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces an intermediary automated analysis system that acts as a mediator between the code and human reviewers. This system performs preliminary security analysis by tracking data flows across modules, identifying potential bugs, and generating structured reports. The intermediary handles the time-consuming initial screening, allowing human reviewers to focus only on complex cases that require expert judgment, thus resolving the contradiction between thorough security review and time efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If scanning-based tools are used to review source code, then the speed of bug identification is improved, but the ability to trace bugs to their originating sources deteriorates

Engineering Contradiction:
Improvebug identification speedVSAvoidbug source tracking
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent implements a feedback mechanism that continuously tracks data flows from their originating sources through multiple function calls and modules. When a potential bug is detected, the system provides feedback by generating detailed trace information that shows the complete path from the original vulnerable code to the detected issue. This feedback loop maintains both speed and source traceability by efficiently managing the analysis process and providing actionable location information to reviewers

Inventive Principle:
Principle #23Feedback

3Reliability

If comprehensive security analysis is performed across all modules, then the detection of cross-module bugs is improved, but the complexity of the analysis process increases

Engineering Contradiction:
Improvecross-module bug detectionVSAvoidanalysis process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the comprehensive security analysis into manageable segments. It analyzes each module independently first, then systematically integrates the results across module boundaries. The system segments the data flow tracking into discrete steps that can be processed independently, making the overall complex cross-module analysis manageable and scalable while maintaining thorough coverage of potential bugs across the entire codebase

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7971193B2Methods for performining cross module context-sensitive security analysis
Publication Date: 2011.06.28 HEWLETT PACKARD ENTERPRISE DEV LP
  • US7971193B2 patent drawing
  • US7971193B2 patent drawing
  • US7971193B2 patent drawing

AI summary

A computer-implemented method for detecting program bugs in source code of a computer program that includes a plurality of source modules, each of the plurality of source modules including at least a set of subroutines, is provided. The method includes performing summary collection on subroutines of the plurality of source modules. Performing the summary collection includes collecting first data pertaining to at least untrusted data in each of the subroutines of the plurality of source modules. The method also includes storing the first data in a set of intermediate files. The method further includes performing interprocedural analysis on the set of intermediate files. The interprocedural analysis is configured to identify at least first untrusted data in a given subroutine of the subroutines of the plurality of source modules and to map a data flow tracking the first untrusted data across at least two of the plurality of source modules.