<<

The Multi-Principal OS Construction of the Gazelle

Helen J. Wang∗, Chris Grier†, Alexander Moshchuk‡, Samuel T. King†, Piali Choudhury∗, Herman Venter∗ ∗ † University of Illinois at Urbana-Champaign ‡ University of Washington {helenw,pialic,hermanv}@microsoft.com, {grier,kingst}@uiuc.edu, [email protected]

Abstract sources. In this paper, we focus only on resource pro- Original web browsers were applications designed to tection in Gazelle. view static web content. As web sites evolved into dy- In Gazelle, the browser kernel runs in a separate pro- namic web applications that compose content from mul- tection domain (an OS process in our implementation), tiple web sites, browsers have become multi-principal interacts with the underlying OS directly, and exposes a operating environments with resources shared among set of system calls for web site principals. We use the mutually distrusting web site principals. Nevertheless, same web site principal as defined in the same-origin no existing browsers, including new architectures like IE policy (SOP), which is labeled by a web site’s origin, 8, Chrome, and OP, have a multi-principal oper- the triple of . In ating system construction that gives a browser-based OS this paper, we use “principal” and “origin” interchange- the exclusive control to manage the protection of all sys- ably. Unlike previous browsers, Gazelle puts web site tem resources among web site principals. principals into separate protection domains, completely In this paper, we introduce Gazelle, a secure web segregating their access to all resources. Principals can browser constructed as a multi-principal OS. Gazelle’s communicate with one another only through the browser browser kernel is an that exclusively kernel using inter-process communication. Unlike all ex- manages resource protection and sharing across web site isting browsers except OP, our browser kernel offers the principals. This construction exposes intricate design is- same protection to plugin content as to standard web con- sues that no previous work has identified, such as cross- tent. protection-domain display and events protection. We Such a multi-principal OS construction for a browser elaborate on these issues and provide comprehensive so- brings significant security and reliability benefits to the lutions. overall browser system: the compromise or failure of a Our prototype implementation and evaluation expe- principal affects that principal alone, leaving other prin- rience indicates that it is realistic to turn an existing cipals and the browser kernel unaffected. browser into a multi-principal OS that yields signifi- Although our architecture may seem to be a straight- cantly stronger security and robustness with acceptable forward application of multi-principal OS construction to performance. the browser setting, it exposes intricate problems that did not surface in previous work, including display protec- 1 Introduction tion and resource allocation in the face of cross-principal web service composition common on today’s web. We Web browsers have evolved into a multi-principal oper- will detail our solutions to the former and leave the latter ating environment where a principal is a web site [43]. as future work. Similar to a multi-principal OS, recent proposals [12, We have built an -Explorer-based prototype 13, 23, 43, 46] and browsers like IE 8 [34] and Fire- that demonstrates Gazelle’s multi-principal OS archi- fox 3 [16] advocate and support programmer abstrac- tecture and at the same time uses all the backward- tions for protection (e.g., in addition to compatible parsing, DOM management, and JavaScript