Program Shepherding Control Flow Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current security measures for computer systems are inadequate in preventing hijacking attacks, as they primarily focus on stopping attacks during the 'enter' or 'compromise' phases, and lack effective techniques to monitor and prevent unauthorized control transfers and memory modifications, leading to vulnerabilities in modern software monocultures.

Innovation Solution

The implementation of Program Shepherding, which monitors control flow transfers to enforce security policies through Restricted Code Origins, Restricted Control Transfers, and Un-Circumventable Sandboxing, ensuring that only authorized code execution occurs and preventing bypassing of sandboxing checks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional security measures focus on stopping attacks during enter or compromise phases, then security monitoring is simplified, but the ability to prevent unauthorized control transfers is insufficient

Engineering Contradiction:
Improvesecurity protection effectivenessVSAvoidsecurity monitoring complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by monitoring control flow transfers before they can execute malicious code. The system intercepts and validates control transfers to memory locations before the compromised code can run, preventing the hijacking phase from completing. This proactive approach stops attacks before they cause damage while maintaining manageable monitoring complexity through targeted observation points.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary monitoring mechanism that sits between the program execution and memory access. This intermediary observer tracks control flow transfers without interfering with normal program operation, allowing the system to detect unauthorized transfers while maintaining program functionality. The mediator approach enables reliable security monitoring with controlled complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If all input strings are scrutinized to identify possible attacks, then known exploits can be stopped, but previously unknown or zero day attacks cannot be prevented

Engineering Contradiction:
Improveattack detection accuracyVSAvoidsecurity against unknown attacks
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

Instead of scrutinizing input strings to detect known attack patterns (bottom-up approach), the patent inverts the approach by monitoring control flow transfers from memory locations (top-down approach). This inversion allows the system to detect unauthorized code execution and control transfers regardless of whether the attack pattern is known, effectively protecting against zero day attacks by observing the actual execution behavior rather than relying on signature matching.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent replaces the mechanical signature-based detection system with a control flow monitoring mechanism. Rather than using pattern matching and string scrutiny, the system uses control flow graph observation to detect deviations from authorized execution paths. This substitution enables detection of unknown attacks by observing structural violations in control flow rather than relying on pre-programmed attack signatures.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Ease of manufacture

If coarse-grained policy enforcement monitors only API or system calls, then implementation is simplified, but accurate monitoring of improper control transfers cannot be achieved

Engineering Contradiction:
Improvepolicy enforcement simplicityVSAvoidcontrol transfer monitoring accuracy
Core Design Contradiction:
Ease of manufactureVSMeasurement precision

Solution Approach 1:

The patent applies segmentation by dividing the monitoring function into distinct phases: tracking control flow transfers, validating destination memory locations, and detecting policy violations. This segmentation allows the system to maintain simple implementation through modular monitoring components while achieving precise detection of improper control transfers at the instruction level. Each segment handles a specific aspect of control flow validation, combining simplicity with accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from coarse-grained monitoring at the API level to fine-grained monitoring at the control flow transfer level. By adding the dimension of instruction-level observation, the system achieves precise monitoring of improper control transfers while maintaining manageable complexity through targeted observation at critical junctions in the control flow graph.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS7594111B2Secure execution of a computer program
Publication Date: 2009.09.22 VMWARE INC
  • US7594111B2 patent drawing
  • US7594111B2 patent drawing
  • US7594111B2 patent drawing

AI summary

Hijacking of an application is prevented by monitoring control flow transfers during program execution in order to enforce a security policy. At least three basic techniques are used. The first technique, Restricted Code Origins (RCO), can restrict execution privileges on the basis of the origins of instruction executed. This distinction can ensure that malicious code masquerading as data is never executed, thwarting a large class of security attacks. The second technique, Restricted Control Transfers (RCT), can restrict control transfers based on instruction type, source, and target. The third technique, Un-Circumventable Sandboxing (UCS), guarantees that sandboxing checks around any program operation will never be bypassed.