Autogenous Vulnerability Detection and Healing in Computer Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems fail to effectively detect and heal vulnerabilities in computer code, particularly silent vulnerabilities like the Heartbleed vulnerability, which can lead to severe consequences in networked embedded systems, as they are difficult to detect due to lack of integrity violation and require innovative methods for characterization and exploitation prevention.

Innovation Solution

The implementation of a hybrid approach that includes static analysis to identify vulnerability points, injection of runtime support code for validation and healing, and predicated execution to prevent memory access violations, enabling autogenous detection and healing of vulnerabilities without requiring foreknowledge of specific attacks or signatures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If static analysis is used to identify vulnerability points, then vulnerability detection capability is improved, but system complexity increases due to injection of runtime support code

Engineering Contradiction:
Improvevulnerability detection capabilityVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system performs static analysis during the compilation phase to identify vulnerability points and injects healing code before runtime. This preliminary action allows the system to prepare vulnerability detection and prevention mechanisms in advance, improving detection capability while managing complexity by doing the heavy analysis work before execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces runtime support code as an intermediary between the original vulnerable code and the execution environment. This intermediary layer performs boundary checks and validation without fundamentally altering the original code logic, enabling vulnerability detection while maintaining a clear separation between original functionality and security mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If runtime support code is injected for validation, then exploitation prevention is improved, but execution time increases due to additional boundary checks

Engineering Contradiction:
Improveexploitation preventionVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The runtime support code applies boundary checks and validation only at specific vulnerability points identified during static analysis, rather than performing universal checks throughout the entire codebase. This localized approach prevents exploitation at critical locations while minimizing the impact on overall execution time by avoiding redundant checks in safe code regions.

Inventive Principle:
Principle #3Local quality

3Object-affected harmful factors

If predicated execution is used to prevent memory access violations, then system security is improved, but code complexity increases due to conditional execution logic

Engineering Contradiction:
Improvememory access violationsVSAvoidcode complexity
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The healing code automatically performs boundary validation and conditional execution without requiring external intervention or complex control logic. The runtime support code self-manages the validation process by checking boundaries and conditionally executing or skipping instructions based on pre-computed vulnerability information, reducing the need for additional complex control structures.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11507669B1Characterizing, detecting and healing vulnerabilities in computer code
Publication Date: 2022.11.22 BLUERISC INC
  • US11507669B1 patent drawing
  • US11507669B1 patent drawing
  • US11507669B1 patent drawing

AI summary

An example process includes identifying, by one or more processing devices, a location in computer code that is subject to vulnerability, where the location corresponds to a memory access that is repeatable and that operates on a particular type of variable; and performing processes, by one or more processing devices, to heal the vulnerability. The memory access may be part of a system-to-system or a user-to-system interaction that is repeatable.