Vulnerability Triage via Code Fingerprint Clustering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Static Application Security Testing (SAST) tools generate a high number of false positives, leading to inefficient use of computational resources as organizations try to distinguish between actual security vulnerabilities and irrelevant findings, which can divert resources away from addressing real threats.

Innovation Solution

A security vulnerability triage tool that clusters source code segments based on similarities using machine learning algorithms and source code fingerprints, automatically classifying findings as real vulnerabilities or false positives by leveraging prior reviews, thereby conserving resources and prioritizing actual security threats.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If SAST tools are designed to be over-inclusive to identify all potential security vulnerabilities, then the detection coverage is improved, but the number of false positives increases

Engineering Contradiction:
Improvevulnerability detection coverageVSAvoidfalse positive rate
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent segments the vulnerability analysis process into multiple stages: initial SAST scanning, fingerprint generation, clustering analysis, and prioritized review. By dividing the monolithic SAST process into these phases, the system maintains comprehensive detection coverage while filtering false positives through clustering before final review, thus resolving the contradiction between detection coverage and false positive rate

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces fingerprint analysis and clustering algorithms as intermediary steps between SAST scanning and vulnerability confirmation. These intermediaries analyze code structure and data flow patterns to distinguish true vulnerabilities from false positives, allowing the system to maintain over-inclusive scanning while reducing false positive impact on resource allocation

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If manual review is performed on all SAST findings to separate false positives from real vulnerabilities, then the accuracy of vulnerability identification is improved, but the computational resources and time consumed increase significantly

Engineering Contradiction:
Improvevulnerability classification accuracyVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary clustering analysis on SAST findings before manual review, using fingerprint matching to pre-classify vulnerabilities into true positives and false positives. This preliminary action filters out obvious false positives before they reach human reviewers, maintaining high classification accuracy while significantly reducing the time required for manual analysis of the entire finding set

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies automated fingerprint-based classification to a portion of SAST findings (those with matching fingerprints), while reserving manual review for cases without matches or ambiguous cases. This partial automation approach achieves high accuracy for the majority of findings while maintaining the ability to handle edge cases, thereby reducing overall analysis time without sacrificing precision

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If computational resources are allocated to investigate all vulnerability findings including false positives, then the thoroughness of security assessment is improved, but the resources available for addressing real vulnerabilities decrease

Engineering Contradiction:
Improvesecurity assessment thoroughnessVSAvoidcomputational resource efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent extracts false positives from the set of SAST findings through fingerprint clustering and similarity analysis, separating them from true vulnerabilities before resource allocation. By taking out false positives, the system maintains thorough security assessment of actual vulnerabilities while eliminating waste of computational resources on investigating false leads

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements self-service vulnerability triage through automated fingerprint matching and clustering, where the system independently identifies and flags false positives without human intervention. This self-service capability reduces the need for computational resources to be spent on investigating false positives, allowing resources to be focused on real vulnerabilities while maintaining assessment thoroughness

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11941115B2Automatic vulnerability detection based on clustering of applications with similar structures and data flows
Publication Date: 2024.03.26 BANK OF AMERICA CORP
  • US11941115B2 patent drawing
  • US11941115B2 patent drawing
  • US11941115B2 patent drawing

AI summary

A system includes a memory and processor. The memory stores code segment vulnerability findings that were generated through static application security testing (SAST). The processor generates a code fingerprint for each code segment, which corresponds to an abstract syntax tree that has been augmented by data flow information and flattened. The processor applies a machine learning clustering algorithm to group the code fingerprints into clusters of fingerprints that share one or more features. The processor additionally determines that both the fingerprint corresponding to the first source code segment and the fingerprint corresponding to a second source code segment belong to the same cluster. In response, the processor transmits an alert to a device of an administrator, identifying the second code segment as vulnerable to a real vulnerability, where a vulnerability finding for the first code segment has been classified as the real vulnerability through external review.