Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3445814.3446708acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
Article
Public Access

Speculative interference attacks: breaking invisible speculation schemes

Published: 17 April 2021 Publication History

Abstract

Recent security vulnerabilities that target speculative execution (e.g., Spectre) present a significant challenge for processor design. These highly publicized vulnerabilities use speculative execution to learn victim secrets by changing the cache state. As a result, recent computer architecture research has focused on invisible speculation mechanisms that attempt to block changes in cache state due to speculative execution. Prior work has shown significant success in preventing Spectre and other attacks at modest performance costs. In this paper, we introduce speculative interference attacks, which show that prior invisible speculation mechanisms do not fully block speculation-based attacks that use cache state. We make two key observations. First, mis-speculated younger instructions can change the timing of older, bound-to-retire instructions, including memory operations. Second, changing the timing of a memory operation can change the order of that memory operation relative to other memory operations, resulting in persistent changes to the cache state. Using both of these observations, we demonstrate (among other attack variants) that secret information accessed by mis-speculated instructions can change the order of bound-to-retire loads. Load timing changes can therefore leave secret-dependent changes in the cache, even in the presence of invisible speculation mechanisms. We show that this problem is not easy to fix. Speculative interference converts timing changes to persistent cache-state changes, and timing is typically ignored by many cache-based defenses. We develop a framework to understand the attack and demonstrate concrete proof-of-concept attacks against invisible speculation mechanisms. We conclude with a discussion of security definitions that are sufficient to block the attacks, along with preliminary defense ideas based on those definitions.

References

[1]
[n.d.]. 8th and 9th Generation Intel® Core? Processor Families Datasheet, Volume 1 of 2. https://www.intel.com/content/dam/www/public/us/en/documen ts/datasheets/8th-gen-core-family-datasheet-vol-1.pdf.
[2]
[n.d.]. Kaby Lake-Microarchitectures-Intel-WikiChip. https://en.wikichip.or g/wiki/intel/microarchitectures/kaby_lake.
[3]
Andreas Abel and Jan Reineke. 2019. nanoBench: A Low-Overhead Tool for Running Microbenchmarks on x86 Systems. arXiv preprint arXiv: 1911. 03282 ( 2019 ).
[4]
Onur Acýiçmez, Çetin Kaya Koç, and Jean-Pierre Seifert. 2007. Predicting secret keys via branch prediction. In Cryptographers' Track at the RSA Conference. Springer.
[5]
Sam Ainsworth and Timothy M. Jones. 2020. MuonTrap: Preventing CrossDomain Spectre-Like Attacks by Capturing Speculative State. In Proc. of the ACM/IEEE International Symposium on Computer Architecture (ISCA).
[6]
Alejandro Cabrera Aldaya, Billy Bob Brumley, Sohaib ul Hassan, Cesar Pereida García, and Nicola Tuveri. 2019. Port contention for fun and profit. In Proc. of the IEEE Symposium on Security and Privacy (S&P). IEEE.
[7]
Kristin Barber, Anys Bacha, Li Zhou, Yinqian Zhang, and Radu Teodorescu. 2019. SpecShield: Shielding Speculative Data from Microarchitectural Covert Channels. In Proc. of the International Conference on Parallel Architectures and Compilation Techniques (PACT).
[8]
Atri Bhattacharyya, Alexandra Sandulescu, Matthias Neugschwandtner, Alessandro Sorniotti, Babak Falsafi, Mathias Payer, and Anil Kurmus. 2019. SMoTherSpectre: Exploiting Speculative Execution through Port Contention. In Proc. of the ACM Conference on Computer and Communications Security (CCS).
[9]
Nathan Binkert, Bradford Beckmann, Gabriel Black, Steven K Reinhardt, Ali Saidi, Arkaprava Basu, Joel Hestness, Derek R Hower, Tushar Krishna, Somayeh Sardashti, Rathijit Sen, Korey Sewell, Muhammad Shoaib, Nilay Vaish, Mark D. Hill, and David A. Wood. 2011. The Gem5 Simulator. ACM SIGARCH Computer Architecture News 2 ( 2011 ), 1-7.
[10]
Samira Briongos, Pedro Malagón, José M Moya, and Thomas Eisenbarth. 2020. RELOAD+REFRESH: Abusing Cache Replacement Policies to Perform Stealthy Cache Attacks. In Proc. of the USENIX Security Symposium (USENIX).
[11]
Claudio Canella, Daniel Genkin, Lukas Giner, Daniel Gruss, Moritz Lipp, Marina Minkin, Daniel Moghimi, Frank Piessens, Michael Schwarz, Berk Sunar, Jo Van Bulck, and Yuval Yarom. 2019. Fallout: Leaking Data on Meltdown-Resistant CPUs. In Proc. of the ACM Conference on Computer and Communications Security (CCS).
[12]
G. Chen, S. Chen, Y. Xiao, Y. Zhang, Z. Lin, and T. H. Lai. 2019. SgxPectre: Stealing Intel Secrets from SGX Enclaves Via Speculative Execution. In Proc. of the IEEE European Symposium on Security and Privacy (EuroS&P).
[13]
Dmitry Evtyushkin, Dmitry Ponomarev, and Nael Abu-Ghazaleh. 2016. Jump over ASLR: Attacking branch predictors to bypass ASLR. In Proc. of the IEEE/ACM International Symposium on Microarchitecture (MICRO).
[14]
Dmitry Evtyushkin, Dmitry Ponomarev, and Nael Abu-Ghazaleh. 2016. Understanding and Mitigating Covert Channels Through Branch Predictors. ACM Transactions on Architecture and Code Optimization (TACO) 13, 1 ( 2016 ).
[15]
Dmitry Evtyushkin, Ryan Riley, Nael Abu-Ghazaleh, and Dmitry Ponomarev. 2018. BranchScope: A New Side-Channel Attack on Directional Branch Predictor. In Proc. of the ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).
[16]
Agner Fog et al. 2011. Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs. Copenhagen University College of Engineering 93 ( 2011 ), 110.
[17]
Jacob Fustos, Michael Bechtel, and Heechul Yun. 2020. SpectreRewind: Leaking Secrets to Past Instructions. arXiv preprint arXiv: 2003. 12208 ( 2020 ).
[18]
Jacob Fustos, Farzad Farshchi, and Heechul Yun. 2019. SpectreGuard: An Eficient Data-centric Defense Mechanism against Spectre Attacks. Proc. of the Design Automation Conference (DAC) ( 2019 ), 1-6.
[19]
J. A. Goguen and J. Meseguer. 1982. Security Policies and Security Models. In Proc. of the IEEE Symposium on Security and Privacy (S&P).
[20]
Ben Gras, Cristiano Giufrida, Michael Kurth, Herbert Bos, and Kaveh Razavi. 2020. ABSynthe: Automatic Blackbox Side-channel Synthesis on Commodity Microarchitectures. In Proc. of the Symposium on Network and Distributed System Security (NDSS).
[21]
Johann Großschädl, Elisabeth Oswald, Dan Page, and Michael Tunstall. 2009. Side-Channel Analysis of Cryptographic Software via Early-Terminating Multiplications. In Proc. of the International Conference on Information Security and Cryptology (ICISC).
[22]
John L. Hennessy and David A. Patterson. 2017. Computer Architecture, Sixth Edition: A Quantitative Approach (6th ed.). Morgan Kaufmann Publishers Inc.
[23]
John L Henning. 2006. SPEC CPU2006 Benchmark Descriptions. ACM SIGARCH Computer Architecture News 4 ( 2006 ), 1-17.
[24]
Jann Horn. 2018. Speculative execution, variant 4: speculative store bypass. https://bugs.chromium.org/p/project-zero/issues/detail?id= 1528.
[25]
Intel. 2020. Refined Speculative Execution Terminology. https://software.int el. com/security-software-guidance/insights/refined-speculative-executionterminology.
[26]
Aamer Jaleel, Kevin B Theobald, Simon C Steely Jr, and Joel Emer. 2010. High performance cache replacement using re-reference interval prediction (RRIP). ACM SIGARCH Computer Architecture News 38, 3 ( 2010 ), 60-71.
[27]
Mike Johnson. 1991. Superscalar Microprocessor Design. Prentice Hall Englewood Clifs, New Jersey.
[28]
Khaled N. Khasawneh, Esmaeil Mohammadian Koruyeh, Chengyu Song, Dmitry Evtyushkin, Dmitry Ponomarev, and Nael B. Abu-Ghazaleh. 2019. SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation. In Proc. of the Design Automation Conference (DAC).
[29]
Vladimir Kiriansky, Ilia A. Lebedev, Saman P. Amarasinghe, Srinivas Devadas, and Joel Emer. 2018. DAWG: A Defense Against Cache Timing Attacks in Speculative Execution Processors. In Proc. of the IEEE/ACM International Symposium on Microarchitecture (MICRO).
[30]
Vladimir Kiriansky and Carl Waldspurger. 2018. Speculative Bufer Overflows: Attacks and Defenses. arXiv preprint arXiv: 1807.03757, Article arXiv : 1807. 03757 ( 2018 ). arXiv: 1807. 03757 [cs.CR]
[31]
Paul Kocher, Daniel Genkin, Daniel Gruss, Werner Haas, Mike Hamburg, Moritz Lipp, Stefan Mangard, Thomas Prescher, Michael Schwarz, and Yuval Yarom. 2019. Spectre Attacks: Exploiting Speculative Execution. In Proc. of the IEEE Symposium on Security and Privacy (S&P).
[32]
Esmaeil Mohammadian Koruyeh, Khaled N. Khasawneh, Chengyu Song, and Nael Abu-Ghazaleh. 2018. Spectre Returns! Speculation Attacks using the Return Stack Bufer. In Proc. of the USENIX Workshop on Ofensive Technologies (WOOT).
[33]
Peinan Li, Lutan Zhao, Rui Hou, Lixin Zhang, and Dan Meng. 2019. Conditional Speculation: An Efective Approach to Safeguard Out-of-Order Execution Against Spectre Attacks. In Proc. of the IEEE International Symposium on High Performance Computer Architecture (HPCA).
[34]
Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, Werner Haas, Stefan Mangard, Paul Kocher, Daniel Genkin, Yuval Yarom, and Mike Hamburg. 2018. Meltdown: Reading Kernel Memory from User Space. In Proc. of the USENIX Security Symposium (USENIX).
[35]
F. Liu, Y. Yarom, Q. Ge, G. Heiser, and R. B. Lee. 2015. Last-Level Cache SideChannel Attacks are Practical. In Proc. of the IEEE Symposium on Security and Privacy (S&P). https://doi.org/10.1109/SP. 2015.43
[36]
Giorgi Maisuradze and Christian Rossow. 2018. Ret2Spec: Speculative Execution Using Return Stack Bufers. In Proc. of the ACM Conference on Computer and Communications Security (CCS).
[37]
Dag Arne Osvik, Adi Shamir, and Eran Tromer. 2006. Cache Attacks and Countermeasures: The Case of AES. In Proc. of the Cryptographers' Track at the RSA Conference (CT-RSA).
[38]
Gururaj Saileshwar and Moinuddin K. Qureshi. 2019. CleanupSpec: An "Undo" Approach to Safe Speculation. In Proc. of the IEEE/ACM International Symposium on Microarchitecture (MICRO).
[39]
Christos Sakalis, Stefanos Kaxiras, Alberto Ros, Alexandra Jimborean, and Magnus Själander. 2019. Eficient Invisible Speculative Execution Through Selective Delay and Value Prediction. In Proc. of the ACM/IEEE International Symposium on Computer Architecture (ISCA).
[40]
Jay Schulist, Daniel Borkmann, and Alexei Starovoitov. 2018. Linux Socket Filtering aka Berkeley Packet Filter (BPF). https://www.kernel.org/doc/Docum entation/networking/filter.txt.
[41]
Michael Schwarz, Moritz Lipp, Daniel Moghimi, Jo Van Bulck, Julian Stecklina, Thomas Prescher, and Daniel Gruss. 2019. ZombieLoad: Cross-PrivilegeBoundary Data Sampling. In Proc. of the ACM Conference on Computer and Communications Security (CCS).
[42]
Michael Schwarz, Clémentine Maurice, Daniel Gruss, and Stefan Mangard. 2017. Fantastic timers and where to find them: high-resolution microarchitectural attacks in JavaScript. In Proc. of the International Conference on Financial Cryptography and Data Security (FC). Springer.
[43]
Michael Schwarz, Robert Schilling, Florian Kargl, Moritz Lipp, Claudio Canella, and Daniel Gruss. 2019. ConTExT: Leakage-Free Transient Execution. arXiv e-prints, Article arXiv: 1905. 09100 (May 2019 ). arXiv: 1905. 09100 [cs.CR]
[44]
Michael Schwarz, Martin Schwarzl, Moritz Lipp, and Daniel Gruss. 2019. NetSpectre: Read Arbitrary Memory over Network. In Proc. of the European Symposium on Research in Computer Security (ESORICS).
[45]
Michael Schwarz, Samuel Weiser, Daniel Gruss, Clémentine Maurice, and Stefan Mangard. 2017. Malware guard extension: Using SGX to conceal cache attacks. In Proc. of the Conference on Detection of Intrusions and Malware, and Vulnerability Assessment (DIMVA).
[46]
Timothy Sherwood, Erez Perelman, Greg Hamerly, and Brad Calder. 2002. Automatically Characterizing Large Scale Program Behavior. In Proc. of the ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).
[47]
Mohammadkazem Taram, Ashish Venkat, and Dean Tullsen. 2019. ContextSensitive Fencing : Securing Speculative Execution via Microcode Customization. In Proc. of the ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).
[48]
Robert M Tomasulo. 1967. An eficient algorithm for exploiting multiple arithmetic units. IBM Journal of Research and Development 11, 1 ( 1967 ), 25-33.
[49]
Jo Van Bulck, Marina Minkin, Ofir Weisse, Daniel Genkin, Baris Kasikci, Frank Piessens, Mark Silberstein, Thomas F. Wenisch, Yuval Yarom, and Raoul Strackx. 2018. Foreshadow: Extracting the Keys to the Intel SGX Kingdom with Transient Out-of-Order Execution. In Proc. of the USENIX Security Symposium (USENIX).
[50]
Stephan van Schaik, Alyssa Milburn, Sebastian Österlund, Pietro Frigo, Giorgi Maisuradze, Kaveh Razavi, Herbert Bos, and Cristiano Giufrida. 2019. RIDL: Rogue In-flight Data Load. In Proc. of the IEEE Symposium on Security and Privacy (S&P).
[51]
Pepe Vila, Pierre Ganty, Marco Guarnieri, and Boris Köpf. 2020. CacheQuery: Learning Replacement Policies from Hardware Caches. In Proc. of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).
[52]
Jack Wampler, Ian Martiny, and Eric Wustrow. 2019. ExSpectre: Hiding Malware in Speculative Execution. In Proc. of the Symposium on Network and Distributed System Security (NDSS).
[53]
Ofir Weisse, Ian Neal, Kevin Loughlin, Thomas Wenisch, and Baris Kasikci. 2019. NDA: Preventing Speculative Execution Attacks at Their Source. In Proc. of the IEEE/ACM International Symposium on Microarchitecture (MICRO).
[54]
Ofir Weisse, Jo Van Bulck, Marina Minkin, Daniel Genkin, Baris Kasikci, Frank Piessens, Mark Silberstein, Raoul Strackx, Thomas F. Wenisch, and Yuval Yarom. 2018. Foreshadow-NG: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution. Technical report ( 2018 ).
[55]
Wenjie Xiong and Jakub Szefer. 2020. Leaking Information Through Cache LRU States. In Proc. of the IEEE International Symposium on High Performance Computer Architecture (HPCA).
[56]
Mengjia Yan, Jiho Choi, Dimitrios Skarlatos, Adam Morrison, Christopher W. Fletcher, and Josep Torrellas. 2018. InvisiSpec: Making Speculative Execution Invisible in the Cache Hierarchy. In Proc. of the IEEE/ACM International Symposium on Microarchitecture (MICRO).
[57]
Mengjia Yan, Read Sprabery, Bhargava Gopireddy, Christopher Fletcher, Roy Campbell, and Josep Torrellas. 2019. Attack Directories, Not Caches: Side Channel Attacks in a Non-Inclusive World. In Proc. of the IEEE Symposium on Security and Privacy (S&P).
[58]
Yuval Yarom and Katrina Falkner. 2014. Flush+Reload: A high resolution, low noise, L3 cache side-channel attack. In Proc. of the USENIX Security Symposium (USENIX).
[59]
Yuval Yarom, Daniel Genkin, and Nadia Heninger. 2017. CacheBleed: a timing attack on OpenSSL constant-time RSA. Journal of Cryptographic Engineering 7, 2 ( 2017 ), 99-112.
[60]
Jiyong Yu, Lucas Hsiung, Mohamad El Hajj, and Christopher W. Fletcher. 2019. Data Oblivious ISA Extensions for Side Channel-Resistant and High Performance Computing. In Proc. of the Symposium on Network and Distributed System Security (NDSS). https://eprint.iacr.org/ 2018 /808.
[61]
Jiyong Yu, Namrata Mantri, Josep Torrellas, Adam Morrison, and Christopher W. Fletcher. 2020. Speculative Data-Oblivious Execution (SDO): Mobilizing Safe Prediction For Safe and Eficient Speculative Execution. In Proc. of the ACM/IEEE International Symposium on Computer Architecture (ISCA).
[62]
Jiyong Yu, Mengjia Yan, Artem Khyzha, Adam Morrison, Josep Torrellas, and Christopher W. Fletcher. 2019. Speculative Taint Tracking (STT): A Comprehensive Protection for Speculatively Accessed Data. In Proc. of the IEEE/ACM International Symposium on Microarchitecture (MICRO).

Cited By

View all
  • (2024)Levioso: Efficient Compiler-Informed Secure SpeculationProceedings of the 61st ACM/IEEE Design Automation Conference10.1145/3649329.3655894(1-6)Online publication date: 23-Jun-2024
  • (2024)LeakageFreeSpec: Applying the Wiping Approach to Defend Against Transient Execution AttacksProceedings of the 21st ACM International Conference on Computing Frontiers10.1145/3649153.3649202(276-284)Online publication date: 7-May-2024
  • (2024)Formal Verification for Secure Processors: A Guide for Computer ArchitectsComputer10.1109/MC.2024.343484857:10(138-143)Online publication date: 1-Oct-2024
  • Show More Cited By

Index Terms

  1. Speculative interference attacks: breaking invisible speculation schemes

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASPLOS '21: Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems
    April 2021
    1090 pages
    ISBN:9781450383172
    DOI:10.1145/3445814
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 17 April 2021

    Permissions

    Request permissions for this article.

    Check for updates

    Badges

    Author Tags

    1. invisible speculation
    2. microarchitectural covert channels
    3. speculative execution attacks

    Qualifiers

    • Article

    Funding Sources

    Conference

    ASPLOS '21
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 535 of 2,713 submissions, 20%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)383
    • Downloads (Last 6 weeks)59
    Reflects downloads up to 21 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Levioso: Efficient Compiler-Informed Secure SpeculationProceedings of the 61st ACM/IEEE Design Automation Conference10.1145/3649329.3655894(1-6)Online publication date: 23-Jun-2024
    • (2024)LeakageFreeSpec: Applying the Wiping Approach to Defend Against Transient Execution AttacksProceedings of the 21st ACM International Conference on Computing Frontiers10.1145/3649153.3649202(276-284)Online publication date: 7-May-2024
    • (2024)Formal Verification for Secure Processors: A Guide for Computer ArchitectsComputer10.1109/MC.2024.343484857:10(138-143)Online publication date: 1-Oct-2024
    • (2024)Modeling, Derivation, and Automated Analysis of Branch Predictor Security Vulnerabilities2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA)10.1109/HPCA57654.2024.00038(409-423)Online publication date: 2-Mar-2024
    • (2024)Uncovering and Exploiting AMD Speculative Memory Access Predictors for Fun and Profit2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA)10.1109/HPCA57654.2024.00014(31-45)Online publication date: 2-Mar-2024
    • (2024)GADGETSPINNER: A New Transient Execution Primitive Using the Loop Stream Detector2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA)10.1109/HPCA57654.2024.00013(15-30)Online publication date: 2-Mar-2024
    • (2024)SecurityCloakJournal of Systems Architecture: the EUROMICRO Journal10.1016/j.sysarc.2024.103107150:COnline publication date: 1-May-2024
    • (2023)Ultimate SLHProceedings of the 32nd USENIX Conference on Security Symposium10.5555/3620237.3620636(7125-7142)Online publication date: 9-Aug-2023
    • (2023)The gates of timeProceedings of the 32nd USENIX Conference on Security Symposium10.5555/3620237.3620347(1955-1972)Online publication date: 9-Aug-2023
    • (2023)Transient-Execution Attacks: A Computer Architect PerspectiveACM Computing Surveys10.1145/360361956:3(1-38)Online publication date: 6-Oct-2023
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media