Generalized Dataflow Analysis for Extensible Static Security Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing static application security testing (SAST) solutions are highly customized and require redevelopment or modification to perform new types of security-oriented analyses, introducing bugs and limiting user extension capabilities.

Innovation Solution

A generalized dataflow analysis executable code that utilizes lattices and superlattices to evaluate any type of static analysis, allowing specification of new analyses through superlattice definition files without modifying the execution code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If existing SAST solutions use highly customized code for each analysis type, then each analysis can be optimized for its specific purpose, but the system becomes difficult to extend and modify

Engineering Contradiction:
Improveease of adding new analysesVSAvoidcode customization complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal SAST framework where a single executable code base can perform multiple types of static analyses by loading different lattice definitions. The system uses a generic dataflow analysis engine that works with any lattice type (taint analysis, buffer overflow, control flow, etc.) without requiring code modifications, achieving multi-functionality through configuration rather than customization.

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

Solution Approach 2:

The system changes parameters by loading different lattice definitions from external files rather than modifying the core executable code. Each lattice definition specifies the data structures, operations, and analysis rules for a particular static analysis type. This parameter-driven approach allows the same code to adapt to different analysis requirements by simply changing the loaded lattice configuration.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If SAST solutions are highly customized for each analysis type, then specific analysis optimizations are achieved, but bug introduction risk increases with each modification

Engineering Contradiction:
Improvebug-free operationVSAvoidcode modification ease
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent extracts the analysis-specific logic into separate, external lattice definition files, separating it from the core executable code. This extraction means that analysis types can be added or modified independently without touching the main code base, reducing the risk of introducing bugs in the core system while still allowing optimization for specific analysis purposes.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system segments the SAST functionality into modular components: a generic executable code base and separate lattice definition files. Each lattice definition is an independent unit that can be developed, tested, and updated without affecting other analysis types or the core system, thereby improving reliability while maintaining ease of extension.

Inventive Principle:
Principle #1Segmentation

3Productivity

If new analysis types require code redevelopment, then the analysis can be tailored to specific needs, but development time and resources increase

Engineering Contradiction:
Improveanalysis development efficiencyVSAvoidredevelopment time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary action by providing a comprehensive framework and set of tools before actual analysis development is needed. The generic executable code base, along with support for external lattice definitions and configuration files, is prepared in advance, allowing analysts to quickly define new analysis types without performing time-consuming code rewrites.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary layer in the form of lattice definition files that mediate between the generic executable code and the specific analysis requirements. This intermediary allows analysts to specify new analysis types through configuration rather than direct code modification, significantly reducing development time and resource requirements while maintaining the ability to tailor analyses to specific needs.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12530452B2Generalized dataflow analysis for static application security testing
Publication Date: 2026.01.20 MICRO FOCUS LLC
  • US12530452B2 patent drawing
  • US12530452B2 patent drawing
  • US12530452B2 patent drawing

AI summary

A superlattice corresponding to static application security testing (SAST) of source code specifies lattices respectively corresponding to static analyses performable on the source code. Each lattice is specified by all possible lattice elements of the lattice and an operator indicating how two lattice elements of the lattice are combined during the static analysis to which the lattice corresponds. A lattice product of the lattices specified by the superlattice is generated based on all the possible lattice elements of each lattice and the operator of each lattice indicating how two lattice elements are combined. Generalized dataflow analysis executable code is executed on the source code, using the lattice product, to perform the SAST of the source code, including the static analyses respectively corresponding to the lattices.