![]() |
Web app vulnerabilities |
![]() |
Browser vulnerabilities |
![]() |
OS & lib vulnerabilities |
![]() |
Web app vulnerabilities |
![]() |
Browser vulnerabilities |
![]() |
OS & lib vulnerabilities |
Red indicates trusted computing base
Browser Abstrations
Make browser abstractions first-class OS abstractions
Maintain browser security policy even if components completely compromised
Real-world invariant: see fireworks on the fourth of July
Check key properties without understanding the implementation
Challenge: check security properties using security invariants
http://www.google.com
http://www.cs.uiuc.edu
GET: google.com
GET: ads.com/somead.jpg
GET: ads.com/anotherad.jpg
GET: cs.uiuc.edu
Eth Frames
Check TCP Port
Check IP Address
DMA Addr
Set Tx Buf
Validate Tx Buf
Pointer to frame buffer
Frame buffer memory pixel data
Page protections
Software stack | LOC |
---|---|
Firefox on Linux
Firefox
GTK+ & glibc X.Org Linux kernel |
> 5,600,000
~ 2,100,000
~ 1,200,000 ~ 700,000 ~ 1,600,000 |
ChromeOS
Chrome browser kernel
GTK+ & glibc ChromeOS kernel & services |
> 4,400,000
~ 800,000
~ 1,200,000 ~ 2,400,000 |
IBOS
IBOS kernel
L4Ka::Pistachio |
~ 42,000
~ 9,000
~ 33,000 |
Affected component | Num. | Prevented |
---|---|---|
Linux overall
File system
Network stack Other |
21
12
5 4 |
20 (95%)
12 (100%)
5 (100%) 3 (75%) |
X Server | 2 | 2 (100%) |
GTK+ & glibc | 5 | 5 (100%) |
Overall | 28 | 27 (96%) |
Published in CVE in 2010 as of Sep. 18
Category | Num. | Chrome Contained |
IBOS Contained or prevented |
---|---|---|---|
Memory exploitation | 82 | 71 (86%) | 79 (96%) |
Sandbox bypassing | 12 | 0 (0%) | 12 (100%) |
Other | 81 | 12 (15%) | 44 (54%) |
Overall | 175 | 83 (46%) | 135 (77%) |
Bugs labeled as "security" in Google Chrome's bug track