IP Library › Granted Patent US 10,437,625
Granted Patent B2
US 10,437,625 · App. 15/625,357 · Granted Oct 8, 2019

Evaluating configuration requests in a virtual machine

Inventors: Peter J. Kaufman (Sammamish, WA); Sean Anderson Bowles (Seattle, WA); Shayak Lahiri (Redmond, WA); Tarun Kumar Jain (Bothell, WA); Prakash Ajay Kumar Suri (Sammamish, WA); Yuhang Zhu (Bellevue, WA); Adrian Francisco Teran Guajardo (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/45558G06F9/4411G06F9/44505G06F11/3672G06F11/3696G06F2009/45595
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 10,437,625
App. No.
15/625,357
Granted
Oct 8, 2019
Kind
B2
Abstract

Various technologies described herein pertain to evaluating configuration compliance of a computing device. The computing device operates in a configuration compliance evaluation mode to test a set of configuration requests for a configuration source. Configuration changes to the computing device can be applied in a virtual machine run on the computing device when operating in the configuration compliance evaluation mode. Responsive to each configuration request being received and when the computing device is operating in the configuration compliance evaluation mode, the computing device can store the configuration request in a data store, apply the configuration request in the virtual machine to cause a configuration change in the virtual machine, and store data for verifying enforcement of the configuration change in the data store. The configuration changes to the computing device applied in the virtual machine can be removed when the computing device discontinues operating in the configuration compliance evaluation mode.

Claims (55)

1. A method of evaluating configuration compliance of a computing device, comprising:

operating the computing device in a configuration compliance evaluation mode, wherein configuration changes to the computing device are applied in a virtual machine run on the computing device when operating in the configuration compliance evaluation mode, wherein the computing device is previously enrolled in a configuration source prior to operating in the configuration compliance evaluation mode;

receiving, at the computing device, a set of configuration requests for the computing device when the computing device is operating in the configuration compliance evaluation mode;

responsive to each of the configuration requests in the set of configuration requests being received and when the computing device is operating in the configuration compliance evaluation mode:

storing a configuration request in a data store of the computing device;

applying the configuration request in the virtual machine to cause a configuration change in the virtual machine, wherein applying at least one of the configuration requests in the set of configuration requests in the virtual machine comprises merging the at least one of the configuration requests in the set of configuration requests with a conflicting configuration request from the configuration source in which the computing device is previously enrolled; and

storing data for verifying enforcement of the configuration change in the data store of the computing device; and

removing the configuration changes to the computing device applied in the virtual machine when the computing device discontinues operating in the configuration compliance evaluation mode.

2. The method of claim 1 , wherein the set of configuration requests are part of an enrollment in a differing configuration source.

3. The method of claim 1 , wherein the set of configuration requests are received from a differing configuration source.

4. The method of claim 1 , wherein the set of configuration requests are received from an attestation device physically coupled with the computing device.

5. The method of claim 1 , further comprising:

verifying whether an enforced configuration state of the computing device complies with an intended configuration state, wherein the enforced configuration state is based on the configuration changes to the computing device.

6. The method of claim 5 , wherein the verifying of whether the enforced configuration state of the computing device complies with the intended configuration state is performed by an attestation device physically coupled with the computing device.

7. The method of claim 5 , further comprising:

displaying, on a display of the computing device, a user interface that includes instructions for verifying whether the enforced configuration state of the computing device complies with the intended configuration state.

8. The method of claim 1 , further comprising:

undoing at least one of the configuration changes to the computing device applied in the virtual machine based on at least one of the configuration requests in the set of configuration requests when the computing device is operating in the configuration compliance evaluation mode.

9. The method of claim 8 , further comprising:

subsequent to undoing the at least one of the configuration changes, receiving, at the computing device, an updated configuration request for the computing device when the computing device is operating in the configuration compliance evaluation mode;

responsive to the updated configuration request being received and when the computing device is operating in the configuration compliance evaluation mode:

storing the updated configuration request in the data store of the computing device;

applying the updated configuration request in the virtual machine to cause an updated configuration change in the virtual machine; and

storing data for verifying enforcement of the updated configuration change in the data store of the computing device; and

verifying whether an updated, enforced configuration state of the computing device complies with an intended configuration state, wherein the updated, enforced configuration state is based at least in part on the updated configuration change to the computing device.

10. The method of claim 1 , further comprising:

displaying the data for verifying enforcement of the configuration changes over a time period during which the set of configuration requests are applied.

11. The method of claim 1 , further comprising:

identifying that a particular configuration request in the set of configuration requests is unenforceable on the computing device; and

transmitting, from the computing device, a notification that indicates that the particular configuration request is unenforceable.

12. A computing device, comprising:

a data store;

at least one processor; and

memory that comprises computer-executable instructions that, when executed by the at least one processor, cause the at least one processor to perform acts including:

operating the computing device in a configuration compliance evaluation mode, wherein configuration changes to the computing device are applied in a virtual machine run on the computing device when operating in the configuration compliance evaluation mode, wherein the computing device is previously enrolled in a configuration source prior to operating in the configuration compliance evaluation mode;

receiving a set of configuration requests for the computing device when the computing device is operating in the configuration compliance evaluation mode;

responsive to each of the configuration requests in the set of configuration requests being received and when the computing device is operating in the configuration compliance evaluation mode:

storing a configuration request in the data store of the computing device;

applying the configuration request in the virtual machine to cause a configuration change in the virtual machine, wherein applying at least one of the configuration requests in the set of configuration requests in the virtual machine comprises merging the at least one of the configuration requests in the set of configuration requests with a conflicting configuration requests from the configuration source in which the computing device is previously enrolled; and

storing data for verifying enforcement of the configuration change in the data store of the computing device; and

removing the configuration changes to the computing device applied in the virtual machine when the computing device discontinues operating in the configuration compliance evaluation mode.

13. The computing device of claim 12 , wherein the computing device is physically coupled with an attestation device, wherein the attestation device is configured to verify whether an enforced configuration state of the computing device complies with an intended configuration state, and wherein the enforced configuration state is based on the configuration changes to the computing device.

14. The computing device of claim 12 , wherein the set of configuration requests are part of a differing enrollment in a differing configuration source.

15. A method of analyzing configuration compliance of a computing device after enrollment in a configuration source, comprising:

receiving, at the computing device, configuration requests from the configuration source for the computing device;

applying the configuration requests on the computing device;

generating breadcrumbs as the configuration requests are applied on the computing device, wherein the breadcrumbs provide a history of how the configuration requests are applied to the computing device; and

reconstructing a history of the configuration requests being applied on the computing device based on the breadcrumbs, the configuration requests, and a current enforced configuration state of the computing device.

16. The method of claim 15 , further comprising:

automatically triggering the reconstructing of the history of the configuration requests being applied on the computing device.

17. The method of claim 15 , further comprising:

traversing through the history of the configuration requests being applied on the computing device as reconstructed.

18. The method of claim 15 , wherein the computing device is operating in configuration compliance evaluation mode, wherein configuration changes brought about by the configuration requests are applied to the computing device in a virtual machine run on the computing device when operating in the configuration compliance evaluation mode.

19. The method of claim 18 , wherein applying a configuration request in the configuration requests in the virtual machine comprises merging the configuration request with a conflicting configuration request from the configuration source.

20. The method of claim 19 , wherein the breadcrumbs indicate that the configuration request was merged with the conflict configuration request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2017
From: KAUFMAN, PETER J.; BOWLES, SEAN ANDERSON; LAHIRI, SHAYAK; JAIN, TARUN KUMAR; SURI, PRAKASH AJAY KUMAR; ZHU, YUHANG; TERAN GUAJARDO, ADRIAN FRANCISCO
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 042735/0263 →
Continuity (1)
Related Publication 20180365043A1 · Dec 20, 2018
Cited By (1)
US 12,388,711