Cross-Module Context-Sensitive Security Analysis for Software Bug Detection
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
Data Source
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.


