Vulnerability Identification Using Call Graph Traversal and ML

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for identifying vulnerabilities in software code often result in high false positive rates and lack actionable intelligence, making it difficult to accurately determine true vulnerabilities that can arise during execution.

Innovation Solution

The method involves collecting information on known Common Vulnerabilities and Exposures (CVEs), analyzing metadata using a trained model to identify vulnerable functions, generating vulnerability symbols, and creating a call graph to determine true vulnerabilities by traversing the graph and aggregating patches for these functions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional vulnerability identification methods are used, then vulnerability detection coverage is achieved, but false positive rate increases and actionable intelligence decreases

Engineering Contradiction:
Improvevulnerability identification accuracyVSAvoidfalse positive rate
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The system performs preliminary actions by collecting CVE information and training the model on vulnerability data before actual vulnerability identification. The call graph is constructed in advance to establish function relationships, enabling more accurate vulnerability detection during execution by having the model pre-learning from patch commits and vulnerability patterns.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A trained machine learning model serves as an intermediary between raw vulnerability data and vulnerability identification. The model processes CVE information, function metadata, and call graph data to determine whether identified functions represent true vulnerabilities, filtering out false positives through learned patterns from training data.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If comprehensive vulnerability analysis is performed, then actionable intelligence increases, but system complexity increases

Engineering Contradiction:
Improveactionable intelligenceVSAvoidsystem complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The vulnerability analysis system is segmented into distinct modular components: CVE information collection module, call graph construction module, function identification module, model training module, and vulnerability determination module. Each module handles a specific aspect of the analysis, making the complex system manageable and maintainable while preserving comprehensive vulnerability detection capabilities.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If manual vulnerability verification is used, then accuracy improves, but productivity decreases

Engineering Contradiction:
Improvevulnerability verification accuracyVSAvoidvulnerability analysis throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system performs self-service through automated machine learning model evaluation of identified functions. The trained model automatically determines whether a function represents a true vulnerability by analyzing the call graph and function metadata, eliminating the need for manual verification while maintaining high accuracy through learned vulnerability patterns.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20240241963A1Learning based identification of vulnerable functions in relation to common vulnerabilities and exposures (CVE)
Publication Date: 2024.07.18 MICRO FOCUS LLC
  • US20240241963A1 patent drawing
  • US20240241963A1 patent drawing
  • US20240241963A1 patent drawing

AI summary

Embodiments of the disclosure provide systems and methods for accurately identifying functions in software code that represent vulnerabilities. Identifying vulnerable functions in software code can comprise collecting information identifying one or more known Common Vulnerabilities and Exposures (CVEs) and identifying one or more vulnerable functions in the software code based on relationships between the collected information identifying the one or more known CVEs and the one or more vulnerable functions in the software code. A call graph can be derived for the software code based on the identified one or more vulnerable functions. Each of the identified one or more vulnerable functions can be indicated in the call graph by a vulnerability symbol. A determination can be made as to whether each identified one or more vulnerable functions is a true vulnerability, i.e., when the vulnerable function is encountered when traversing the call graph.