PMU-Data: Data Traces Could be Distinguished
Zhouyang Li, Pengfei Qiu, Yu Qing, Chunlu Wang, Dongsheng Wang, Xiao Zhang, Gang Qu
TL;DR
This work reveals a novel data-flow side-channel, PMU-Data, which exploits the Performance Monitoring Unit to recover instruction operands during transient executions. By classifying instructions into five categories and identifying two vulnerable types ($DIV$ and $MOV$), the authors locate 40 vulnerable PMU events and develop two gadget variants to encode secret data into PMU traces. They empirically demonstrate PMU-Data-based Meltdown, Spectre-PHT, and Zombieload attacks, including leakage of SGX-protected data, and show a functional covert-channel with practical throughput. The findings underscore a significant security risk where PMU measurements, intended for performance monitoring, can betray secret information, prompting hardware and software mitigations against such data-flow side-channels.
Abstract
Modern processors widely equip the Performance Monitoring Unit (PMU) to collect various architecture and microarchitecture events. Software developers often utilize the PMU to enhance program's performance, but the potential side effects that arise from its activation are often disregarded. In this paper, we find that the PMU can be employed to retrieve instruction operands. Based on this discovery, we introduce PMU-Data, a novel category of side-channel attacks aimed at leaking secret by identifying instruction operands with PMU. To achieve the PMU-Data attack, we develop five gadgets to encode the confidential data into distinct data-related traces while maintaining the control-flow unchanged. We then measure all documented PMU events on three physical machines with different processors while those gadgets are performing. We successfully identify two types of vulnerable gadgets caused by DIV and MOV instructions. Additionally, we discover 40 vulnerable PMU events that can be used to carry out the PMU-Data attack. We through real experiments to demonstrate the perniciousness of the PMU-Data attack by implementing three attack goals: (1) leaking the kernel data illegally combined with the transient execution vulnerabilities including Meltdown, Spectre, and Zombieload; (2) building a covert-channel to secretly transfer data; (3) extracting the secret data protected by the Trusted Execution Environment (TEE) combined with the Zombieload vulnerability.
