Vulnerability Detection via Code Dependency Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for detecting software vulnerabilities, especially those involving taint flow analysis, face challenges in identifying malicious behavior due to the complexity of large codebases and the difficulty in distinguishing relevant from irrelevant code instructions, often resulting in false positives or missed vulnerabilities.
Innovation Solution
The approach involves using dependency analysis to isolate specific instruction types associated with vulnerabilities, eliminating irrelevant instructions, and reducing the code to a smaller, easily inspectable segment that retains the same vulnerabilities as the original code, allowing for more effective detection by human or automated processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If static analysis is performed on the entire codebase to detect vulnerabilities, then comprehensive vulnerability detection is achieved, but the complexity and time required for analysis increases significantly
Solution Approach 1:
The patent segments the codebase by identifying and isolating specific instruction types (source, sink, and intermediate instructions) related to vulnerability detection. This segmentation allows the analysis to focus only on relevant code portions rather than the entire codebase, reducing analysis complexity while maintaining detection completeness.
Solution Approach 2:
The patent extracts and eliminates irrelevant instructions from the codebase, keeping only the essential instructions (source, sink, and intermediate) needed for vulnerability detection. This extraction process reduces the volume of code requiring analysis while preserving all vulnerability-related information.
2Loss of time
If dependency analysis is used to reduce code to relevant instructions only, then analysis time is reduced, but the risk of removing vulnerability-related instructions increases
Solution Approach 1:
The patent applies local quality by differentiating between relevant and irrelevant instructions based on their specific roles in vulnerability detection. Source instructions (data input), sink instructions (data output), and intermediate instructions (sanitization operations) are identified and preserved, while other instructions are eliminated. This localized approach ensures that only necessary instructions are retained, maintaining accuracy while reducing analysis time.
3Measurement precision
If manual inspection of reduced code segments is performed, then detection accuracy improves, but productivity decreases due to manual effort required
Solution Approach 1:
The patent creates a simplified copy or representation of the codebase that contains only the essential instructions relevant to vulnerability detection. This reduced representation maintains the critical vulnerability information while being sufficiently small for efficient manual inspection, thereby balancing accuracy with productivity.
Data Source
AI summary
A method, computerized apparatus and computer program product, the method comprising: obtaining user code; obtaining an indication of at least one vulnerability, the vulnerability associated with one or more sets comprising at least a first instruction type and a second instruction type; scanning the code using dependency analysis, to obtain for one set: one or more first instructions of the first instruction type, one or more second instructions of the second instruction type, and further instructions associated with entities relevant to the first instruction and the second instruction; eliminating instructions other than the first instruction, the second instruction and one of the further instructions, thereby obtaining a collection of instructions that behaves differently from the user code; and providing the collection of instructions for vulnerability detection.


