Static Analyzer Tracing Software Information Flows

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing static information flow analysis tools require specification and segregation of downgraders to identify security vulnerabilities in computer software, which is inefficient and incomplete, as they do not account for all potential data validation and sanitization points.

Innovation Solution

A system and method that identifies security vulnerabilities by tracing information flows from sources to sinks within a software application without relying on downgraders, using a static analyzer to determine possible values for inputs and comparing them against predefined legal values to detect mismatches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If downgraders are specified and segregated in static analysis, then analysis precision can be improved for known validation points, but device complexity and ease of operation deteriorate due to requiring manual specification and segregation of downgraders

Engineering Contradiction:
Improvevulnerability detection precisionVSAvoidanalysis system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The static analysis system automatically identifies and analyzes downgraders within the software application without requiring manual specification or segregation. The system performs self-service by autonomously detecting data validation and sanitization operations during the analysis process, eliminating the need for users to pre-define downgraders while maintaining comprehensive vulnerability detection capability.

Inventive Principle:
Principle #25Self-service

2Measurement precision

If downgraders are specified and segregated, then analysis focus can be concentrated on known validation points, but loss of information occurs as unknown or unspecifyed downgraders are not accounted for

Engineering Contradiction:
Improvevalidation point analysis accuracyVSAvoidunknown downgrader information
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The static analysis system performs multiple functions simultaneously: it identifies information flows from sources to sinks, detects downgraders automatically, and analyzes data validation operations all within a single unified analysis process. This multi-functional approach ensures comprehensive coverage of both specified and unspecified validation points without requiring separate analysis passes or manual configuration.

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

3Productivity

If manual specification of downgraders is required, then ease of manufacture deteriorates due to increased setup effort, but productivity can be improved through targeted analysis of known vulnerability patterns

Engineering Contradiction:
Improvevulnerability analysis throughputVSAvoidanalysis configuration effort
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The system automatically performs vulnerability analysis without requiring manual configuration or specification of downgraders. It self-services by autonomously identifying validation operations and analyzing information flows, eliminating setup effort while maintaining high productivity through automated detection and comprehensive coverage of all potential vulnerability points in the software application.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8468605B2Identifying security vulnerability in computer software
Publication Date: 2013.06.18 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8468605B2 patent drawing
  • US8468605B2 patent drawing
  • US8468605B2 patent drawing

AI summary

Identifying a security vulnerability in a computer software application by identifying at least one source in a computer software application, identifying at least one sink in the computer software application, identifying at least one input to any of the sinks, determining whether the input derives its value directly or indirectly from any of the sources, determining a set of possible values for the input, and identifying a security vulnerability where the set of possible values for the input does not match a predefined specification of legal values associated with the sink input.