# US 10,372,631 B2 · Sanitizing memory of cloud systems

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

- Number: US 10,372,631 B2
- Document ID: US10372631B2
- Status: Granted
- Kind: B2
- Application number: 15/428,238
- Filed: 2017-02-09
- Published: 2018-08-09
- Granted: 2019-08-06
- Earliest claimed: 2017-02-09
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Suresh N. Chari; Ashish Kundu; Dimitrios Pendarakis
- Web page: https://patentgrep.com/patent/US10372631B2

## CPC

- G06F 12/1458: {by checking the subject access rights}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 12/0864: using pseudo-associative means, e.g. set-associative or hashing
- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- G06F 2212/1052: Security improvement
- G06F 2212/152: Virtualized environment, e.g. logically partitioned system
- G06F 2212/154: Networked environment
- G06F 2212/60: Details of cache memory
- G06F 2221/2143: Clearing memory, e.g. to prevent the data from being stolen
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer-implemented method sanitizes memory in a cloud environment. One or more processors in a computer receive a hypercall resulting from a call from an application running in a computer. The hypercall is to a hypervisor that manages a virtual memory. The hypercall directs the hypervisor to sanitize data in the virtual memory, where sanitizing the data applies a data remanence policy that prevents remanence data in the virtual memory from being accessed by an unauthorized user. In response to receiving the hypercall, one or more processors sanitize the data in the virtual memory that is allocated for use by the application.

## Claims

### Claim 1

A computer-implemented method for sanitizing memory in a cloud environment, the computer-implemented method comprising:
receiving, by a hypervisor, a hypercall from an application running in a computer, wherein the hypervisor manages a virtual memory in a cloud environment, wherein the hypercall directs the hypervisor to sanitize data in the virtual memory, wherein the data in the virtual memory is allocated for use by the application, and wherein the computer is a physical computer; and
in response to receiving the hypercall, sanitizing, by the hypervisor, the data in the virtual memory that is allocated for use by the application, wherein sanitizing the data applies a data remanence policy that prevents remanence data in the virtual memory from being accessed by an unauthorized user.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
sanitizing, by a hardware sanitization module, a hardware memory that provides data to the virtual memory.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
ranking, by one or more processors, pages of data in the virtual memory by sensitivity levels; and
sanitizing, by one or more processors, the pages of data in order of sensitivity level, wherein a first page of data has a first sensitivity level, wherein a second page of data has a second sensitivity level, wherein the first sensitivity level indicates a greater level of sensitivity than the second sensitivity level, and wherein the first page of data is sanitized before the second page of data is sanitized.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining, by one or more processors, that a cache block associated with the virtual memory contains sensitive data used by the application, wherein the cache block is stored in a physical cache; and
sanitizing, by one or more processors, the sensitive data used by the application that is in the cache block that is associated with the virtual memory.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein all of the virtual memory is allocated for use by the application, and wherein the computer-implemented method further comprises:
sanitizing, by one or more processors, all of the virtual memory.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein only a portion of the virtual memory is allocated for use by the application, and wherein the computer-implemented method further comprises:
sanitizing, by one or more processors, only the portion of the virtual memory that is allocated for use by the application.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the virtual memory allocates and stores both sensitive data and non-sensitive data for use by the application, and wherein the computer-implemented method further comprises:
sanitizing, by one or more processors, only the sensitive data in the virtual memory that is allocated for use by the application without sanitizing non-sensitive data that is allocated for use by the application.

### Claim 8

A computer program product for sanitizing memory in a cloud environment, the computer program product comprising a computer readable storage device having program instructions embodied therewith, the program instructions readable and executable by a computer to perform a method comprising:
receiving a hypercall resulting from a call from an application running in a computer, wherein the hypercall is to a hypervisor that manages a virtual memory in a cloud environment, wherein the hypercall directs the hypervisor to sanitize data in the virtual memory, wherein the data in the virtual memory is allocated for use by the application, and wherein the computer is a physical computer that communicates with the cloud environment via a network; and
in response to receiving the hypercall, sanitizing the data in the virtual memory that is allocated for use by the application, wherein sanitizing the data applies a data remanence policy that prevents remanence data in the virtual memory from being accessed by an unauthorized user.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein the method further comprises:
sanitizing a hardware memory that provides data to the virtual memory.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein the method further comprises:
ranking pages of data in the virtual memory by sensitivity levels; and
sanitizing the pages of data in order of sensitivity level, wherein a first page of data has a first sensitivity level, wherein a second page of data has a second sensitivity level, wherein the first sensitivity level indicates a greater level of sensitivity than the second sensitivity level, and wherein the first page of data is sanitized before the second page of data is sanitized.

### Claim 11 (depends on 8)

The computer program product of claim 8, wherein the method further comprises:
determining that a cache block associated with the virtual memory contains sensitive data used by the application; and
sanitizing the sensitive data used by the application that is in the cache block that is associated with the virtual memory.

### Claim 12 (depends on 8)

The computer program product of claim 8, wherein all of the virtual memory is allocated for use by the application, and wherein the method further comprises:
sanitizing all of the virtual memory.

### Claim 13 (depends on 8)

The computer program product of claim 8, wherein only a portion of the virtual memory is allocated for use by the application, and wherein the method further comprises:
sanitizing only the portion of the virtual memory that is allocated for use by the application.

### Claim 14 (depends on 8)

The computer program product of claim 8, wherein the virtual memory allocates and stores both sensitive data and non-sensitive data for use by the application, and wherein the method further comprises:
sanitizing only the sensitive data in the virtual memory that is allocated for use by the application without sanitizing non-sensitive data that is allocated for use by the application.

### Claim 15 (depends on 8)

The computer program product of claim 8, wherein the program instructions are provided as a service in the cloud environment.

### Claim 16

A computer system comprising one or more processors, one or more computer readable memories, and one or more computer readable storage mediums, and program instructions stored on at least one of the one or more computer readable storage mediums for execution by at least one of the one or more processors via at least one of the one or more computer readable memories, the stored program instructions comprising:
program instructions to receive a hypercall from an application running in a computer, wherein the hypervisor that manages a virtual memory in a cloud environment, wherein the hypercall directs the hypervisor to sanitize data in the virtual memory, wherein the data in the virtual memory is allocated for use by the application, and wherein the computer is a physical computer that communicates with the cloud environment via a network; and
program instructions to, in response to receiving the hypercall, sanitize the data in the virtual memory that is allocated for use by the application, wherein sanitizing the data applies a data remanence policy that prevents remanence data in the virtual memory from being accessed by an unauthorized user.

### Claim 17 (depends on 16)

The computer system of claim 16, further comprising:
program instructions to sanitize a hardware memory that provides data to the virtual memory.

### Claim 18 (depends on 16)

The computer system of claim 16, further comprising:
program instructions to rank pages of data in the virtual memory by sensitivity levels; and
program instructions to sanitize the pages of data in order of sensitivity level, wherein a first page of data has a first sensitivity level, wherein a second page of data has a second sensitivity level, wherein the first sensitivity level indicates a greater level of sensitivity than the second sensitivity level, and wherein the first page of data is sanitized before the second page of data is sanitized.

### Claim 19 (depends on 1)

The computer-implemented method of claim 1, wherein the physical computer communicates with the cloud environment via a network.

### Claim 20 (depends on 1)

The computer-implemented method of claim 1, further comprising:
identifying, by one or more processors, a persistent memory in the physical computer that contains the remanence data found in the virtual memory;
sanitizing, by one or more processors, the persistent memory in order to remove the remanence data from the persistent memory; and
subsequent to sanitizing the persistent memory in order to remove the remanence data from the persistent memory, booting up, by one or more processors, the physical computer using the persistent memory that has had the remanence data removed, wherein booting up the physical computer using the persistent memory that has had the remanence data removed prevents the remanence data from being exposed during a cold-boot attack on the physical computer.
