Indirect Control Flow Malicious Code Detection via Address Prediction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtualized systems are vulnerable to malicious code attacks, particularly through indirect control-flow instructions, which can lead to costly dynamic checks and performance penalties.

Innovation Solution

A method is introduced to analyze indirect control-flow instructions by comparing generated memory addresses to predicted addresses, evaluating program code when mis-predictions occur, and invoking software handlers to prevent malicious execution, leveraging hardware support for mis-predicted control flow and enhanced compiler/linker/loader software.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dynamic checks are performed on indirect control-flow instructions to detect malicious code, then security is improved, but system performance deteriorates due to costly checks

Engineering Contradiction:
ImprovesecurityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by predicting control-flow destinations before execution and establishing expected memory address ranges in advance. This allows the system to have security checks ready before malicious code can execute, eliminating the need for costly dynamic checks during runtime while maintaining security.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism (prediction-based validation layer) between the indirect control-flow instruction and the execution engine. This intermediary uses predicted values and memory address range validation to filter out malicious code without requiring expensive dynamic checks, thus resolving the contradiction between security and performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If comprehensive validation of indirect control-flow targets is implemented, then detection precision is improved, but computation resource consumption increases

Engineering Contradiction:
Improvedetection precisionVSAvoidcomputation resource consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The system applies partial validation by focusing checks only on the critical aspect (memory address range validity) rather than comprehensive validation of all possible code attributes. This partial action approach maintains high detection precision while minimizing computation resource consumption by avoiding unnecessary validation steps.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The validation mechanism serves itself by using the program's own predicted control-flow information and existing memory address structures to perform validation. This self-service approach eliminates the need for external computational resources, achieving high detection precision without increasing overall system resource consumption.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8141163B2Malicious code detection
Publication Date: 2012.03.20 VMWARE INC
  • US8141163B2 patent drawing
  • US8141163B2 patent drawing
  • US8141163B2 patent drawing

AI summary

In a system where an indirect control flow instruction requires a CPU to consult a first memory address, in addition to what is encoded in the instruction itself, for program execution, a method is provided to determine if the first memory address contains a valid or plausible value. The first memory address is compared to an expected or predicted memory address. A difference between the expected or predicted memory address and the first memory address causes an evaluation of any program code about to be executed. The evaluation of code determines whether or not a malicious attack is occurring, or being attempted, that might affect proper operation of the system or program.