Network Partitioning for Virtual Machine Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cyber-security infrastructure is insecure due to a mismatch in design assumptions and lack of appropriate isolation of code and data from trusted and untrusted sources in modern computer systems, leading to vulnerabilities that can be exploited by cyber-criminals, especially in virtualized computing environments.

Innovation Solution

Implementing a virtualized computing environment with multiple virtual machines, including a trusted VM0 for secure operations, untrusted Code Virtual Machines (UCVMs) for handling untrusted data, and network partitioning using a Cognitive Assist Module to manage access to network resources based on policy data, ensuring isolation and secure execution of untrusted code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If code and data from different sources are executed on general purpose devices, then system versatility and functionality are improved, but security reliability deteriorates due to lack of isolation between trusted and untrusted sources

Engineering Contradiction:
Improvesystem functionalityVSAvoidsecurity reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system is segmented into multiple isolated execution environments (sandboxes) that run on the same general purpose device. Each sandbox provides a separate namespace for code and data, allowing versatile execution of untrusted code while maintaining security isolation. The segmentation creates logical partitions that prevent untrusted code from affecting the host system or other sandboxes.

Inventive Principle:
Principle #1Segmentation

2Reliability

If virtual machines are used to isolate untrusted code, then security reliability is improved, but device complexity increases due to additional virtualization layers

Engineering Contradiction:
Improvesecurity reliabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal sandboxing mechanism that can execute multiple types of code (native applications, web browsers, plugins) within the same isolated environment without requiring separate virtual machines for each. This multi-functional approach maintains security reliability while reducing the complexity that would result from creating individual VMs for every untrusted code source.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

Instead of using heavy virtual machine copies with full operating systems, the patent uses lightweight sandbox environments that copy only the essential isolation mechanisms. This approach provides the security benefits of virtualization without the substantial overhead and complexity of full VM implementations.

Inventive Principle:
Principle #26Copying

3Reliability

If strict isolation policies are enforced for untrusted code, then security reliability is improved, but ease of operation deteriorates due to restricted access to system resources

Engineering Contradiction:
Improvesecurity reliabilityVSAvoidease of operation
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The sandbox isolation policies are implemented dynamically rather than statically. The system can adjust the level of isolation and resource access permissions based on the trust level of the code, the user's preferences, and the specific operational context. This dynamic approach maintains strict security boundaries while allowing flexible operation when appropriate.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10055231B1Network-access partitioning using virtual machines
Publication Date: 2018.08.21 HEWLETT PACKARD DEVELOPMENT COMPANY LP
  • US10055231B1 patent drawing
  • US10055231B1 patent drawing
  • US10055231B1 patent drawing

AI summary

Approaches for handling network resources in a virtualized computing environment. A first request for network resources is received from a first virtual machine. Policy data is consulted to determine how to service the first request. The first request is processed by providing the first virtual machine with access to only a first portion of network resources. A second request for network resources is received from a second virtual machine. Policy data is consulted to determine how to service the second request. The second request is processed by providing the second virtual machine with access to only a second portion of network resources that is not coextensive with the first portion. In this way, virtual machines may have access to particular resources and/or specific bounded areas of a network.