Runtime Application Self-Protection via Targeted Input-Output Instrumentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Runtime Application Self-Protection (RASP) solutions face high overhead and high false alarm rates due to broad instrumentation across the program flow, which affects performance and accuracy in detecting security vulnerabilities.

Innovation Solution

Targeted instrumentation at specific points in the program flow, such as input and output points, where the application receives data from users or submits queries to sensitive targets, with sensors examining inputs for attack patterns and detectors evaluating outputs for vulnerabilities, minimizing overhead and false positives.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If broad instrumentation is applied across the entire program flow to detect security vulnerabilities, then detection coverage is improved, but system overhead and false alarm rates increase

Engineering Contradiction:
Improvevulnerability detection coverageVSAvoidinstrumentation overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The program flow is segmented into critical sections (input points, output points, and sensitive operations) that are instrumented separately. Instead of instrumenting the entire program flow, only these segmented critical points are monitored, reducing overhead while maintaining detection coverage for security-relevant operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different instrumentation strategies are applied to different parts of the program based on their security importance. Input points use syntax examination for attack patterns, output points use vulnerability evaluation, and sensitive operations use specific detectors. This localized approach optimizes detection effectiveness while minimizing overall overhead.

Inventive Principle:
Principle #3Local quality

2Measurement precision

If comprehensive instrumentation is used to monitor all program operations, then detection accuracy is improved, but false alarm rates increase

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidfalse alarm rate
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

Inputs are examined at input points for attack patterns before they can cause harm. By performing preliminary syntax examination and caching potentially malicious inputs at the source, the system can later correlate these with outputs to confirm actual vulnerabilities, reducing false alarms while maintaining detection accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback loops where outputs are correlated with cached inputs to determine if vulnerabilities actually occurred. This feedback mechanism allows the system to distinguish between potentially malicious inputs that caused real vulnerabilities versus those that were benign, thereby reducing false alarm rates while maintaining high detection accuracy.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10120997B2Code instrumentation for runtime application self-protection
Publication Date: 2018.11.06 CHECKMARX LTD
  • US10120997B2 patent drawing
  • US10120997B2 patent drawing
  • US10120997B2 patent drawing

AI summary

A method for runtime self-protection of an application program includes, before running the application program, identifying input and output points in runtime code (24) of the program. The input points are instrumented so as to cause the program to sense and cache potentially malicious inputs to the program. The output points are instrumented so as to cause the program to detect outputs from the program corresponding to the cached inputs. While running the application program, upon detecting, at an instrumented output point, an output corresponding to a cached input, a vulnerability of a target of the output to the cached input is evaluated. A protective action is invoked upon determining that the output is potentially vulnerable to the cached input.