Mitigating side-channel attacks via shared cache

US10706147B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10706147-B1
Application numberUS-201715600460-A
CountryUS
Kind codeB1
Filing dateMay 19, 2017
Priority dateMay 19, 2017
Publication dateJul 7, 2020
Grant dateJul 7, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A computer system and associated methods are disclosed for mitigating side-channel attacks using a shared cache. The computer system includes a host having a main memory and a shared cache. The host executes a virtual machine manager (VMM) that supports a plurality of co-located virtual machines (VMs), which can initiate side-channel attacks using the shared cache. The VMM is configured to maintain respective memory maps for the VMs. The VMM is further configured to determine a subset of current host memory pages for a selected VM that can be used in a side-channel attack, relocate the contents of the current host memory pages to replacement host memory pages in the main memory, and modify the subset of entries to change current host memory pages to the respective replacement host memory pages.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a host comprising one or more hardware processors and memory, including a main memory and a shared cache for the main memory, wherein the host is configured to execute a virtual machine manager (VMM) for supporting a plurality of co-located virtual machines (VMs) that share the shared cache, the VMM maintaining, for each VM of the plurality of co-located VMs, a respective memory map that maps VM memory pages to respective host memory pages in the main memory; wherein the VMM is configured to: determine at least a subset of current host memory pages for a selected VM that are subject to a potential occurrence of a side-channel attack, wherein each current host memory page is associated with an entry in the memory map, and the determination is based at least in part on detected collisions in the shared cache between the selected VM and another co-located VM for the subset of current host memory pages; relocate contents of the current host memory pages to replacement host memory pages in the main memory, wherein the relocation avoids collisions in the shared cache between the selected VM and the other co-located VM for the subset of current host memory pages to hinder the potential occurrence of the side-channel attack; and modify the associated entries in the memory map to change the current host memory pages to the respective replacement host memory pages. 2. The system of claim 1 , wherein: the shared cache is divided into a number cache slices each having a slice identifier, the slice identifier is required to uniquely identify locations in the shared cache, and the slice identifier is computed based at least in part on a hash function applied to a host memory page address. 3. The system of claim 1 , wherein the VMM is configured to select a replacement host memory page that maps to a different cache set of the shared cache from a corresponding current host memory page. 4. The system of claim 1 , wherein the shared cache comprises a last level cache (LLC) for the main memory, and the LLC is an inclusive cache for one or more levels of lower level cache. 5. The system of claim 1 , wherein the main memory is configured to allocate memory pages of a first minimum size and a second larger size, and the VMM is configured to allocate memory pages of the second larger size to the VMs. 6. The system of claim 1 , wherein to relocate the contents of the current host memory pages, the VMM is configured to repeatedly relocate the current host memory pages at time intervals that are shorter than a time requirement to carry out a step of the side-channel attack. 7. The system of claim 1 , wherein VMM is configured to determine the subset of current host memory pages based at least in part on a cache miss rate monitored for the subset of current host memory pages. 8. A method, comprising: provisioning, on a virtual machine manager (VMM), a plurality of co-located virtual machines (VMs), wherein the VMM executes on a host implemented by one or more hardware processors and memory, including a main memory and a shared cache for the main memory; maintaining, by the VMM, for each VM of the plurality of co-located VMs, a respective memory map that maps VM memory pages to respective host memory pages in the main memory; determining at least a subset of current host memory pages for a selected VM that are subject to a potential occurrence of a side-channel attack, wherein each current host memory page is associated with an entry in the memory map, and the determination is based at least in part on detected collisions in the shared cache between the selected VM and another co-located VM in the subset of current host memory pages; relocating contents of the current host memory pages to replacement host memory pages in the main memory, wherein the relocation avoids collisions in the shared cache between the selected VM and the other co-located VM for the subset of current host memory pages to hinder the potential occurrence of the side-channel attack; and modifying the associated entries in the memory map to change current host memory pages in to the replacement host memory pages. 9. The method of claim 8 , further comprising determining that the selected VM is an attacker VM of the side-channel attack. 10. The method of claim 9 , wherein determining the subset of current host memory pages for the selected VM comprises determining one or more eviction sets used by the attacker VM. 11. The method of claim 8 , further comprising determining that the selected VM is a victim VM of the side-channel attack. 12. The method of claim 8 , wherein determining the subset of current host memory pages of the selected VM comprises determining a set of current host memory pages based at least in part on a cache miss rate of host memory pages associated with the entries. 13. The method of claim 8 , wherein relocating the contents of the current host memory pages comprises repeatedly relocating the current host memory pages at time intervals that are shorter than a time requirement to carry out a step of the side-channel attack. 14. The method of claim 8 , further comprising determining a condition indicating the side-channel attack, and wherein the relocating of the current host memory pages is triggered based at least in part on the determination of the condition. 15. The method of claim 14 , wherein determining the condition indicating the side-channel attack comprises determining a cache miss rate of pages in the shared cache. 16. The method of claim 14 , wherein determining the condition indicating the side-channel attack comprises detecting a recognized access pattern of the shared cache by one or more of the plurality of co-located VMs. 17. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors cause the one or more processors to: provision, on a virtual machine manager (VMM), a plurality of co-located virtual machines (VMs), wherein the VMM executes on a host implemented by one or more hardware processors and memory, including a main memory and a shared cache for the main memory; maintain, by the VMM, for each VM of the plurality of co-located VMs, a respective memory map that maps VM memory pages to respective host memory pages in the main memory; determine at least a subset of current host memory pages for a selected VM that are subject to a potential occurrence of a side-channel attack, wherein each current host memory page is associated with an entry in the memory map, and the determination is based at least in part on detected collisions in the shared cache between the selected VM and another co-located VM for the subset of current host memory pages; relocate contents of the current host memory pages to replacement host memory pages in the main memory, wherein the relocation avoids collisions in the shared cache between the selected VM and the other co-located VM for the subset of current host memory pages to hinder the potential occurrence of the side-channel attack; and modify the associated entries in the memory map to change the current host memory pages to the respective replacement host memory pages. 18. The non-transitory computer-accessible storage medium of claim 17 , wherein to relocate the contents of the current host memory pages to replacement host memory pages, the program instructions when executed cause the one or more processors to select a replacement host memory page from a plurality of allocated host memory pages in a pseudorandom fashion.

Assignees

Inventors

Classifications

  • Virtual private networks · CPC title

  • Key-lock mechanism · CPC title

  • for a range · CPC title

  • by using cryptography (for digital transmission H04L9/00) · CPC title

  • for multiple virtual address spaces, e.g. segmentation (G06F12/1036 takes precedence) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10706147B1 cover?
A computer system and associated methods are disclosed for mitigating side-channel attacks using a shared cache. The computer system includes a host having a main memory and a shared cache. The host executes a virtual machine manager (VMM) that supports a plurality of co-located virtual machines (VMs), which can initiate side-channel attacks using the shared cache. The VMM is configured to main…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F21/556. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 07 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).