Static Security Analysis via Data Flow Fact Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current static security analysis tools face scalability issues and provide inadequate remediation for identifying and fixing cross-site scripting (XSS) vulnerabilities, often resulting in false positives and negatives, and requiring high annotation overhead due to the complexity of industry-grade applications.

Innovation Solution

A method that encodes predicates to assert data flow facts, associates truth values, and updates these values using abstract transformers to eliminate security vulnerabilities, automating sanitization and validation operations without user specification, thereby reducing annotation overhead and improving accuracy and remediation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If string analysis is performed to verify security vulnerabilities, then measurement precision is improved, but productivity deteriorates due to poor scalability and high computational cost

Engineering Contradiction:
Improvesecurity vulnerability detection accuracyVSAvoidanalysis scalability
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the complex string analysis problem into two distinct phases: a fast taint analysis phase that identifies potential vulnerability paths, and a precise string analysis phase that only verifies suspicious paths. This segmentation allows the system to achieve both high scalability through the efficient taint analysis and high measurement precision through the targeted string analysis on selected paths only.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If manual taint analysis with user-specified sanitizers is used, then ease of operation is improved, but reliability deteriorates due to false positives and false negatives

Engineering Contradiction:
Improvemanual specification simplicityVSAvoidvulnerability detection accuracy
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent implements a feedback mechanism where the taint analysis results guide the string analysis phase. The system uses the fast taint analysis to identify suspicious data flows, then applies precise string analysis only to those specific paths. This feedback loop eliminates false positives by verifying actual vulnerability paths and reduces false negatives by focusing computational resources on high-risk areas identified by the taint analysis.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If comprehensive string analysis is performed, then measurement precision is improved, but loss of time increases due to extremely high computational cost

Engineering Contradiction:
Improvestring validation accuracyVSAvoidanalysis execution time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary taint analysis before conducting the more expensive string analysis. The taint analysis phase pre-identifies suspicious data flow paths that are likely to contain vulnerabilities. By performing this preliminary filtering action, the system avoids executing time-consuming string analysis on all possible paths, thereby significantly reducing total analysis time while maintaining high measurement precision on the critical paths that are actually analyzed.

Inventive Principle:
Principle #10Preliminary action

4Measurement precision

If manual refactoring and annotation are required for security analysis, then ease of manufacture deteriorates, but measurement precision is improved through focused analysis

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidcode preparation effort
Core Design Contradiction:
Measurement precisionVSEase of manufacture

Solution Approach 1:

The patent implements self-service through automated taint analysis that requires no manual refactoring or annotation from developers. The system automatically instruments the code to track data flows and identify suspicious paths. This self-service approach eliminates the burden of manual code preparation while maintaining high measurement precision, as the automated analysis focuses computational resources on the most critical vulnerability paths without requiring developer intervention.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10956562B2Developing applications using precise static security analysis
Publication Date: 2021.03.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10956562B2 patent drawing
  • US10956562B2 patent drawing
  • US10956562B2 patent drawing

AI summary

A security analysis of an application is performed by encoding predicates during a first operation by asserting a set of data flow facts comprising a mapping from a variable to a security-relevant substring of a string of the application. A respective truth value is associated with each data flow fact of the set of data flow facts. The set of data flow facts and each truth value are stored in a tangible computer-readable memory device. The truth value of at least one data flow fact of the set of data flow facts is updated in at least one subsequent operation using a set of abstract transformers to eliminate or reduce a security vulnerability in the application.