HackerPapers

arXiv:1902.05178cs.PL

Spectre is here to stay: An analysis of side-channels and speculative execution

Ross Mcilroy, Jaroslav Sevcik, Tobias Tebbi, Ben L. Titzer, Toon Verwaest

Abstract

The recent discovery of the Spectre and Meltdown attacks represents a watershed moment not just for the field of Computer Security, but also of Programming Languages. This paper explores speculative side-channel attacks and their implications for programming languages. These attacks leak information through micro-architectural side-channels which we show are not mere bugs, but in fact lie at the foundation of optimization. We identify three open problems, (1) finding side-channels, (2) understanding speculative vulnerabilities, and (3) mitigating them. For (1) we introduce a mathematical meta-model that clarifies the source of side-channels in simulations and CPUs. For (2) we introduce an architectural model with speculative semantics to study recently-discovered vulnerabilities. For (3) we explore and evaluate software mitigations and prove one correct for this model. Our analysis is informed by extensive offensive research and defensive implementation work for V8, the production JavaScript virtual machine in Chrome. Straightforward extensions to model real hardware suggest these vulnerabilities present formidable challenges for effective, efficient mitigation. As a result of our work, we now believe that speculative vulnerabilities on today's hardware defeat all language-enforced confidentiality with no known comprehensive software mitigations, as we have discovered that untrusted code can construct a universal read gadget to read all memory in the same address space through side-channels. In the face of this reality, we have shifted the security model of the Chrome web browser and V8 to process isolation.

arXiv comments
26 pages
Journal reference
DOI
Subjects
cs.PLProgramming Languages cs.CRCryptography and Security

On Hacker News

Linked by 16 identifiable commenters in 20 comments across 18 threads, from Feb 2019 to Aug 2023. Found in 1 HN submission from Feb 2019 to Feb 2019. Open submission discussions.

Comments linking this paper, per year.

Discussed in comments18 threads

    • That's not true...at all. There are amplification techniques which work in JS and wasm that amplify a cache eviction into an over 1s delta [1]. Trying to restrict timing as a mitigation has been known to be ineffective since 2019, a bunch of people at Google who worked on the…

      sweetjulyView on HNParent context

    • > 4. Spectre attacks make single address space operating systems more complex. I will say, unequivocally, that Spectre actually makes process isolation in single address space operating systems impossible on modern hardware. There is too much speculation and too many leaks, and…

      titzerView on HNParent context

    • Yes, but it is more restrictive, e.g., it is not Turing complete. I’m not sure whether this directly addresses Spectre risks though. An analysis of Spectre and software isolation is here: https://arxiv.org/abs/1902.05178

      jssmithView on HNParent context

    • While I don't know anything specific about RedLeaf, I highly doubt that it is completely immune to Spectre. Spectre fundamentally stems from how modern CPUs are designed and the current understanding is that there is no way to fix Spectre. If you're curious, see the paper…

      ddworkenView on HNParent context

    • Last year Chrome published a great paper on this[1]. The summary is that we no longer think it is possible to completely prevent speculative execution bugs. A big focus nowadays is on providing tools (mainly via HTTP headers) that allow a website to opt-in to a more strict…

      ddworkenView on HNParent context

    • See this[1] paper for more information. I think from the browser POV it is more about admitting that it just isn't possible to reliably mitigate Spectre and instead focusing on what can be done at the browser level. And at the browser level, it is possible to ensure that…

      ddworkenView on HNParent context

    • This is the conclusion of our 2019 paper: https://arxiv.org/abs/1902.05178 Side-channel vulnerabilities are too numerous and too hard to defend against. In the limit, the entire process address space is up for grabs.

      titzerView on HNParent context

  1. M1 Macs: Truth and Truthiness 1 comment
    • > they still carry all the x86 baggage in microcode, since tons of bad decisions leading to things like Spectra. ARM doesn't > AMD is not affected by Spectre This is not true. AMD, ARM, Intel, and IBM are all affected by Spectre (Bounds Check Bypass) and that particular variant…

      ENOTTYView on HNParent context

    • > But in some cases, you probably could make it absolutely bulletproof. I don't believe this. Not on modern hardware. I worked on Spectre for almost two years while at Google. We wrote this: https://arxiv.org/abs/1902.05178

      titzerView on HNParent context

    • This paper might be of interest: https://arxiv.org/pdf/1902.05178.pdf it explains the 'concept' of these kind of attacks and why its kind of impossible to make an abstraction which does not suffer from such flaws in the presence of high precision timers which are in turn needed…

      vectorEQView on HNParent context

    • That’s Meltdown, not Spectre. Meltdown arguably does fit your description, but AFAIK the cost of checking permissions in the right place is almost zero, so it’s arguably better described as “we never realized it would be dangerous to not check permissions here” than “we skipped…

      comexView on HNParent context

    • > there is no way to know as a kernel if two things that are security sensitive relative to each other The kernel has a way, and it is process isolation. The kernel doesn't care if you want two threads in the same process to be isolated from one another - that's your problem…

      rrssView on HNParent context

  2. Inferno Operating System 1 comment
    • You could do that (see Singularity OS [0] and Midori [1]), but recently it was discovered that it wouldn't work on modern out-of-order CPUs due to Spectre [2]. [0] https://research.cs.wisc.edu/areas/os/Seminar/schedules/pape... [1]…

      the_why_of_yView on HNParent context

    • How does this do anything to alleviate spectre and friends? Software isolation doesn't work (https://arxiv.org/abs/1902.05178), so the only protection you get is from process isolation, and I assume this doesn't change the OS mechanisms to enforce that.

      tntnView on HNParent context

  3. Lisp Operating System (2015) 1 comment
    • > We don't need separate processes if the language we use is inherently safe (e.g., modern Common Lisp). I note the year of the article, which was before Spectre and friends showed that this is not a reasonable assumption these days[1]. So does this mean LispOS is doomed? [1]…

      magicalhippoView on HNParent context

  4. V8: A Year with Spectre 1 comment
    • Considering the recent "Spectre is here to stay" paper [1], can anyone comment on whether Firefox should be considered secure until the work on process-per-site lands (I believe they are working on it)? [1] https://arxiv.org/abs/1902.05178

      benolView on HNParent context

  5. Why OpenBSD Rocks 1 comment
    • Nice list. They may want to take Spectre off the list, however. It seems only hardware fixes actually work: https://arxiv.org/pdf/1902.05178.pdf Signify sounds great. It has been ported to Linux: https://github.com/Blitznote/signify

      TepixView on HNParent context

    • Maybe link to the paper this is based on instead? https://arxiv.org/abs/1902.05178

      smueller1234View on HNParent context

    • The conclusion is beautifully scary: "Computer systems have become massively complex in pursuit of the seemingly number-one goal of performance. We’ve been extraordinarily successful at making them faster and more powerful, but also more complicated, facilitated by our many ways…

      guiambrosView on HNParent context

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.