ExSpectre: Hiding Malware in Speculative Execution

被引:14
|
作者
Wampler, Jack [1 ]
Martiny, Ian [1 ]
Wustrow, Eric [1 ]
机构
[1] Univ Colorado, Boulder, CO 80309 USA
关键词
D O I
10.14722/ndss.2019.23409
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Recently, the Spectre and Meltdown attacks revealed serious vulnerabilities in modern CPU designs, allowing an attacker to exfiltrate data from sensitive programs. These vulnerabilities take advantage of speculative execution to coerce a processor to perform computation that would otherwise not occur, leaking the resulting information via side channels to an attacker. In this paper, we extend these ideas in a different direction, and leverage speculative execution in order to hide malware from both static and dynamic analysis. Using this technique, critical portions of a malicious program's computation can be shielded from view, such that even a debugger following an instruction-level trace of the program cannot tell how its results were computed. We introduce ExSpectre, which compiles arbitrary malicious code into a seemingly-benign payload binary. When a separate trigger program runs on the same machine, it mistrains the CPU's branch predictor, causing the payload program to speculatively execute its malicious payload, which communicates speculative results back to the rest of the payload program to change its real-world behavior. We study the extent and types of execution that can be performed speculatively, and demonstrate several computations that can be performed covertly. In particular, within speculative execution we are able to decrypt memory using AES-NI instructions at over 11 kbps. Building on this, we decrypt and interpret a custom virtual machine language to perform arbitrary computation and system calls in the real world. We demonstrate this with a proof-of-concept dial back shell, which takes only a few milliseconds to execute after the trigger is issued. We also show how our corresponding trigger program can be a preexisting benign application already running on the system, and demonstrate this concept with OpenSSL driven remotely by the attacker as a trigger program. ExSpectre demonstrates a new kind of malware that evades existing reverse engineering and binary analysis techniques. Because its true functionality is contained in seemingly unreachable dead code, and its control flow driven externally by potentially any other program running at the same time, ExSpectre poses a novel threat to state-of-the-art malware analysis techniques.
引用
收藏
页数:15
相关论文
共 50 条
  • [1] Hiding the Long Latency of Persist Barriers Using Speculative Execution
    Shin, Seunghee
    Tuck, James
    Solihin, Yan
    [J]. 44TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA 2017), 2017, : 175 - 186
  • [2] Hiding Malware On Distributed Storage
    Moubarak, Joanna
    Chamoun, Maroun
    Filiol, Eric
    [J]. 2019 IEEE JORDAN INTERNATIONAL JOINT CONFERENCE ON ELECTRICAL ENGINEERING AND INFORMATION TECHNOLOGY (JEEIT), 2019, : 720 - 725
  • [3] A theory of nested speculative execution
    Tapus, Cristian
    Hickey, Jason
    [J]. COORDINATION MODELS AND LANGUAGES, PROCEEDINGS, 2007, 4467 : 151 - +
  • [4] Speculative Data-Oblivious Execution: Mobilizing Safe Prediction For Safe and Efficient Speculative Execution
    Yu, Jiyong
    Mantri, Namrata
    Torrellas, Josep
    Morrison, Adam
    Fletcher, Christopher W.
    [J]. 2020 ACM/IEEE 47TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA 2020), 2020, : 707 - 720
  • [5] Malware Expert: Execution Tracking
    Park, Sean
    [J]. 2012 THIRD CYBERCRIME AND TRUSTWORTHY COMPUTING WORKSHOP (CTC 2012), 2012, : 48 - 55
  • [6] Dynamically Spawning Speculative Threads to Improve Speculative Path Execution
    Li, Meirong
    Zhao, Yinliang
    Tao, You
    [J]. ALGORITHMS AND ARCHITECTURES FOR PARALLEL PROCESSING, ICA3PP 2014, PT II, 2014, 8631 : 192 - 206
  • [7] Information Hiding as a Challenge for Malware Detection
    Mazurczyk, Wojciech
    Caviglione, Luca
    [J]. IEEE SECURITY & PRIVACY, 2015, 13 (02) : 89 - 93
  • [8] Hiding virtualization from attackers and malware
    Carpenter, Matthew
    Liston, Tom
    Skoudis, Ed
    [J]. IEEE SECURITY & PRIVACY, 2007, 5 (03) : 62 - 65
  • [9] Value Prediction and Speculative Execution on GPU
    Liu, Shaoshan
    Eisenbeis, Christine
    Gaudiot, Jean-Luc
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2011, 39 (05) : 533 - 552
  • [10] The impact of speculative execution on SMT processors
    Kang, Dongsoo
    Liu, Chen
    Gaudiot, Jean-Luc
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2008, 36 (04) : 361 - 385