IP Library Granted Patent US 12,093,432
Granted Patent B2
US 12,093,432 · App. 17/485,077 · Granted Sep 17, 2024

Techniques and technologies to address malicious single-stepping and zero-stepping of trusted execution environments

Inventors: Scott Constable (Portland, OR); Yuan Xiao (Columbus, OH); Bin Xing (Hillsboro, OR); Mona Vij (Hillsboro, OR); Mark Shanahan (Raleigh, NC)
Assignee: INTEL CORPORATION
G06F21/74G06F12/0862G06F12/1416G06F21/52G06F21/554G06F21/577G06F2201/88
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 12,093,432
App. No.
17/485,077
Granted
Sep 17, 2024
Kind
B2
Abstract

In one embodiment, an apparatus comprises a processing circuitry to detect an occurrence of at least one of a single-stepping event or a zero-stepping event in an execution thread on an architecturally protected enclave and in response to the occurrence, implement at least one mitigation process to inhibit further occurrences of the at least one of a single-stepping event or a zero-stepping event in the architecturally protected enclave.

Claims (61)

1. An apparatus comprising:

processing circuitry coupled to a memory, the processing circuitry to:

detect, using an asynchronous exiting event software handler, an occurrence of at least one of a single-stepping event or a zero-stepping event in an execution thread on an architecturally protected enclave; and

in response to the occurrence, implement, using at least one of a static contract or a dynamic contract on enclave page locking, a mitigation process to inhibit further occurrences of the single-stepping event or the zero-stepping event in the architecturally protected enclave.

2. The apparatus of claim 1 , wherein the processing circuitry is further to:

implement a counter to monitor forward progress of the compute process which is to execute in the architecturally protected enclave; and

generate an error signal when the counter indicates that the forward progress is less than a threshold.

3. The apparatus of claim 1 , wherein the processor circuitry is further to:

monitor a frequency of fault events in the execution thread on the architecturally protected enclave;

monitor one or more instructions that execute between an occurrence of fault events in the execution thread on the architecturally protected enclave; and

generate an error signal when the frequency of the fault events is greater than a threshold.

4. The apparatus processor of claim 1 , wherein the processor circuitry is further to:

detect a page fault within a locked region of a computer-readable memory in the architecturally protected enclave; and

in response to the page fault, generate an error signal.

5. The apparatus of claim 1 , wherein the processor circuitry is further to:

implement a counter to monitor a number of asynchronous enclave exit (AEX) events that occur in the architecturally protected enclave;

generate an error signal when the number of asynchronous enclave exit (AEX) events is greater than the threshold;

determine one or more memory addresses to be accessed by the one or more instructions to be executed by the architecturally protected enclave following an asynchronous enclave exit (AEX) event on the architecturally protected enclave; and

initiate a prefetch operation to access the one or more memory addresses.

6. The apparatus of claim 1 , wherein the processor circuitry is further to:

initiate a branch speculation process for the execution thread to warm up a cache memory.

7. A method comprising:

detecting, by a processor of a computing device, using an asynchronous exiting event software handler, an occurrence of at least one of a single-stepping event or a zero-stepping event in an execution thread on an architecturally protected enclave; and

in response to the occurrence, implementing, using at least one of a static contract or a dynamic contract on enclave page locking, a mitigation process to inhibit further occurrences of the single-stepping event or the zero-stepping event in the architecturally protected enclave.

8. The method of claim 7 , further comprising:

implementing a counter to monitor forward progress of the compute process which is to execute in the architecturally protected enclave; and

generating an error signal when the counter indicates that the forward progress is less than a threshold.

9. The method of claim 7 , further comprising:

monitoring a frequency of fault events in the execution thread on the architecturally protected enclave;

monitoring one or more instructions that execute between an occurrence of fault events in the execution thread on the architecturally protected enclave; and

generating an error signal when the frequency of the fault events is greater than a threshold.

10. The method of claim 7 , further comprising:

detecting a page fault within a locked region of a computer-readable memory in the architecturally protected enclave; and

in response to the page fault, generating an error signal.

11. The method of claim 7 , further comprising:

implementing a counter to monitor a number of asynchronous enclave exit (AEX) events that occur in the architecturally protected enclave;

generating an error signal when the number of asynchronous enclave exit (AEX) events is greater than the threshold;

determining one or more memory addresses to be accessed by one or more instructions to be executed by the architecturally protected enclave following an asynchronous enclave exit (AEX) event on the architecturally protected enclave; and

initiating a prefetch operation to access the one or more memory addresses.

12. The method of claim 7 , further comprising:

initiating a branch speculation process for the execution thread to warm up a cache memory.

13. At least one computer-readable medium having stored thereon instructions which, when executed, cause a computing device to perform operations comprising:

detecting, using an asynchronous exiting event software handler, an occurrence of at least one of a single-stepping event or a zero-stepping event in an execution thread on an architecturally protected enclave; and

in response to the occurrence, implementing, using at least one of a static contract or a dynamic contract on enclave page locking, a mitigation process to inhibit further occurrences of the single-stepping event or the zero-stepping event in the architecturally protected enclave.

14. The computer-readable medium of claim 13 , wherein the operations further comprise:

implementing a counter to monitor forward progress of the compute process which is to execute in the architecturally protected enclave; and

generating an error signal when the counter indicates that the forward progress is less than a threshold.

15. The computer-readable medium of claim 13 , wherein the operations further comprising:

monitoring a frequency of fault events in the execution thread on the architecturally protected enclave;

monitoring one or more instructions that execute between an occurrence of fault events in the execution thread on the architecturally protected enclave; and

generating an error signal when the frequency of the fault events is greater than a threshold.

16. The computer-readable medium of claim 13 , wherein the operations further comprising:

detect a page fault within a locked region of a computer-readable memory in the architecturally protected enclave; and

in response to the page fault, generate an error signal.

17. The computer-readable medium of claim 13 , wherein the operations further comprising:

implement a counter to monitor a number of asynchronous enclave exit (AEX) events that occur in the architecturally protected enclave;

generate an error signal when the number of asynchronous enclave exit (AEX) events is greater than the threshold;

determine one or more memory addresses to be accessed by one or more instructions to be executed by the architecturally protected enclave following an asynchronous enclave exit (AEX) event on the architecturally protected enclave; and

initiate a prefetch operation to access the one or more memory addresses.

18. The computer-readable medium of claim 13 , wherein the operations further comprising:

initiate a branch speculation process for the execution thread to warm up a cache memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2021
From: CONSTABLE, SCOTT; XIAO, YUAN; XING, BIN; VIJ, MONA; SHANAHAN, MARK
To: INTEL CORPORATION
Reel/Frame 057987/0098 →
Continuity (1)
Related Publication 20220012369A1 · Jan 13, 2022