The Evolution of Chrome Security Architecture. Huan Ren Director, Qihoo 360 Technology Ltd

Similar documents
Exploring Chrome Internals. Darin Fisher May 28, 2009

AN EVALUATION OF THE GOOGLE CHROME EXTENSION SECURITY ARCHITECTURE

Chrome Extension Security Architecture

Presented by Alex Nicolaou

Stefan Heule, Devon Rifkin, Alejandro Russo, Deian Stefan. Stanford University, Chalmers University of Technology

CSP ODDITIES. Michele Spagnuolo Lukas Weichselbaum

Match the attack to its description:

BOOSTING THE SECURITY

The Multi-Principal OS Construction of the Gazelle Web Browser. Helen J. Wang, Chris Grier, Alex Moshchuk, Sam King, Piali Choudhury, Herman Venter

We will show you how we bypassed every XSS mitigation we tested. Mitigation bypass-ability via script gadget chains in 16 popular libraries

Browser code isolation

The Most Dangerous Code in the Browser. Stefan Heule, Devon Rifkin, Alejandro Russo, Deian Stefan

Sandboxing. CS-576 Systems Security Instructor: Georgios Portokalidis Spring 2018

An Evaluation of the Google Chrome Extension Security Architecture

October 08: Introduction to Web Security

Writing Secure Chrome Apps and Extensions

BOOSTING THE SECURITY OF YOUR ANGULAR 2 APPLICATION

The security of Mozilla Firefox s Extensions. Kristjan Krips

WEB BROWSER SANDBOXING: SECURITY AGAINST WEB ATTACKS

So we broke all CSPs. You won't guess what happened next!

RKN 2015 Application Layer Short Summary

Practical Sandboxing on the Windows Platform

Build Native-like Experiences in HTML5

Building Native Mapping Apps with PhoneGap: Advanced Techniques Andy

WEB SECURITY: XSS & CSRF

NoScript, CSP and ABE: When The Browser Is Not Your Enemy

AMT use case: Upipe + Chrome. Christophe Massiot (EBU multicast 2014)

High -Tech Bridge s Web Server Security Service API Developer Documentation Version v1.3 February 13 th 2018

s642 web security computer security adam everspaugh

Secure Architecture Principles

Tabular Presentation of the Application Software Extended Package for Web Browsers

Web basics: HTTP cookies

Content Security Policy

Origin Policy Enforcement in Modern Browsers

Defense-in-depth techniques. for modern web applications

How is state managed in HTTP sessions. Web basics: HTTP cookies. Hidden fields (2) The principle. Disadvantage of this approach

CSE 484 / CSE M 584: Computer Security and Privacy. Web Security. Autumn Tadayoshi (Yoshi) Kohno

Addressing Security Loopholes of Third Party Browser Plug ins UPDATED FEBRUARY 2017

Introduction into browser hacking. Andrey Kovalev

Adobe Flash Player Bit Windows 7 Google Chrome

Top 10 AJAX security holes & driving factors

Chrome Conceptual Architecture Report

Google chrome plugins flash

Trusted Types - W3C TPAC

HTTP Security Headers Explained

Robust Defenses for Cross-Site Request Forgery

Problem Installing Adobe Flash Player Mozilla Firefox Portable

Table of contents. 1 Overview about Pipelight. 2 Browser API & Communication. 3 Drawing & Input events. 4 Browser plugins and Wine

Windows 10 Azure AD / EMS

How I Learned to Stop Worrying and Love Plugins

Web basics: HTTP cookies

CSE361 Web Security. Attacks against the client-side of web applications. Nick Nikiforakis

Code-Injection Attacks in Browsers Supporting Policies. Elias Athanasopoulos, Vasilis Pappas, and Evangelos P. Markatos FORTH-ICS

WEB SECURITY WORKSHOP TEXSAW Presented by Solomon Boyd and Jiayang Wang

ADOBE AND IRON ADOBE AND IRON PDF PDF READER, PDF VIEWER ADOBE ACROBAT READER DC HOW TO CREATE PDF, PDF CREATOR ADOBE ACROBAT DC

Trouble Shooting Portable Documents Format (PDF) Q/A Solutions: AT ANY TIME THE USER CAN SAVE THE FILE TO THEIR COMPUTER AND FILL OUT THE FORM

CS 161 Computer Security

If you would like to allow others to view your 1098T, you will need to provide them access through the Authorized Users menu.

ISOLATION DEFENSES GRAD SEC OCT

Secure Architecture Principles

Design Inaccuracy Cross Link Authoring Flaw - ipaper Platform

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager

How To Update My Java Plug In Firefox Ubuntu 12.04

MTAT Research Seminar in Cryptography The Security of Mozilla Firefox s Extensions

Know Your Own Risks: Content Security Policy Report Aggregation and Analysis

Get your port on! porting to Native Client as of Pepper 18. Colt "MainRoach" McAnlis

Virtual machines (e.g., VMware)

Radiology Associates - Office Computer Set-Up Guide

Acknowledgments... xix

Computer Systems Department, University of Castilla-La Mancha Albacete, Spain

Firefox OS App Days. Overview and High Level Architecture. Author: José M. Cantera Last update: March 2013 TELEFÓNICA I+D

PRE-REQUISITES. The following software are the pre-requisites for functioning of SRM.

Servicification: Modularizing Chromium

Web Security: Vulnerabilities & Attacks

Integrity attacks (from data to code): Cross-site Scripting - XSS

Advanced Chrome Extension Exploita5on Leveraging API Powers for the Be=er Evil. Kyle Kos Osborn Krzysztof Kotowicz

W3Conf, November 15 & 16, Brad Scott

Lesson 4: Web Browsing

The Road to the Native Mobile Web. Kenneth Rohde Christiansen

Avid MediaCentral UX Desktop

Sandboxing JavaScript. Lieven Desmet iminds-distrinet, KU Leuven OWASP BeNeLux Days 2012 (29/11/2012, Leuven) DistriNet

Web 2.0 Käyttöliittymätekniikat

Web Security IV: Cross-Site Attacks

Web Application Security

Table of Content. Last updated: June 16th, 2015

White Paper: HTML5 Streaming (Plug-in Free Web Viewer) hanwhasecurity.com

Internet Explorer Faqs Page Setup Not Saving

WHY CSRF WORKS. Implicit authentication by Web browsers

Principles of Designing Secure Systems

Web Performance in

Amadeus Selling Platform Connect

Least Privilege for Browser Extensions

IronWASP (Iron Web application Advanced Security testing Platform)

Robust Defenses for Cross-Site Request Forgery

Hybrid App Security Attack and Defense

Requirements from the Application Software Extended Package for Web Browsers

Security. SWE 432, Fall 2017 Design and Implementation of Software for the Web

How Do I Turn Adobe Flash Player Back On >>>CLICK HERE<<<

Acrobat Application Security Guide

Security and Privacy. SWE 432, Fall 2016 Design and Implementation of Software for the Web

Transcription:

The Evolution of Chrome Security Architecture Huan Ren Director, Qihoo 360 Technology Ltd

Today s Chrome Architecture Browser GPU Sandbox Policy Renderer Extension Plug In

History Initial version: multi-process, no sandbox 2007: renderer sandbox 2009: extension system 2010: out of process GPU 2010 and ongoing: plug-in sandbox and pepper

Render Sandbox on Windows Token Calling CreateRestrictedToken with Null SID and all privileges deleted. Job JOB_OBJECT_LIMIT_ACTIVE_PROCESS JOB_OBJECT_UILIMIT_READCLIPBOARD Alternate desktop Low integrity level (for Vista+)

Challenge: compatibility Two phases Bootstrap: initial token Lockdown: after LowerToken() is called API Interceptions Broker (browser) Policy Engine IPC Renderer IPC Policy Client Interceptions Intercepting APIs for compatibility, not for sandboxing.

Challenge: compatibility Paint to screen Browser cache IPC (shared memory) Renderer bitmap WM_PAINT Window

Render Process Separation Process model Process per tab Process per site Process per site instance Mandatory process separation webui, extension, and normal render processes

Extension Security Architecture Browser Plug-in (not sandboxed) Extension host Permissions Extension (sandboxed as renderer) Background page Message passing Renderer (sandboxed ) Content script JS sandboxing

Elements of Extension Security JS Sandbox Content script and core extension separation Permission Extension publishing

JS sandbox: isolated world Page Page JS DOM V8 binding Content Script 1 Content Script 2

Privilege separation Content script: running in renderer process associated with page Extension core: running in separate process with privilege to issue cross-origin XMLHTTPRequest call extensions APIs load plug-ins Both sandboxed as renderer process.

Message passing One-time request chrome.extension.sendmessage chrome.tabs.sendmessage chrome.extension.onmessage.addlistener Long-lived connections chrome.extension.connect chrome.extension.onconnect.addlistener Cross-extension messaging

Publishing and Permission Declaration Manifest { "key": "publickey", "permissions": [ "tabs", "bookmarks", "http://*.google.com/", "unlimitedstorage" ], "plugins": [...], }

Common Extension Vulnerabilities Network attack Use <script src> with an HTTP URL XSS eval(), innerhtml, document.write() function displayaddress(address) { eval("alert('" + address + "')"); }

Evaluation of Chrome Extensions Study by UC Berkeley, presented in USENIX Security Symposium 2012 Manual review of 50 popular and 50 randomlyselected extensions. Found 70 vulnerabilities across 40 extensions. Source: "An Evaluation of the Google Chrome Extension Security Architecture"

Evaluation of Chrome Extensions Vulnerable Component Web Attacker Network Attacker Core extension 5 50 Content script 3 1 Website 6 14 Vulnerable Component Popular Random Total Core extension 12 15 27 Content script 1 2 3 Website 11 6 17 Any 22 18 40 Source: "An Evaluation of the Google Chrome Extension Security Architecture"

Extension Security V2 Support Content-Security-Policy (CSP) Manifest V2 script-src 'self'; object-src 'self' No inline script No eval() Load objects only from within package or whitelist prevent 96% (49 out of 51) of the core extension vulnerabilities found.

Other Threats on Extensions Threat model Attack on core extension primary design goal Malicious extensions Chrome sync amplifies the threat Websites that have been altered by extensions Remain to be studied Malicious extensions From Chrome 21, only allow installation from web store.

GPU Process HWND Shared Memory Browser process Commands Child HWND Renderer process Bitmaps and arrays GPU process H/w decoder

GPU Sandbox Token WinBuiltinUsersSid, WinWorldSid, WinRestrictedCodeSid Connected to the interactive desktop

Plug-ins NPAPI plug-ins are not sandboxed Weakest link on the system Mitigations Black list Click to play Built in Flash player Fast update Sandbox: Vista and later, low integrity mode

Ppapi Plug-ins Browser process Cross platform System APIs Plug-in process Plug-in Ppapi Locked down as renderer process Renderer process

Ppapi Examples struct PPB_FileIO_1_0 { int32_t (*Open)(PP_Resource file_io, PP_Resource file_ref, int32_t open_flags, struct PP_CompletionCallback cb); }

Current Progress Achieved performance improvement in windowless mode From sync layout model to async Converting native system calls to ppapi Flash PDF reader Since Chrome 21, Ppapi Flash enabled by default

Design Principle Review Least privilege Privilege separation Leveraging system security mechanism Striking a balance between security and performance, user experience.

Contributors to Chromium Google Qihoo 360 Individual contributors 50 good patches to Chromium will get you hired everywhere

We are hiring! Send emails to 360 browser renhuan@360.cn 360 Safe Guard paulfan@360.cn