Defending against JavaScript side-channels
You’ve heard of “Micro-architectural attacks” yes? You know, stuff like Rowhammer , ASLR bypass , DRAM addressing attacks , and so forth? An excellent paper by Schwarz et al. — reviewed by Adrian Colyer here — describes how one can protect against these attacks coming in via JavaScript. Which basically translates to “preventing any random website from hacking you” . The one I found particularly fascinating was how JavaScript can be used to identify memory addresses, and how JavaScript Zero (the solution described in the paper) defeats it. The thing about JavaScript is, it’s sandboxed nature ensures that virtual addresses are never actually disclosed to the user. That said, 1. JavaScript has ArrayBuffers — what is effectively a block of virtual memory that is directly accessible to the user in a fast and efficient way 2. Browsers allocate ArrayBuffers in a page-aligned manner (at the start of a new ph...