Native Code Module Security via Service Registry Mediation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for executing native code modules lack effective security measures without incurring performance limitations, as they often rely on inadequate security mechanisms that can be exploited by malicious code, leading to vulnerabilities such as viruses and data loss.

Innovation Solution

A system that facilitates the execution of native code modules by providing system services through a set of service modules executed with reduced privileges, using an inter-module communication runtime for secure communication and access control, ensuring isolation from sensitive resources and enforcing security policies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If native code modules are executed with full system access, then performance and functionality are improved, but security vulnerabilities increase allowing malicious code to exploit the system

Engineering Contradiction:
Improveexecution performanceVSAvoidsecurity vulnerabilities
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The system segments the execution environment by introducing a runtime that separates the native code module from direct system access. The runtime acts as a boundary that divides the monolithic execution model into isolated components: the untrusted native code, the trusted runtime environment, and the protected system services.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The runtime serves as an intermediary layer between the native code module and the operating system. It mediates all system service requests by intercepting them, validating them against security policies, and forwarding approved requests to the appropriate system services, thereby preventing direct unauthorized access.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If interpreted languages or virtual machines are used to execute untrusted code, then security is improved through isolation, but execution performance deteriorates significantly

Engineering Contradiction:
Improvesecurity isolationVSAvoidexecution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Instead of using a full virtual machine or interpreter as an intermediary, the patent employs a lightweight runtime that directly executes native code while providing mediation services. This runtime intermediary maintains security isolation without the performance overhead of interpretation or full virtualization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system changes the execution parameters by running native code directly rather than through interpretation. The security model is changed from complete isolation (virtual machines) to controlled access (runtime-mediated native execution), allowing native performance while maintaining security through policy-based access control.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If service modules are added dynamically to the service registry, then system adaptability is improved, but system complexity increases

Engineering Contradiction:
Improvedynamic service additionVSAvoidservice registry management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The service registry implements self-service mechanisms where service modules automatically register themselves with the runtime upon loading. The runtime automatically discovers, validates, and integrates new services without requiring manual configuration or complex management procedures, reducing system complexity while maintaining adaptability.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8799928B1System services for native code modules
Publication Date: 2014.08.05 GOOGLE LLC
  • US8799928B1 patent drawing
  • US8799928B1 patent drawing
  • US8799928B1 patent drawing

AI summary

A system includes a service registry (SR) including respective entries for service modules (SM), each entry including data identifying the respective SM and at least one system service (SS) provided by the respective SM, a secure runtime environment (SRE) to execute a first native code module (NCM) according to a first security policy (SP) that specifies permissions for the first NCM to access a SS, and a discovery service (DS) to receive a request for access to a first SS from the first NCM, examine entries of the SR to identify a first SM that provides the first SS, examine the first SP to determine whether the first SP restricts access to the first SS from the first NCM, and select the first SM to provide the first system service to the first NCM if the first SP does not restrict access to the first SS from the first NCM.