IP Library Granted Patent US 9,678,687
Granted Patent B2
US 9,678,687 · App. 14/866,295 · Granted Jun 13, 2017

User mode heap swapping

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,678,687
App. No.
14/866,295
Granted
Jun 13, 2017
Kind
B2
Abstract

In an example, there is disclosed a computing apparatus, including a processor, including a trusted execution instruction set; a memory having an enclave portion, wherein the enclave is accessible only via the trusted execution instruction set; a swap file; and a memory management engine operable to: allocate a buffer within the enclave; receive a scope directive to indicate that the buffer is in scope; and protect the buffer from swapping to the swap file while the buffer is in scope. There is further disclosed an method of providing a memory management engine, and one or more computer-readable storage mediums having stored thereon executable instructions for providing the memory management engine.

Claims (41)

1. A computing apparatus, comprising:

a processor to provide a trusted execution instruction set;

a memory having an enclave portion, wherein the enclave is accessible only via the trusted execution instruction set;

a swap file; and

one or more logic elements comprising a memory management engine operable to:

allocate a buffer within the enclave;

receive a scope directive to indicate that the buffer is in scope; and

protect the buffer from swapping to the swap file while the buffer is in scope.

2. The computing apparatus of claim 1 , wherein the memory management engine is operable to detect that the buffer is out of scope, and to enable swapping of the buffer to the swap file.

3. The computing apparatus of claim 2 , wherein the memory management engine is operable to swap the buffer to the swap file.

4. The computing apparatus of claim 3 , wherein swapping the buffer to the swap file comprises encrypting the buffer.

5. The computing apparatus of claim 1 , wherein the memory management engine is operable to:

determine that the buffer has been swapped to the swap file; and

retrieve the buffer from the swap file.

6. The computing apparatus of claim 5 , wherein retrieving the buffer from the swap file comprises decrypting the buffer.

7. The computing apparatus of claim 1 , wherein the memory management engine comprises a framework.

8. The computing apparatus of claim 7 , wherein the framework is configured to encapsulate a pointer to the buffer.

9. The computing apparatus of claim 8 , wherein encapsulating the pointer to the buffer comprises determining that the pointer previously pointed to a first memory location, determining that after having been swapped the pointer now points to a second memory location different from the first memory location, and updating the pointer to point to the second memory location.

10. The computing apparatus of claim 1 , wherein the memory management engine is further operable to determine that the buffer was tampered with while swapped, and acting on the determining.

11. The computing apparatus of claim 10 , wherein acting on the determining comprises taking a security action.

12. The computing apparatus of claim 11 , wherein the security action is selected from the group consisting of crashing the application, throwing an exception, and reporting the tampering.

13. The computing apparatus of claim 1 , wherein the memory management engine is further operable to allocate a plurality of heaps.

14. One or more tangible, non-transitory computer-readable storage mediums having stored thereon executable instructions for providing a memory management engine for a memory enclave accessible only via a trusted execution instruction set, the memory management engine operable to:

allocate a buffer within the enclave;

receive a scope directive to indicate that the buffer is in scope; and protect the buffer from swapping to a swap file while the buffer is in scope.

15. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein the memory management engine is operable to detect that the buffer is out of scope, and to enable swapping of the buffer to the swap file.

16. The one or more tangible, non-transitory computer-readable mediums of claim 15 , wherein the memory management engine is operable to swap the buffer to the swap file.

17. The one or more tangible, non-transitory computer-readable mediums of claim 16 , wherein swapping the buffer to the swap file comprises encrypting the buffer.

18. The one or more tangible, non-transitory computer-readable mediums of claim 15 , wherein the memory management engine is operable to:

determine that the buffer has been swapped to the swap file; and

retrieve the buffer from the swap file.

19. The one or more tangible, non-transitory computer-readable mediums of claim 18 , wherein retrieving the buffer from the swap file comprises decrypting the buffer.

20. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein the memory management engine comprises a framework.

21. The one or more tangible, non-transitory computer-readable mediums of claim 20 , wherein the framework is configured to encapsulate a pointer to the buffer.

22. The one or more tangible, non-transitory computer-readable mediums of claim 21 , wherein encapsulating the pointer to the buffer comprises determining that the pointer previously pointed to a first memory location, determining that after having been swapped the pointer now points to a second memory location different from the first memory location, and updating the pointer to point to the second memory location.

23. The one or more tangible, non-transitory computer-readable mediums of claim 14 , wherein the memory management engine is further operable to determine that the buffer was tampered with while swapped, and taking a security action.

24. A method of providing a memory management engine for a memory enclave accessible only via a trusted execution instruction set, comprising:

allocating a buffer within the enclave;

receiving a scope directive to indicate that the buffer is in scope; and

protecting the buffer from swapping to a swap file while the buffer is in scope.

25. The method of claim 24 , further comprising detecting that the buffer is out of scope, and enabling swapping of the buffer to the swap file.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: WOODWARD, CARL D.; SAMBANDAM, VENKATA RAMANAN; RUBAKHA, DMITRI
To: MCAFEE, INC.
Reel/Frame 036994/0790 →