IP Library Granted Patent US 8,127,290
Granted Patent B2
US 8,127,290 · App. 11/867,500 · Granted Feb 28, 2012

Method and system for direct insertion of a virtual machine driver

Assignee: Red Hat, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,127,290
App. No.
11/867,500
Granted
Feb 28, 2012
Kind
B2
Abstract

A method and system for a communication network containing both trusted peers and untrusted hosts within the network. Trusted peers can collaborate with each other to observe and monitor the activity of the untrusted hosts. In addition, a trusted peer instantiated with a virtual machine can have an operating system kernel collaborate with a hypervisor to determine whether threats are present. A trusted peer that needs particular functionality installed can collaborate with other trusted peers and with an administrative console to have that functionality installed. An untrusted host can have a driver directly inserted into it by an administration console, which will facilitate in the collaboration process.

Claims (54)

1. A method for inserting a driver into a virtual machine comprising:

parsing, by a computer system, a virtual machine file on a storage device for a known bit pattern;

determining, by the computer system, based on the known bit pattern, a location in which to insert an executable segment;

inserting, by the computer system, the executable segment into the virtual machine file on the storage device using the determined location; and

verifying, by the computer system, that the insertion completed successfully.

2. The method of claim 1 wherein the known bit pattern is a first driver.

3. The method of claim 2 , wherein the first driver is one of a printer driver, communications driver, or video driver.

4. The method of claim 1 wherein the executable segment is a second driver.

5. The method of claim 3 , wherein the second driver is a kernel driver.

6. The method of claim 1 , wherein inserting the executable segment further comprises compressing the known bit pattern, the executable segment, and a compression engine into a memory space equivalent in size to the known bit pattern.

7. The method of claim 1 , wherein inserting the executable segment further comprises:

replacing the known bit pattern in the virtual machine file with the executable segment;

encapsulating the known bit pattern with an application wrapper; and

utilizing the executable segment as a conduit to allow the known bit pattern to execute.

8. The method of claim 1 , wherein inserting the executable segment further comprises:

executing the virtual machine in temporary memory;executing a driver insertion script; and

inserting the executable segment into the executing virtual machine.

9. A system for inserting a driver into a virtual machine comprising:

a storage device to store a virtual machine file; and

a processing device, coupled to the storage device, to:

parse the virtual machine file for a known bit pattern;

determine, based on the known bit pattern, a location in which to insert an executable segment;

insert the executable segment into the virtual machine file using the determined location; and

verify that the insertion completed successfully.

10. The system of claim 9 wherein the known bit pattern is a first driver.

11. The system of claim 10 , wherein the first driver is one of a printer driver, communications driver, or video driver.

12. The system of claim 9 wherein the executable segment is a second driver.

13. The system of claim 12 , wherein the second driver is a kernel driver.

14. The system of claim 9 , wherein the processor is further to compress the known bit pattern, the executable segment, and a compression engine into a memory space equivalent in size to the known bit pattern.

15. The system of claim 9 , the processor is further to:

replace the known bit pattern in the virtual machine file with the executable segment;

encapsulate the known bit pattern with an application wrapper; and

utilize the executable segment as a conduit to allow the known bit pattern to execute.

16. The system of claim 9 , the processor is further to:

execute the virtual machine in temporary memory;

execute a driver insertion script; and

insert the executable segment into the executing virtual machine.

17. A non-transitory computer-readable storage medium containing data and instructions to cause a processor to perform a method for inserting a driver into a virtual machine comprising:

parsing, by a computer system, a virtual machine file on a storage device for a known bit pattern;

determining, by the computer system, based on the known bit pattern, a location in which to insert an executable segment;

inserting, by the computer system, the executable segment into the virtual machine file on the storage device using the determined location; and

verifying, by the computer system, that the insertion completed successfully.

18. The non-transitory computer-readable storage medium of claim 17 wherein the known bit pattern is a first driver.

19. The non-transitory computer-readable storage medium of claim 18 wherein the first driver is one of a printer driver, communications driver, or video driver.

20. The non-transitory computer-readable storage medium of claim 17 wherein the executable segment is a second driver.

21. The non-transitory computer-readable storage medium of claim 20 wherein the second driver is a kernel driver.

22. The non-transitory computer-readable storage medium of claim 17 , wherein inserting the executable segment further comprises compressing the known bit pattern, the executable segment, and a compression engine into a memory space equivalent in size to the known bit pattern.

23. The non-transitory computer-readable storage medium of claim 17 , wherein inserting the executable segment further comprises:

replacing the known bit pattern in the virtual machine file with the executable segment;

encapsulating the known bit pattern with an application wrapper; and

utilizing the executable segment as a conduit to allow the known bit pattern to execute.

24. The non-transitory computer-readable storage medium of claim 17 , wherein inserting the executable segment further comprises:

executing the virtual machine in temporary memory;executing a driver insertion script; and

inserting the executable segment into the executing virtual machine.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2010
From: FORTISPHERE, INC.
To: RED HAT, INC.
Reel/Frame 024431/0355 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2008
From: SUIT, JOHN M.
To: FORTISPHERE, INC.
Reel/Frame 020531/0773 →
Continuity (2)
Continuation In Part 11767173 · Jun 22, 2007
Related Publication 20080320499A1 · Dec 25, 2008