Securing Non-Native Code via Native Mediator

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Non-native applications executed in virtual machines lack effective security measures, as they cannot access underlying hardware or operating system security resources, making them vulnerable to attacks and limiting the adaptation of traditional security techniques.

Innovation Solution

A method is introduced to secure non-native applications by modifying them to include a native code function and an application stub, which are packaged together, allowing the stub to call the native code function within a trusted module, thereby extending security services to the virtual machine environment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If non-native applications are executed in a virtual machine environment, then portability and platform independence are improved, but security protection capability deteriorates

Engineering Contradiction:
Improveplatform independenceVSAvoidsecurity protection capability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a hybrid execution model where critical security functions are extracted from the non-native application and implemented as native code functions that execute in the trusted operating system environment. This intermediary native code layer acts as a mediator between the untrusted virtual machine and the trusted security resources, allowing the application to maintain platform independence while securing sensitive operations through native-level protection.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If traditional native code security techniques are applied to non-native applications, then security protection is improved, but adaptability to virtual machine environments deteriorates

Engineering Contradiction:
Improvesecurity protectionVSAvoidvirtual machine compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the non-native application into two distinct parts: security-critical functions are extracted and implemented as native code that executes in the trusted operating system, while non-critical functions remain as virtual machine bytecode. This segmentation allows traditional native code security techniques to protect only the essential security operations without requiring the entire application to be ported to native execution, thus maintaining virtual machine compatibility.

Inventive Principle:
Principle #1Segmentation

3Reliability

If sandbox security restrictions are imposed on non-native applications, then security control is improved, but functionality and adaptability deteriorate

Engineering Contradiction:
Improvesecurity controlVSAvoidapplication functionality
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent applies security controls selectively rather than uniformly across the entire application. By identifying and extracting only the security-critical functions to execute as native code in the trusted environment, the system applies strong security controls locally where needed while allowing the remainder of the application to execute freely in the virtual machine environment, thus preserving full application functionality without unnecessary restrictions.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP2691905B1Method of securing non-native code
Publication Date: 2019.03.13 IRDETO BV
  • EP2691905B1 patent drawingFigure 1~2
  • EP2691905B1 patent drawingFigure 3~4
  • EP2691905B1 patent drawingFigure 5~7

AI summary

A method to secure a non-native application. The non-native application is processed to obtain an application stub to be triggered within a virtual machine. The processing of the non-native application also provide a native code function upon which the application stub depends. The non-native function is part of a trusted module that extends security services from the trusted module to the virtual machine. The trusted module is a native code application that creates a trusted zone as a root of trustiness extending to the virtual machine by an execution-enabling mechanism between the application tab and the non-native function.