IP Library Granted Patent US 9,851,998
Granted Patent B2
US 9,851,998 · App. 14/806,605 · Granted Dec 26, 2017

Hypervisor-hosted virtual machine forensics

Inventor: Jerry Cochran (Snohomish, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F9/45558G06F9/5077G06F2009/45595Y02B60/142Y02B60/167
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 9,851,998
App. No.
14/806,605
Granted
Dec 26, 2017
Kind
B2
Abstract

A computer system acquires forensics data from running virtual machines in a hypervisor-hosted virtualization environment. The computer system provides a forensics partition as an additional root virtual machine partition or child virtual machine partition. The forensics partition includes a forensics service application programming interface configured to target one or more virtual machines and acquire forensics data from a targeted virtual machine running in a particular child virtual machine partition. The forensics service application programming interface is configured to communicate via one or more inter-partition communication mechanisms such as an inter-partition communication bus, a hyercall interface, or forensics switch implemented by the hypervisor-hosted virtualization environment. The forensics service application programming interface can be exposed to a forensics tool as part of a cloud-based forensics service.

Claims (47)

1. A computer system configured to acquire forensics data from running virtual machines, the computer system comprising:

a processor configured to execute computer-executable instructions; and

memory storing computer-executable instructions configured to:

run a hypervisor that hosts a virtualization environment including a root virtual machine partition, an enlightened child virtual machine partition that is hypervisor-aware, an unenlightened child virtual machine partition that is non-hypervisor-aware, and a forensics partition that includes a forensics service application programming interface;

provide access to a hypervisor-aware kernel, via an inter-partition communication mechanism supported by the virtualization environment, to the root virtual machine partition, the enlightened child virtual machine partition, and the forensics partition; wherein the forensics service application programming interface is configured to: acquire forensics data from a first virtual machine, running in the enlightened child virtual machine partition, via the inter-partition communication mechanism; acquire forensics data from a second virtual machine, running in the unenlightened child virtual machine partition, via a forensics switch, wherein the forensics switch is implemented by the root virtual machine partition and interconnects the forensics service application programming interface and the unenlightened child virtual machine partition, wherein the unenlightened child virtual machine partition does not support the inter-partition communication mechanism; and

expose the forensics service application programming interface to a forensics tool.

2. The computer system of claim 1 , wherein the forensics partition, the root virtual machine partition, and the enlightened child virtual machine partition are each more privileged than the unenlightened child virtual machine partition.

3. The computer system of claim 1 , wherein the inter-partition communication mechanism includes an inter-partition bus that is implemented by the forensics partition and the enlightened child virtual machine partition, wherein the inter-partition bus is configured to run in kernel mode.

4. The computer system of claim 1 , wherein the inter-partition communication mechanism includes a hypercall interface that is implemented by the forensics partition and that is configured to invoke a hypercalls application programming interface of the hypervisor.

5. The computer system of claim 1 , wherein the memory further stores computer-executable instructions configured to:

dynamically add a forensics interface to the unenlightened child virtual machine partition; and

connect the forensics switch to the forensics interface.

6. The computer system of claim 1 , wherein the forensics service application programming interface is configured to convert a call from the forensics tool into a call supported by the inter-partition communication mechanism.

7. The computer system of claim 1 , wherein the forensics data includes one or more of: filesystem artifacts, network artifacts, memory artifacts, and event log artifacts.

8. The computer system of claim 1 , wherein the forensics switch is configured to provide access to resources of the unenlightened child virtual machine partition by the hypervisor-aware kernel.

9. The computer system of claim 8 , wherein the forensics switch is configured to enable access to resources of the unenlightened child virtual machine partition for acquiring forensics data, and prevent access to resources of the unenlightened child virtual machine partition for mitigating spread of malware across the virtualization environment including the hypervisor-aware kernel.

10. A computer-implemented method performed by a computer system to acquire forensics data from running virtual machines, the computer-implemented method comprising:

implementing a hypervisor that runs a hypervisor-hosted virtualization environment that includes a root virtual machine partition, an enlightened child virtual machine partition that is hypervisor-aware, and an unenlightened child virtual machine partition that is non-hypervisor-aware;

providing a forensics partition that is hosted by the hypervisor and includes a forensics service application programming interface configured to target a virtual machine;

routing a first request for forensics data, from the forensics service application programming interface to the enlightened child virtual machine partition, via an inter-partition communication mechanism supported by the virtualization environment hosted by the hypervisor;

receiving, at the forensics service application programming interface, a first response to the first request via the inter-partition communication mechanism, wherein the first response is indicative of forensics data obtained from the enlightened child virtual machine partition;

based on a determination that the unenlightened child virtual machine partition does not support the inter-partition communication mechanism, automatically implementing a forensics switch at the root virtual machine partition;

routing a second request for forensics data from the forensics service application programming interface to the forensics switch;

providing, by the forensics switch to the forensics service application programming interface, a second response to the second request, wherein the second response is indicative of forensics data obtained from the unenlightened child virtual machine partition; and

exposing the forensics service application programming interface to a forensics tool.

11. The computer-implemented method of claim 10 , wherein the forensics partition is implemented as an additional root partition that is more privileged than each of the enlightened and unenlightened child virtual machine partitions.

12. The computer-implemented method of claim 10 , wherein the forensics partition is implemented as an additional child virtual machine partition.

13. The computer-implemented method of claim 10 , further comprising:

communicating a request for forensics data between the forensics service application programming interface and the enlightened virtual machine partition using a hypercall interface that is implemented by the forensics partition and that is configured to invoke a hypercalls application programming interface of the hypervisor.

14. The computer-implemented method of claim 10 , wherein the forensics data includes one or more of: filesystem artifacts, network artifacts, memory artifacts, and event log artifacts.

15. The computer-implemented method of claim 10 , wherein the inter-partition communication mechanism comprises a virtual machine bus (VMBus) that supports communication between each of the root virtual machine partition, the forensics partition, and the enlightened child virtual machine partition.

16. The computer-implemented method of claim 15 , wherein the VMBus is configured to run in kernel mode.

17. The computer-implemented method of claim 10 , wherein the unenlightened child virtual machine partition includes a device emulation component configured to run in kernel mode.

18. A computing system comprising:

at least one processor; and

memory storing instructions which, when executed by the at least one processor, configure the computing system to provide:

a hypervisor configured to run a hypervisor-hosted virtualization environment including a root virtual machine partition, an enlightened child virtual machine partition that is hypervisor-aware and configured to support an inter-partition communication mechanism of the virtualization environment, and an unenlightened child virtual machine partition that is non-hypervisor-aware; and

a forensics partition that is hosted by the hypervisor and includes a forensics service application programming interface configured to:

route a first request for forensics data to the enlightened child virtual machine partition via the inter-partition communication mechanism;

receive first forensics data in response to the first request via the inter-partition communication mechanism;

based on a determination that the unenlightened child virtual machine partition is non-hypervisor-aware, automatically configure a forensics switch in the root virtual machine partition;

route a second request for forensics data to the unenlightened child virtual machine partition via the forensics switch;

receive second forensics data in response to the second request via the forensics switch; and

wherein the forensics service application programming interface is exposed to a forensics tool.

19. The computing system of claim 18 , wherein the inter-partition communication mechanism comprises at least one of:

an inter-partition bus that is implemented by the forensics partition and the enlightened child virtual machine partition, or

a hypercall interface that is implemented by the forensics partition and that is configured to invoke a hypercalls application programming interface of the hypervisor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2015
From: COCHRAN, JERRY
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 036158/0281 →
Continuity (2)
Provisional Application 62030636 · Jul 30, 2014
Related Publication 20160034295A1 · Feb 4, 2016