Source Code Vulnerability Analysis Using Static Data Flow Labeling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current security vulnerability assessment technologies are inadequate in providing comprehensive assessments for software products, often resulting in insufficient testing and increased risks of security vulnerabilities due to unpermitted data and insider threats, which are difficult to identify and track.

Innovation Solution

A system and method that utilize static analysis, data flow, and control flow analyses in combination with machine learning clustering techniques to identify unpermitted data and insider threats by labeling code portions with vulnerability factors, determining their severity, and customizing results for authorized personnel, while automating the analysis of coding styles and obfuscation methods to detect potential insider threats.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If comprehensive security vulnerability assessment is implemented, then security reliability is improved, but analysis time and computational resources increase

Engineering Contradiction:
Improvesecurity vulnerability assessment accuracyVSAvoidanalysis time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary indexing and labeling of code portions with vulnerability factors before actual security analysis. This pre-processing organizes the code base into searchable structures with pre-identified vulnerability characteristics, enabling faster query execution and reducing analysis time when security assessments are needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates indexed copies of source code with embedded vulnerability factor labels and metadata. These indexed representations allow rapid searching and analysis without repeatedly parsing the original source code, significantly reducing computational overhead and analysis time while maintaining assessment accuracy.

Inventive Principle:
Principle #26Copying

2Measurement precision

If multiple analysis techniques (static analysis, data flow analysis, control flow analysis) are combined, then measurement precision is improved, but device complexity increases

Engineering Contradiction:
Improvevulnerability identification accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system merges multiple analysis techniques (static analysis, data flow analysis, control flow analysis) into a unified vulnerability assessment platform. By integrating these techniques and sharing common infrastructure such as the indexed code base and vulnerability factor framework, the system achieves comprehensive vulnerability detection while avoiding the redundancy of separate analysis tools.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system designs a multi-functional analysis engine that can perform static analysis, data flow analysis, and control flow analysis using a common architecture. The unified system handles multiple analysis types through standardized processes and shared data structures, reducing overall system complexity compared to maintaining separate specialized tools.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Loss of information

If detailed vulnerability labeling and categorization is performed, then information completeness is improved, but data processing complexity increases

Engineering Contradiction:
Improvevulnerability information completenessVSAvoiddata processing complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The system segments vulnerability information into distinct labeled categories (e.g., authentication vulnerabilities, injection vulnerabilities, cryptographic weaknesses) with specific vulnerability factors for each code portion. This segmentation organizes complex vulnerability data into structured, manageable units that can be efficiently processed, searched, and analyzed without overwhelming complexity.

Inventive Principle:
Principle #1Segmentation

4Difficulty of detecting and measuring

If automated analysis of coding styles and obfuscation methods is implemented, then detection capability is improved, but computational resources increase

Engineering Contradiction:
Improveinsider threat detection capabilityVSAvoidcomputational resources
Core Design Contradiction:
Difficulty of detecting and measuringVSUse of energy by moving object

Solution Approach 1:

The system implements self-learning capabilities where the automated analysis engine improves its detection of coding styles and obfuscation methods through accumulated experience. The system automatically adjusts its analysis parameters and patterns based on previously identified insider threats and vulnerabilities, reducing the need for constant manual configuration and optimizing computational resource usage over time.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11610000B2System and method for identifying unpermitted data in source code
Publication Date: 2023.03.21 BANK OF AMERICA CORP
  • US11610000B2 patent drawing
  • US11610000B2 patent drawing
  • US11610000B2 patent drawing

AI summary

A system configured for identifying unpermitted data in source code receives a search query comprising particular keywords related to the unpermitted data. The system labels the source code with vulnerability factors and categories of those vulnerability factors, where the vulnerability factors indicate a security vulnerability and the categories provide information about the security vulnerability of the source code. The system performs a static analysis on the source code to identify instances of the particular keyword in a data flow and control flow of the source code. The system performs a vulnerability analysis on the source code to determine a vulnerability level of the source code, in which factor weights and category weights for each code portion of the source code are determined. The system calculates a weighted sum of the factor weights and category weights for each code portion, thereby detecting instances of unpermitted data in source code.