# US 10,375,111 B2 · Anonymous containers

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,375,111 B2
- Document ID: US10375111B2
- Status: Granted
- Kind: B2
- Application number: 15/430,301
- Filed: 2017-02-10
- Published: 2018-05-17
- Granted: 2019-08-06
- Earliest claimed: 2016-11-12
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Benjamin M. Schultz; Frederick Justus Smith; Daniel Vasquez Lopez; Abhinav Mishra; Ian James McCarty; John A. Starks; Joshua David Ebersol; Ankit Srivastava; Hari R. Pulapaka; Mehmet Iyigun; Stephen E. Bensley; Giridhar Viswanathan
- Web page: https://patentgrep.com/patent/US10375111B2

## CPC

- H04L 63/1491: {using deception as countermeasure, e.g. honeypots, honeynets, decoys or entrapment}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 21/53: by executing in a restricted environment, e.g. sandbox or secure virtual machine
- G06F 21/6254: {by anonymising data, e.g. decorrelating personal data from the owner's identification}
- H04L 63/0272: {Virtual private networks}
- H04L 63/0421: {Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer}
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Anonymous containers are discussed herein. An operating system running on a computing device, also referred to herein as a host operating system running on a host device, prevents an application from accessing personal information (e.g., user information or corporate information) by activating an anonymous container that is isolated from the host operating system. In order to create and activate the anonymous container, a container manager anonymizes the configuration and settings data of the host operating system, and injects the anonymous configuration and settings data into the anonymous container. Such anonymous configuration and settings data may include, by way of example and not limitation, application data, machine configuration data, and user settings data. The host operating system then allows the application to run in the anonymous container.

## Claims

### Claim 1

A method, comprising:
receiving a request to run an application in a computing device having a host operating system with corresponding a first set of application data, machine configuration data, or user settings data; and
in response to receiving the request,
activating, by the host operating system, a container that is isolated from directly accessing the first set of application data, machine configuration data, or user settings data in the host operating system;
anonymizing the first set of application data, machine configuration data, or user settings data of the host operating system into a second set of application data, machine configuration data, or user settings data different than the first set, respectively;
injecting the anonymized second set of application data, machine configuration data, or user settings data into the activated container; and
allowing the application to run in the activated container and access the injected anonymized second set of application data, machine configuration data, or user settings data instead of the first set of application data, machine configuration data, or user settings data in the host operating system.

### Claim 2 (depends on 1)

The method of claim 1, wherein the anonymized second set of application data, machine configuration data, or user settings data comprises a set of application data, machine configuration data, or user settings data corresponding to a newly installed host operating system.

### Claim 3 (depends on 2)

The method of claim 2, wherein the set of the application data, machine configuration data, or user settings data is created as part of an operating system compilation and media creation.

### Claim 4 (depends on 2)

The method of claim 2, wherein the set of the configuration and settings data is created locally on the host operating system.

### Claim 5 (depends on 1)

The method of claim 1, wherein the anonymized second set of application data, machine configuration data, or user settings data is randomized or spoofed.

### Claim 6 (depends on 1)

The method of claim 1, wherein the anonymized second set of application data, machine configuration data, or user settings data is stored in a format that can be added to an operating system image in order to anonymize the operating system image.

### Claim 7 (depends on 1)

The method of claim 1, wherein the host operating system is further configured to activate a separate container for at least one additional application in response to receiving a request from the at least one additional application to run in the host operating system.

### Claim 8 (depends on 1)

The method of claim 1, further comprising terminating the activated container in response to an operating system servicing request, an application update, or detection of malware or attack software executing in the activated container.

### Claim 9 (depends on 8)

The method of claim 8, further comprising regenerating a new container with the anonymized second set of application data, machine configuration data, or user settings data, and allowing the application to run in the regenerated container.

### Claim 10 (depends on 1)

The method of claim 1, wherein the anonymized second set of application data, machine configuration data, or user settings data of the host operating system is paired with a virtual private network (VPN) service to spoof a network location.

### Claim 11 (depends on 1)

The method of claim 1, further comprising accessing one or more resources by interacting with a credential proxy implemented in the host operating system, the credential proxy being configured to access user credentials stored in a credential store and provide the user credentials to the one or more resources for access without the user credentials being transmitted from the credential store to the activated container.

### Claim 12 (depends on 1)

The method of claim 1, wherein the anonymized second set of application data, machine configuration data, or user settings data comprise one or more of text strings of a user name, a picture of a user, biometric information of the user, a region or location of the user, a language of the container, hardware or drivers that are used in the region or location of the user, or applications that are used in the region or location of the user.

### Claim 13 (depends on 1)

The method of claim 1, wherein the host operating system is further configured to activate one or more additional containers to run at the same time as the activated container in the host operating system.

### Claim 14

A computing device, comprising:
a processor; and
a memory operatively coupled to the processor, the memory having instructions executable by the processor to provide a host operating system having a first set of application data, machine configuration data, or user settings data and to cause the computing device to:
upon receiving a request to run an application in the computing device,
activate, by the host operating system, a container that is isolated from directly accessing the first set of application data, machine configuration data, or user settings data in the host operating system;
inject a second set of application data, machine configuration data, or user settings data into the activated container, the second set of application data, machine configuration data, or user settings data being anonymized from and different than the first set of application data, machine configuration data, or user settings data, respectively; and
execute the application in the activated container, the injected second set of application data, machine configuration data, or user settings data being accessible to the executed application instead of the first set of application data, machine configuration data, or user settings data in the host operating system.

### Claim 15 (depends on 14)

The computing device of claim 14, wherein the second set of application data, machine configuration data, or user settings data comprises a set of application data, machine configuration data, or user settings data corresponding to a newly installed host operating system.

### Claim 16 (depends on 14)

The computing device of claim 14, wherein the second set of application data, machine configuration data, or user settings data comprises randomized or spoofed first set of application data, machine configuration data, or user setting data.

### Claim 17 (depends on 14)

The computing device of claim 14, wherein the memory includes additional instructions executable by the processor to cause the computing device to:
activate another container for another application in response to receiving a request from the another application to run in the host operating system; and
inject a third set of application data, machine configuration data, or user settings data into the activated another container, the third set of application data, machine configuration data, or user settings data being anonymized from the first set of application data, machine configuration data, or user settings data but is different from the second set of application data, machine configuration data, or user settings data.

### Claim 18

A method performed in a computing device having a processor and a memory having instructions executable by the processor to provide a host operating system having a first set of application data, machine configuration data, or user settings data, the method comprising:
upon receiving a request to run an application in the computing device,
activating, by the host operating system, a container that is isolated from directly accessing the first set of application data, machine configuration data, or user settings data in the host operating system;
injecting a second set of application data, machine configuration data, or user settings data into the activated container, the second set of application data, machine configuration data, or user settings data being anonymized from and different than the first set of application data, machine configuration data, or user settings data, respectively; and
executing the application in the activated container, the executed application having access to the injected second set of application data, machine configuration data, or user settings data instead of the first set of application data, machine configuration data, or user settings data in the host operating system.

### Claim 19 (depends on 18)

The method of claim 18, wherein the second set of application data, machine configuration data, or user settings data comprises a set of application data, machine configuration data, or user settings data corresponding to a newly installed host operating system, or randomized first set of application data, machine configuration data, or user setting data, respectively.

### Claim 20 (depends on 18)

The method of claim 18, further comprising:
activating another container for another application in response to receiving a request from the another application to run in the host operating system; and
injecting a third set of application data, machine configuration data, or user settings data into the activated another container, the third set of application data, machine configuration data, or user settings data being anonymized from the first set of application data, machine configuration data, or user settings data but is different from the second set of application data, machine configuration data, or user settings data.
