4 ms·
If I understand it correctly (not entirely sure), an adversary needs to have code running on a system to exploit either attack - would Javascript running in a b
by sveme 9y ago
If I understand it correctly (not entirely sure), an adversary needs to have code running on a system to exploit either attack - would Javascript running in a browser be in principle sufficient to be able to exploit this, or are there some mitigations (sandboxes?) in place to prevent this from happening?
Edit: Okay, found this post from yesterday: https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/ https://blog.mozilla.org/security/2018/01/03/mitigations-lan...
Thanks for the reply!
- derekp7 9y agoYes, and one of the mitigations is to reduce the precision / accuracy of certain timer calls in Javascript.
- ckuehl 9y agoFrom the Spectre paper: > As a proof-of-concept, JavaScript code was written that, when run in the Google Chrome browser, allows JavaScript to read private memory from the process in which it runs (cf. Listing 2). https://spectreattack.com/spectre.pdf https://spectreattack.com/spectre.pdf
- paulhodge 9y agoYes javascript is sufficient. I think Spectre is theoretically possible with just untrusted data (not just untrusted code). It would need an existing trusted program that has a branch-predicting loop like the one in the paper. The attacker would feed untrusted data into the loop and then observe secrets through cache timing. It's weird code, so it's probably unlikely an existing program would have it, but it's not outside the realm of possibility. The attacker would also need a high-precision way to measure the timing of the operation, which also might be hard to find in an existing program, but not impossible. Just something else to keep you awake at night!
- kllrnohj 9y agoThey need code execution to observe that cache timing, though, and they need to prime the branch predictor and cache.
- paulhodge 9y agoI think the branch predictor can be primed with well-crafted data? (start off with a long series of 0s for X) For the other aspects like getting the cache timing, that does seem harder. I don't really know if it's feasible in practice.
- mkagenius 9y agoC++ Spectre code that works: https://gist.github.com/mkagenius/b74a632d2a28d663b048d253be219c54 https://gist.github.com/mkagenius/b74a632d2a28d663b048d253be...