Module: Sandboxing
Into the Jail
Yan Shoshitaishvili
Arizona State University
Sandboxing Cycle
https://xkcd.com/2044/
In the beginning (computing, circa 1950)...
First, everything ran on bare metal.
Problem: every process was omnipotent.
The split of OS and userspace (circa 1960)...
Hardware measures were developed to separate "system" and "process" code (1960s).
Problem: processes could still clobber each other.
The rise of virtual memory (circa 1980)...
Hardware measures were developed to separate the memory space of different processes.
The rise of in-process separation (circa 1990)...
Separation between the interpreter and the interpreted code.
Browser hacking (circa 2000).
Known as a "Drive By Download". Popular "traditional" targets:
Browser hacking mitigations (circa 2010).
Original solution: eliminate traditional targets.
Turns out that this does not solve the problem. Hackers moved on to:
The rise of sandboxing (circa 2010)...
Untrusted code/data (i.e., downloaded JavaScript, PNGs, PDFs, etc) should live in a process with almost zero permissions.
In this module, we will learn about different sandboxing technologies and their weaknesses!
How well does this work?
Sandboxing is extremely effective.
In this class, we'll see several strong mitigations that are so effective that a second vulnerability is needed to bypass the mitigation and make the first vulnerability useful.
Sandboxes are a strong mitigation: