Secure Enclave Shared Object Linking for Code Injection Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current security measures for electronic apparatuses are inadequate in preventing malicious software from exploiting host computers, as they fail to effectively protect against unauthorized code execution and data modification within computing systems.

Innovation Solution

A method involving a secure enclave that encrypts memory transactions using an enclave-specific key, allowing only authorized code execution within the enclave while using an enclave dynamic linker to associate shared object dependencies with either enclave or non-enclave-loadable shared objects, enabling secure interactions through trampoline objects and enclave proxies to manage data transfer between enclave and non-enclave memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional security measures are used to protect against malicious software, then system security is improved, but the system becomes vulnerable to code injection and control flow hijacking

Engineering Contradiction:
Improvesystem securityVSAvoidcode injection vulnerability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system is divided into enclave mode and non-enclave mode with distinct memory spaces and execution contexts. The enclave program runs in a segregated secure environment with encrypted memory transactions, while non-enclave programs run outside. This segmentation prevents malicious code from injecting into the secure execution context, resolving the vulnerability to code injection while maintaining system security.

Inventive Principle:
Principle #1Segmentation

2Reliability

If enclave mode is implemented to prevent unauthorized code execution, then security is improved, but the ability to use shared objects and external resources is restricted

Engineering Contradiction:
Improvesecure executionVSAvoidshared object compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The enclave dynamic linker acts as an intermediary between the enclave program and shared objects. It resolves shared object dependencies by loading appropriate shared objects and managing the associations between enclave code and external resources. This mediator enables the enclave program to access shared objects and external resources while maintaining security boundaries, thus improving shared object compatibility without compromising secure execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If memory transactions are encrypted using enclave-specific keys, then data protection is improved, but the complexity of memory management increases

Engineering Contradiction:
Improvedata protectionVSAvoidmemory management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The processor automatically performs encryption and decryption of memory transactions using enclave-specific keys without requiring manual intervention. The hardware enforcement of encryption transparently manages the complexity of secure memory access, allowing the system to achieve strong data protection while minimizing the operational burden on software. This self-service approach resolves the contradiction by automating the complex encryption processes.

Inventive Principle:
Principle #25Self-service

4Reliability

If strict enclave boundaries are enforced to prevent unauthorized access, then security is improved, but the efficiency of code execution and resource access is reduced

Engineering Contradiction:
Improveaccess controlVSAvoidexecution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically switches between enclave mode and non-enclave mode based on the execution context. When the enclave program needs to access external resources, the system temporarily transitions to non-enclave mode through controlled interfaces, performs the necessary operations, and then returns to enclave mode. This dynamic switching maintains strict security boundaries while enabling efficient resource access when needed, resolving the contradiction between access control and execution efficiency.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP2973154B1Method, apparatus, system, and computer readable medium to provide secure operation
Publication Date: 2018.04.25 INTEL CORP
  • EP2973154B1 patent drawingFigure 1A~2B
  • EP2973154B1 patent drawingFigure 3A~3B
  • EP2973154B1 patent drawingFigure 3C

AI summary

Technologies are provided in embodiments for receiving an enclave program for operation in an enclave, identifying at least one shared object dependency of the enclave program, determining whether the shared object dependency corresponds to at least one enclave shared object, causing association between the shared object dependency and the enclave shared object in circumstances where the shared object dependency corresponds to the enclave shared object, and causing association between the shared object dependency and an enclave-loadable non-enclave shared object in circumstances where the shared object dependency fails to correspond to the enclave shared object.