The Code That Never Ran: Modeling Attacks on Speculative Evaluation
Authors:
- 1 May 2019
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 1238-1255
Abstract
This paper studies information flow caused by speculation mechanisms in hardware and software. The Spectre attack shows that there are practical information flow attacks which use an interaction of dynamic security checks, speculative evaluation and cache timing. Previous formal models of program execution are designed to capture computer architecture, rather than micro-architecture, and so do not capture attacks such as Spectre. In this paper, we propose a model based on pomsets which is designed to model speculative evaluation. The model is abstract with respect to specific micro-architectural features, such as caches and pipelines, yet is powerful enough to express known attacks such as Spectre and Prime+Abort, and verify their countermeasures. The model also allows for the prediction of new information flow attacks. We derive two such attacks, which exploit compiler optimizations, and validate these experimentally against gcc and clang.Keywords
This publication has 35 references indexed in Scilit:
- Making the java memory model safeACM Transactions on Programming Languages and Systems, 2013
- Generative Operational Semantics for Relaxed Memory Models2010
- The Java memory modelACM SIGPLAN Notices, 2005
- Language-based information-flow securityIEEE Journal on Selected Areas in Communications, 2003
- The equational theory of pomsetsTheoretical Computer Science, 1988
- Observation equivalence as a testing equivalenceTheoretical Computer Science, 1987
- A Theory of Communicating Sequential ProcessesJournal of the ACM, 1984
- Rough setsInternational Journal of Parallel Programming, 1982
- A note on the confinement problemCommunications of the ACM, 1973
- An axiomatic basis for computer programmingCommunications of the ACM, 1969