Hybrid Vulnerability Detection via Call-Tree Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current security scanning of software applications through black-box scanning and static program analysis has limitations, as black-box scanning may not cover all scenarios and static analysis may miss vulnerabilities that require specific parameter values to flow to security sinks.

Innovation Solution

A hybrid approach combining black-box scanning and static analysis, where a call-tree representation of call stacks is recorded during black-box scanning, and static analysis is performed to determine parameter values that, when abstracted, drive execution to security sinks, generating a security report identifying vulnerable information flows.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If black-box scanning is performed to test application security by simulating attacks, then security vulnerability detection is improved, but coverage of all possible execution scenarios is insufficient

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidscenario coverage
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent combines black-box scanning and static program analysis into a hybrid security analysis system. The black-box scanner executes test inputs and records call-stack traces, while the static analysis component processes source code to identify additional vulnerable paths. This merging allows the system to leverage both dynamic execution testing and static code analysis, achieving comprehensive scenario coverage while maintaining high vulnerability detection accuracy.

Inventive Principle:
Principle #5Merging (Combining)

2Device complexity

If static program analysis is performed on source code to identify vulnerabilities, then code structure analysis is improved, but detection of vulnerabilities requiring specific parameter values is missed

Engineering Contradiction:
Improvecode analysis capabilityVSAvoidvulnerability detection accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The patent introduces call-stack traces as an intermediary data structure that bridges static program analysis and black-box scanning results. The system performs static analysis to identify potential vulnerable paths in the source code, then uses recorded call-stack traces from black-box scanning to verify whether these paths can actually be executed with specific parameter values. This intermediary approach allows static analysis to provide comprehensive code structure coverage while using execution traces to confirm actual vulnerability existence.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If only black-box scanning is used, then ease of operation is maintained, but security confidence level is insufficient

Engineering Contradiction:
Improvescanning simplicityVSAvoidsecurity confidence level
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent performs preliminary static analysis on the application source code to identify potential vulnerable paths before executing black-box scanning. This preliminary action creates a set of candidate vulnerable paths that guide the black-box scanning process, allowing the system to focus testing efforts on high-risk areas. The combination of preliminary static analysis results with actual black-box scanning execution provides both operational simplicity and high security confidence level.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8869287B2Hybrid analysis of vulnerable information flows
Publication Date: 2014.10.21 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8869287B2 patent drawing
  • US8869287B2 patent drawing
  • US8869287B2 patent drawing

AI summary

Arrangements described herein relate to analyzing vulnerable information flows in an application. A black-box scan of the application can be performed to record a call-tree representation of call stacks arising in the application due to test inputs provided during the black-box scan. For each path in the call-tree representation that does not constitute a vulnerable information flow during the black-box scan, a static analysis can be performed to determine at least one parameter value that, when abstracted, drives execution of the application, via the path, to flow to the at least one security sink. A security report can be generated identifying at least one of the paths in the call-tree representation that does not constitute the vulnerable information flow during the black-box scan, but flows to the at least one security sink when the at least one parameter value is abstracted.