String Taint Ranges for Memory Overhead Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing approaches to managing taint information for strings lack granularity, leading to high memory overhead and inefficiencies in handling taint data, especially when dealing with large strings and complex operations, as they often treat entire strings as tainted even if only parts are malicious, and require significant memory and computation resources.

Innovation Solution

Implementing character-level taint tracking using taint ranges instead of single flags or arrays, which reduces memory consumption by representing taint information with ranges and storing metadata with the string, allowing for efficient tracking and processing of tainted characters while maintaining operational efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If character-level taint tracking is implemented using arrays or single flags for entire strings, then taint information can be tracked, but memory overhead becomes excessively high

Engineering Contradiction:
Improvetaint tracking accuracyVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments taint tracking from character-level (fine-grained) to range-level (coarse-grained). Instead of tracking each character individually with separate flags, the system identifies contiguous ranges of tainted characters and represents them as single intervals [start, end). This segmentation reduces the number of taint representations from O(n) for n characters to O(k) for k tainted ranges, significantly decreasing memory consumption while preserving the ability to track which portions of strings are tainted.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a one-dimensional array representation (where each index corresponds to a character position) to a two-dimensional range representation (where each element represents an interval [start, end)). This dimensional change allows the system to compress multiple contiguous tainted characters into a single range object, reducing memory overhead from linear to logarithmic or constant space depending on the number of tainted regions.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If entire strings are treated as tainted when containing malicious input, then security is maintained, but processing efficiency decreases due to unnecessary operations on clean portions

Engineering Contradiction:
ImprovesecurityVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by differentiating between tainted and clean portions within the same string. Instead of uniformly treating the entire string as tainted, the system assigns different taint properties to different character ranges. This allows security-critical operations to be applied only to tainted ranges while skipping clean portions, improving processing efficiency without compromising security. For example, when concatenating strings, the system only copies or validates characters from tainted ranges rather than processing the entire string.

Inventive Principle:
Principle #3Local quality

3Measurement precision

If fine-grained taint tracking is implemented, then precise identification of tainted data is achieved, but computational overhead increases significantly

Engineering Contradiction:
Improvetaint identification precisionVSAvoidcomputation resources
Core Design Contradiction:
Measurement precisionVSPower

Solution Approach 1:

The patent merges adjacent tainted character ranges into single consolidated intervals. When performing string operations such as concatenation or substring extraction, the system combines overlapping or adjacent tainted ranges into unified intervals, reducing the total number of range objects that need to be tracked and manipulated. This merging operation decreases computational overhead for subsequent taint propagation while maintaining precise identification of all tainted character positions.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP3772002B1Management of taint information attached to strings
Publication Date: 2022.04.20 SAP SE
  • EP3772002B1 patent drawingFigure 1A
  • EP3772002B1 patent drawingFigure 1B
  • EP3772002B1 patent drawingFigure 2A

AI summary

Disclosed herein are system, method, and computer program product embodiments for propagating taint information for strings using metadata. Taint information for a string is encoded using taint ranges. When an operation is performed on the string, the operation and any additional taint information corresponding to the operation is encoded into a delta layer of the metadata. Rather than immediately obtaining taint information for a result string when the operation is performed on the string, the delta layer stores the taint information for the operation, and any subsequent operation, until it is needed. Once the taint information is needed, then the delta layers are collapsed into base layer taint information in order to resolve taint information for a result string.