Micro-Virtualization for Secure Untrusted Code Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current cybersecurity infrastructure is insecure due to a mismatch in user interaction models and lack of appropriate isolation of code and data from trusted and untrusted sources, leading to vulnerabilities that can be exploited by malicious code, especially in modern computer systems that run a variety of software from different sources.
Innovation Solution
Implementing fine-grained operating system (OS) virtualization with dynamic micro-virtualization techniques to create independent virtual machines that execute full operating systems, ensuring that untrusted code and data are isolated and managed according to specific policies, with a trusted virtual machine (VM0) serving as the root of trust and other VMs being created and destroyed on-demand for different activities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If fine-grained OS virtualization with dynamic micro-virtualization is implemented to isolate untrusted code and data, then security reliability is improved, but device complexity increases
Solution Approach 1:
The system segments the computing environment into multiple isolated virtual machines, each with its own virtualized OS instance. Untrusted code executes in isolated VMs separated from the trusted host system by a hypervisor, preventing lateral movement of malware and containing security breaches to specific virtualized containers.
Solution Approach 2:
A hypervisor acts as an intermediary layer between untrusted guest OS instances and the trusted host system. The hypervisor mediates all interactions, providing controlled access to hardware resources and preventing direct communication between isolated VMs, thereby maintaining security boundaries while enabling resource sharing.
2Reliability
If multiple independent virtual machines with full operating systems are created to execute untrusted code, then isolation effectiveness is improved, but productivity decreases due to overhead
Solution Approach 1:
The hypervisor provides universal resource management capabilities that serve all virtualized OS instances simultaneously. Hardware resources such as CPU, memory, and I/O devices are virtualized and shared across multiple guest OSs, eliminating the need for dedicated physical hardware per VM and improving resource utilization efficiency.
Solution Approach 2:
Instead of requiring separate physical hardware for each isolated environment, the system creates virtualized copies of hardware resources through the hypervisor. Multiple guest OS instances operate on virtualized representations of the same physical hardware, providing isolation without the overhead of duplicate physical infrastructure.
3Adaptability or versatility
If dynamic creation and destruction of virtual machines is implemented for different activities, then adaptability is improved, but loss of time increases due to VM provisioning
Solution Approach 1:
The hypervisor pre-configures virtualized hardware resources and establishes isolation boundaries before executing guest OS instances. Security policies, resource allocations, and communication channels are set up in advance, enabling rapid deployment of isolated environments without time-consuming configuration during runtime.
Solution Approach 2:
The system dynamically creates, modifies, and destroys virtual machine instances based on real-time activity requirements. The hypervisor manages the lifecycle of guest OSs, allocating resources when needed and deallocating them when no longer required, providing adaptive resource management that responds to changing workload demands.
Data Source
AI summary
Approaches for executing untrusted software on a client without compromising the client using micro-virtualization to execute untrusted software in isolated contexts. A template for instantiating a virtual machine on a client is identified in response to receiving a request to execute an application. After the template is identified, without human intervention, a virtual machine is instantiated, using the template, in which the application is to be executed. The template may be selected from a plurality of templates based on the nature of the request, as each template describe characteristics of a virtual machine suitable for a different type of activity. Selected resources such as files are displayed to the virtual machines according to user and organization policies and controls. When the client determines that the application has ceased to execute, the client ceases execution of the virtual machine without human intervention.


