Static Detection of Information-Flow Downgraders

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current static analysis methods are inadequate for detecting and categorizing information-flow downgraders in Web applications, as they are often implemented by the applications themselves, making manual inspection difficult and error-prone, and dynamic analysis may not cover all possible downgraders due to incomplete test-case suites.

Innovation Solution

A system and method for static detection and categorization of information-flow downgraders through static string analysis, which transforms program variables into a single assignment, generates context-free grammars, and compares these against function specifications to identify and categorize downgraders, ensuring proper input downgrading.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual inspection is used to detect downgraders, then detection precision can be high, but it is difficult and error-prone due to the large amount of code

Engineering Contradiction:
Improvedetection precisionVSAvoidease of detection
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The system performs self-service by automatically analyzing its own codebase to detect downgraders. The static analysis framework examines the application program's source code, control flow graphs, and data flow information to identify downgrader functions without requiring external manual inspection, thereby resolving the contradiction between high detection precision and ease of operation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical manual inspection process with an automated computational system. The static analysis framework uses algorithmic approaches including control flow analysis, data flow analysis, and string analysis to substitute human effort, achieving both high precision detection and operational ease through automation.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If dynamic analysis is used to detect downgraders, then it can cover runtime behavior, but it may not detect all downgraders due to incomplete test-case suites

Engineering Contradiction:
Improvecompleteness of detectionVSAvoidcomplexity of test cases
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary action by conducting static analysis before runtime execution. The framework analyzes the control flow graph and data flow information in advance to identify potential downgraders, eliminating the need for comprehensive runtime test cases and achieving complete detection coverage without the complexity of exhaustive testing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary static analysis framework that bridges the gap between source code and runtime behavior. This intermediary layer uses control flow analysis, data flow analysis, and string analysis to detect downgraders without requiring actual program execution or test case suites, thereby achieving complete detection coverage while avoiding the complexity of comprehensive testing.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If static analysis is performed on the entire program, then it can detect all downgraders, but it requires complex analysis of control flow and data flow

Engineering Contradiction:
Improvedetection accuracyVSAvoidcomplexity of analysis
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the static analysis into distinct modular components: control flow analysis to build the control flow graph, data flow analysis to track information flow between program points, and string analysis to examine string operations. This segmentation reduces the complexity of analyzing the entire program at once while maintaining high detection accuracy through systematic examination of each aspect.

Inventive Principle:
Principle #1Segmentation

4Reliability

If downgraders are not properly detected, then information-flow security is compromised, but automatic detection requires sophisticated string analysis

Engineering Contradiction:
Improveinformation-flow securityVSAvoidcomplexity of analysis system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements feedback through its multi-layered analysis approach where control flow analysis informs data flow analysis, which in turn guides string analysis. The framework uses the results from each analysis layer to refine and improve subsequent analysis, creating a feedback loop that enhances detection accuracy while managing system complexity through iterative refinement rather than monolithic complex analysis.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10742666B2System and method for static detection and categorization of information-flow downgraders
Publication Date: 2020.08.11 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10742666B2 patent drawing
  • US10742666B2 patent drawing
  • US10742666B2 patent drawing

AI summary

A system and method for static detection and categorization of information-flow downgraders includes transforming a program stored in a memory device by statically analyzing program variables to yield a single assignment to each variable in an instruction set. The instruction set is translated to production rules with string operations. A context-free grammar is generated from the production rules to identify a finite set of strings. An information-flow downgrader function is identified by checking the finite set of strings against one or more function specifications.