StatekeepSpec: Securing Speculative Execution Via Forbidding Change-Of-State.

Zhiyuan Lv,Youjian Zhao
DOI: https://doi.org/10.1109/hpcc-dss-smartcity-dependsys53884.2021.00121
2021-01-01
Abstract:Speculation-based attacks, e.g., Spectre and Meltdown, affect hundreds of millions of computers. These attacks utilize speculative execution to access privileged data and leak it through a side-channel, e.g., typical a cache channel. Existing hardware-based defense solutions require major changes to the microprocessor architecture and incur large overheads, while software-based solutions address only specific exploit techniques. In this paper, we propose StatekeepSpec, a novel defense against Spectre attacks by forbidding speculative instructions' side effects to the cache hierarchy. Specifically, given a speculative load, if it triggers a cache hit then StatekeepSpec enforces it reading data from the cache without updating its replacement information; otherwise a cache miss occurs then StatekeepSpec enforces it reading data directly from the next level cache or memory, without updating the current level cache. As a result, StatekeepSpec blocks micro-architectural covert and side channels through the cache hierarchy caused by speculative loads. We have implemented a prototype of StatekeepSpec by modifying the design of an x86-64 processor using the Gem5 full system simulator. The evaluation results show that StatekeepSpec provides a strong security guarantee against cache based Spectre attacks. Furthermore, our simulations with 23 SPEC CPU workloads show that the performance overhead introduced by StatekeepSpec is less than 29%.
What problem does this paper attempt to address?