Instance Instrumentation for Tainted Data Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Interactive Application Security Testing (IAST) solutions face performance penalties due to the need to evaluate every data manipulation for tainted data, even though most data are untainted, leading to unnecessary computing resource consumption.

Innovation Solution

Implementing instanced instrumentation, where only functions handling tainted data are replaced with instrumented versions that include marking functions, reducing the need for unnecessary status checks and conserving computing resources by omitting checks when the data status is already known.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If every function is replaced with an instrumented version that checks for tainted data, then security tracking is improved, but system performance deteriorates due to unnecessary checks on untainted data

Engineering Contradiction:
Improvetainted data tracking accuracyVSAvoidsystem execution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies different treatment to different function instances based on their data sources. Functions receiving data from untrusted sources are instrumented with tainted data tracking, while functions receiving data only from trusted sources are left uninstrumented. This local differentiation ensures security tracking is applied only where necessary, improving performance without compromising security monitoring of tainted data flows.

Inventive Principle:
Principle #3Local quality

2Reliability

If instrumentation is applied to all function instances, then comprehensive security monitoring is achieved, but computing resource consumption increases

Engineering Contradiction:
Improvesecurity flaw detection capabilityVSAvoidcomputing resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments function instances into two categories: those that receive data from untrusted sources and require instrumentation, and those that receive data only from trusted sources and do not require instrumentation. This segmentation allows the system to apply computing resources only where security monitoring is necessary, reducing overall resource consumption while maintaining comprehensive security coverage for tainted data paths.

Inventive Principle:
Principle #1Segmentation

3Reliability

If check functions are implemented for every function instance, then tainted data propagation is properly tracked, but device complexity increases

Engineering Contradiction:
Improvetainted status tracking accuracyVSAvoidinstrumentation overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements check functions selectively at specific function instances based on their data source characteristics. Rather than uniformly instrumenting all function instances, the system adds instrumentation only to functions that receive data from untrusted sources or pass data along tainted paths. This localized approach maintains accurate tainted status tracking while minimizing the complexity overhead associated with instrumentation.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12008373B1Instance instrumentation for different data sources
Publication Date: 2024.06.11 BLACK DUCK SOFTWARE INC
  • US12008373B1 patent drawing
  • US12008373B1 patent drawing
  • US12008373B1 patent drawing

AI summary

Instance instrumentation is provided for different data sources by identifying an instance of a function in a program that receives input from an untrusted source; and replacing, at runtime of the program, the instance of the function with an instrumented version of the function that includes a marking function to indicate an output of the instrumented version of the function is tainted by the input received from the untrusted source. Additionally, instance instrumentation can be provided by identifying a second instance of the function in the program that does not receive input from the untrusted source; and leaving, at runtime of the program, the second instance of the function alone, wherein the second instance of the function is not replaced with the instrumented version of the function.