A brief survey of recent works on microarchitectural defenses against Transient Execution attacks
Gokulan R
March 19 2020
The victim has access to hardware, however, is restricted and might be protected in software.
Eg: Spectre v1
The attacker can generate arbitrary code and mount an attack, using which secret can be retrieved.
Eg: Meltdown
Defense | Attacks defeated |
---|---|
Strict Propagation | Control Steering |
Load Restriction | Chosen code |
Strict Propagation + Load Restriction | Control Steering + Chosen code |
Baseline Naive Approach
Performance Enhanced Approach
Early Resolution Pointer
Most recent in-flight instruction in the ROB which satisfies all of the following conditions
Goal
Scope of the paper
Protecting leakage of data in which both the access and transmit phase are transiently executed
Explicit channel: Secret passed to an instruction, which performs a data-dependent change in the microarchitecture.
Implicit channel: Data indirectly influences instruction execution, changes in resource usage reveal data
Prediction based leakage: Instructions fetched after branch prediction but before resolution leak data. Used when predictor is mistrained previously.
Resolution based leakage: Branch resolution can also leak information, even if the predictor is not mistrained.
if (secret == rZ)
rY = rX;
else
rY <- (rZ)
Store-Load forwarding covert channel
Tainting
Blocking Explicit Channel
Delays execution of an instruction if any of its input operand is tainted.