Trust and Protection in the Illinois Browser Operating System
Total Page:16
File Type:pdf, Size:1020Kb
Trust and Protection in the Illinois Browser Operating System Shuo Tang, Haohui Mai, Samuel T. King University of Illinois at Urbana-Champaign Abstract However, not all attacks on web apps, browsers, and operating systems are equally virulent. At the top of the Current web browsers are complex, have enormous computer stack, attacks on web apps, such as XSS, oper- trusted computing bases, and provide attackers with easy ate within current browser security policies that contain access to modern computer systems. In this paper we in- the damage to the vulnerable web app. Moving down troduce the Illinois Browser Operating System (IBOS), the computer stack, attacks on browsers can cause more a new operating system and a new browser that re- damage because a successful attack gives the attacker ac- duces the trusted computing base for web browsers. In cess to browser data for all web apps and access to other our architecture we expose browser-level abstractions resources on the system. At the lowest layers of the at the lowest software layer, enabling us to remove al- computer stack, attacks on libraries, shared system ser- most all traditional OS components and services from vices, and operating systems are the most serious attacks our trusted computing base by mapping browser abstrac- because attackers can access arbitrary states and events, tions to hardware abstractions directly. We show that this giving them complete control of the system. architecture is flexible enough to enable new browser se- curity policies, can still support traditional applications, Overall, these trends indicate that vulnerabilities and adds little overhead to the overall browsing experi- higher in the computer stack are more common, but vul- ence. nerabilities lower in the computer stack provide attack- ers with more control and are more damaging. In this paper we focus on preventing and containing attacks on 1 Introduction browsers, libraries, system services, and operating sys- tems – the lower layers of the computer stack. Web-based applications (web apps), browsers, and op- erating systems have become popular targets for attack- Current research efforts into more secure web ers of computer systems. Vulnerabilities in web apps browsers help improve the security of browsers, but are widespread and increasing. For example, cross-site remain susceptible to attacks on lower layers of the scripting (XSS), which is effectively a form of script in- computer stack. The OP web browser [26], Gazelle jection into a web app, recently overtook the ubiquitous [52], Chrome [11], and ChromeOS [25] propose new buffer overflow as the most common security vulnerabil- browser architectures for separating the functionality ity [50]. Vulnerabilities in web browsers are less com- of the browser from security mechanisms and policies. mon than web app vulnerabilities, but still occur often. However, these more secure web browsers are all built For example, in 2009 Internet Explorer, Chrome, Safari, on top of commodity operating systems and include and Firefox had 349 new security vulnerabilities [4], and complex user-mode libraries and shared system services attackers exploit browsers commonly [53, 37, 42, 41, 4]. within their trusted computing base (TCB). Even kernel Vulnerabilities in libraries, system services, and oper- designs with strong isolation between OS components ating systems are less common than vulnerabilities in (e.g., microkernels [24, 27, 28] and information-flow ker- browsers, but are still problematic for modern systems. nels [18, 57, 33]) still have OS services that are shared For example, glibc, GTK+, X, and Linux had 114 new by all applications, which attackers can compromise and security vulnerabilities in 2009 [1], and in 2009 the most still cause damage. Here are a few ways that an attacker commonly attacked vulnerability was a remote code ex- can still cause damage to more secure web browsers built ecution bug in the Windows kernel [4]. on top of traditional OSes: 1 • A compromised Ethernet driver can send sensitive • IBOS is the first system to improve browser and OS HTTP data (e.g., passwords or login cookies) to any security by making browser-level abstractions first- remote host or change the HTTP response data be- class OS abstractions, providing a clean separation fore routing it to the network stack. between browser functionality and browser security. • A compromised storage module can modify or steal • We show that having low-layer software expose any browser related persistent data. browser abstractions enables us to remove almost all traditional OS components from our TCB, in- • A compromised network stack can tamper with any cluding device drivers and shared OS services, al- network connection or send sensitive HTTP data to lowing IBOS to withstand a wide range of attacks. an attacker. • We demonstrate that IBOS can still support tradi- • A compromised window manager can draw any tional applications that interact with the browser and content on top of a web page to deploy visual at- shared OS services without compromising the secu- tacks, such as phishing. rity of our system. In this paper we describe IBOS, an operating sys- tem and a browser co-designed to reduce drastically the 2 The IBOS architecture TCB for web browsers and to simplify browser-based systems. Our key insight is that our lowest-layer soft- This paper presents the design and implementation of ware can expose browser-level abstractions, rather than the IBOS operating system and browser that reduce the general-purpose OS abstractions, to provide vastly im- TCB for browsing drastically. Our primary goals are to proved security properties for the browser without affect- enforce today’s browser security policies with a small ing the TCB for traditional applications. Some examples TCB, without restricting functionality, and without slow- of browser abstractions are cookies for persistent storage, ing down performance. To withstand attacks, IBOS must hypertext transfer protocol (HTTP) connections for net- ensure any compromised component (1) cannot tamper work I/O, and tabs for displaying web pages. To support with data it should not have access to, (2) cannot leak traditional applications, we build UNIX-like abstractions sensitive information to third parties, and (3) cannot ac- on top of our browser abstractions. cess components operating on behalf of different web IBOS improves on past approaches by removing typi- sites. cally shared OS components and system services from In this section we discuss the design principles that our browser’s TCB, including device drivers, network guide our design and the overall system architecture. In protocol implementations, the storage stack, and win- Section 4 we discuss the security policies and mecha- dow management software. All of these components run nisms we use. above a trusted reference monitor [9], which enforces our security policies. These components operate on browser- level abstractions, allowing us to map browser security 2.1 Design principles policies down to the lowest-level hardware directly and We embrace microkernel [27], Exokernel [19], and to remove drivers and system services from our TCB. safety kernel design principles in our overall architec- This architecture is a stark contrast to current systems ture. By combining these principles with our insight where all applications layer application-specific abstrac- about exposing browser abstractions at the lowest soft- tions on top of general-purpose OS abstractions, inherit- ware layer we hope to converge on a more trustworthy ing the cruft needed to implement and access these gen- browser design. Five key principles guide our design: eral OS abstractions. By exposing application-specific abstractions at the OS layer, we can cut through complex 1. Make security decisions at the lowest layer of soft- software layers for one particular application without af- ware. By pushing our security decisions to the low- fecting traditional applications adversely, which still run est layers we hope to avoid including the millions on top of general OS abstractions and still inherit cruft. of lines of library and OS code in our TCB. We choose to illustrate this principle using a web browser because browsers are used widely and have been prone 2. Use controlled sharing between web apps and tra- to security failures recently. Our goal is to build a sys- ditional apps. Sharing data between web apps and tem where a user can visit a trusted web site safely, even traditional apps is a fundamental functionality of one or more of the components on the system have been today’s practical systems and should be supported. compromised. However, this sharing should be facilitated through Our contributions are: a narrow interface to prevent misuse. 2 maps.com bing.com uiuc.edu implementing browser abstractions. The key browser localhost abstractions that the browser API managers implement Traditional Web Page Web Page Web Page Applications Instance Instance Instance are HTTP requests, cookies and local storage for stor- ing persistent data, and tabs for displaying user-interface UNIX Layer (UI) content. Web apps use these abstractions directly Browser abstractions to implement browser functionality, and traditional ap- UI Storage Net. Processes plications (traditional apps) use a UNIX layer to access UNIX-like abstractions on top of these browser abstrac- Mouse/KBD Driver … NIC Driver tions. Reference Monitor L4 IBOS Kernel Net. Manager 2.2.1 The IBOS kernel Hardware Video … Mouse/KBD NIC Our IBOS kernel is the software TCB for the browser and includes resource management functionality and a refer- Figure 1: Overall IBOS architecture. Our system con- ence monitor for security enforcement. The IBOS kernel tains user-mode drivers, browsers API managers, web also handles many traditional OS tasks such as manag- page instances, and traditional processes. To manage the ing global resources, creating new processes, and man- interactions between these components, we use a refer- aging memory for applications. To facilitate message ence monitor that runs within our IBOS kernel. Shaded passing, the IBOS kernel includes the L4Ka::Pistachio regions make up the TCB.