Constraint Injection System for Real-Time Software Vulnerability Remediation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current intrusion prevention systems rely heavily on proactive measures that cannot guarantee 100% coverage against known and unknown attacks, and reactive measures like patching are cumbersome and disrupt system operations.

Innovation Solution

A constraint injection system that inserts protective code directly into application memory near vulnerabilities, allowing for real-time protection without system restarts and providing fine-grained administrative control, enabling detection and remediation of attacks without altering normal system behavior.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional patching is used to fix vulnerabilities, then security protection is improved, but system operations are disrupted requiring restarts

Engineering Contradiction:
Improvesecurity protectionVSAvoidsystem operations
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary action by injecting constraint code into the application's memory space before the vulnerability can be exploited. The constraint code is inserted at runtime into the application's code segment, establishing protective measures in advance without requiring system restarts or interrupting normal operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system employs dynamics by making the protection mechanism adaptable and flexible. The constraint injection system can dynamically insert, modify, or remove constraint code in the application's memory space during runtime. The protection level and scope can be adjusted without recompiling or restarting the application, allowing continuous adaptation to new threats.

Inventive Principle:
Principle #15Dynamics

2Reliability

If proactive protection systems are deployed, then coverage against known attacks is improved, but coverage against unknown attacks remains insufficient

Engineering Contradiction:
Improvecoverage against known attacksVSAvoidcoverage against unknown attacks
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system applies parameter changes by modifying the application's execution parameters through constraint code injection. By inserting constraint code that monitors and controls specific parameters (such as buffer boundaries, access permissions, or execution flow), the system can adapt to both known and unknown attacks. The constraint code can dynamically adjust protection parameters based on detected threats without requiring prior knowledge of the attack vector.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If patches are applied to fix vulnerabilities, then security flaws are eliminated, but application behavior is altered and normal operations are affected

Engineering Contradiction:
Improvevulnerability eliminationVSAvoidnormal application behavior
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The constraint code acts as an intermediary between the vulnerable application code and the security enforcement mechanism. Rather than directly modifying the application's core functionality, the constraint code inserts intermediate checks and controls that prevent exploitation while allowing normal operation. The intermediary constraint code monitors execution flow and data flow, blocking only malicious operations while permitting legitimate application behavior to proceed unchanged.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8656497B2Constraint injection system for immunizing software programs against vulnerabilities and attacks
Publication Date: 2014.02.18 VMWARE INC
  • US8656497B2 patent drawing
  • US8656497B2 patent drawing
  • US8656497B2 patent drawing

AI summary

A constraint is inserted into a program to address a vulnerability of the program to attacks. The constraint includes a segment of code that determines when the program has been asked to execute a “corner case” which does not occur in normal operations. The constraint code can access a library of detector and remediator functions to detect various attacks and remediate against them. Optionally, the detector can be employed without the remediator for analysis. The context of the program can be saved and restored if necessary to continue operating after remediation is performed. The constraints can include descriptors, along with machine instructions or byte code, which indicate how the constraints are to be used.