Appeared in 30 th IEEE Symposium on Security and Privacy, May 2009. Authors: Mike Ter Louw and V.N. Venkatakrishnan Dept. of Computer Science: University.

Slides:



Advertisements
Similar presentations
Nick Feamster CS 6262 Spring 2009
Advertisements

Cross Site Scripting (XSS)
Past, Present and Future By Eoin Keary and Jim Manico
Mike Ter Louw V.N. Venkatakrishnan University of Illinois at Chicago
Overview Environment for Internet database connectivity
What is code injection? Code injection is the exploitation of a computer bug that is caused by processing invalid data. Code injection can be used by.
Section 10.1 Identify how Web sites are structured Explain the role of URLs Describe the function of HTTP Section 10.2 Explain how the Web has affected.
Essentials for Design JavaScript Level One Michael Brooks
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
WEB BROWSER SECURITY By Robert Sellers Brian Bauer.
The XSS Files Find, Exploit, and Eliminate. Josh Little Security Engineer at global vertical market business intelligence company. 9 years in application.
©2009 Justin C. Klein Keane PHP Code Auditing Session 5 XSS & XSRF Justin C. Klein Keane
Blackbox Reversing of XSS Filters Alexander Sotirov ekoparty 2008.
© 2010, Robert K. Moniot Chapter 1 Introduction to Computers and the Internet 1.
ASP.NET 2.0 Chapter 6 Securing the ASP.NET Application.
© 2004, Robert K. Moniot Chapter 1 Introduction to Computers and the Internet.
Introduction to the OWASP Top 10. Cross Site Scripting (XSS)  Comes in several flavors:  Stored  Reflective  DOM-Based.
Injection Attacks by Example SQL Injection and XSS Adam Forsythe Thomas Hollingsworth.
Chapter 14 Introduction to HTML
INTRODUCTION TO WEB DATABASE PROGRAMMING
Workshop 3 Web Application Security Li Weichao March
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Joel Bapaga on Web Design Strategies Technologies Commercial Value.
1 HTML and CGI Scripting CSC8304 – Computing Environments for Bioinformatics - Lecture 10.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Prevent Cross-Site Scripting (XSS) attack
CSCI 6962: Server-side Design and Programming Secure Web Programming.
Web Application Access to Databases. Logistics Test 2: May 1 st (24 hours) Extra office hours: Friday 2:30 – 4:00 pm Tuesday May 5 th – you can review.
1 All Your iFRAMEs Point to Us Mike Burry. 2 Drive-by downloads Malicious code (typically Javascript) Downloaded without user interaction (automatic),
BLUEPRINT: Robust Prevention of Cross-site Scripting Attacks for Existing Browsers Mike Ter Louw, V.N. Venkatakrishnan University of Illinois at Chicago.
JavaScript, Fourth Edition
November 13, 2008 Ohio Information Security Forum Attack Surface of Web Applications James Walden Northern Kentucky University
Programming the Web Web = Computer Network + Hypertext.
Copyright 2007 © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
JQUERY | INTRODUCTION. jQuery  Open source JavaScript library  Simplifies the interactions between  HTML document, or the Document Object Model (DOM),
1 Internet Browsing Vulnerabilities and Security ECE4112 Final Lab Ye Yan Frank Park Scott Kim Neil Joshi.
XSS-GUARD : Precise Dynamic Prevention of Cross Site Scripting (XSS) Attacks Prithvi Bisht ( Joint work with : V.N. Venkatakrishnan.
Tutorial 10 Programming with JavaScript
Web Design (1) Terminology. Coding ‘languages’ (1) HTML - Hypertext Markup Language - describes the content of a web page CSS - Cascading Style Sheets.
October 3, 2008IMI Security Symposium Application Security through a Hacker’s Eyes James Walden Northern Kentucky University
Session: 1. © Aptech Ltd. 2Introduction to the Web / Session 1  Explain the evolution of HTML  Explain the page structure used by HTML  List the drawbacks.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
 Computer use language to communicate  A web browser will read these tags and translate it into what you actually see  Viewing Code of ESPN WebsiteESPN.
Session 1 Chapter 1 - Introduction to Web Development ITI 133: HTML5 Desktop and Mobile Level I
CS526Topic 12: Web Security (2)1 Information Security CS 526 Topic 9 Web Security Part 2.
Web Security Lesson Summary ●Overview of Web and security vulnerabilities ●Cross Site Scripting ●Cross Site Request Forgery ●SQL Injection.
Trevor Jim Nikhil Swamy Michael Hicks Defeating Script Injection Attacks with Browser-Enforced Embedded Policies Jason FroehlichSeptember 24, 2008.
8 th Semester, Batch 2009 Department Of Computer Science SSUET.
Overview Web Technologies Computing Science Thompson Rivers University.
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
By Collin Donaldson. Hacking is only legal under the following circumstances: 1.You hack (penetration test) a device/network you own. 2.You gain explicit,
The OWASP Foundation OWASP XSS Remediation Cassia Martin Romain Gaucher April 7 th, 2011.
SlideSet #20: Input Validation and Cross-site Scripting Attacks (XSS) SY306 Web and Databases for Cyber Operations.
Arklio Studija 2007 File: / / Page 1 Automated web application testing using Selenium
An Introduction to Web Application Security
Web Technologies Computing Science Thompson Rivers University
Web Application Vulnerabilities, Detection Mechanisms, and Defenses
World Wide Web policy.
Introduction to HTML.
Riding Someone Else’s Wave with CSRF
WEB PROGRAMMING JavaScript.
WWW安全 國立暨南國際大學 資訊管理學系 陳彥錚.
Web Development 101 Workshop
Web Technologies Computing Science Thompson Rivers University
Exploring DOM-Based Cross Site Attacks
Web Application Development Using PHP
Mike Ter Louw, V.N. Venkatakrishnan University of Illinois at Chicago
Presentation transcript:

Appeared in 30 th IEEE Symposium on Security and Privacy, May Authors: Mike Ter Louw and V.N. Venkatakrishnan Dept. of Computer Science: University of Illinois at Chicago Presented by: Joey Thompson

Terms / Assumptions Example of Cross-Site Scripting XSS Defensive Approaches Goal of BLUEPRINT How BLUEPRINT Works BLUEPRINT Implementation Results of BLUEPRINT Testing Contributions Weaknesses Questions?

XSS – Cross-Site Scripting (Malicious Attack) CSS – Cascading Style Sheets (Styles that make standardizing multiple HTML Pages possible) Trusted HTML – HTML content that makes up the web site or web application backend Untrusted HTML – All content that is entered or can be edited by users

Trusted HTML Content from Wikipedia / Untrusted HTML Content entered by users

Browser Parser – How the browser translates and handles HTML content. Browser Quirks – Old content on new browser, differences between browsers, how HTML is parsed, etc. Example: CSS3 Selectors Reference: DOM API – Document Object Model – Cross-platform convention for representing and interacting with HTML objects.

According to the Open Web Application Security Project (OWASP), XSS attacks are the #2 highest risk malicious attacks today

XSS Goals: Hijack user sessions Deface web sites/apps Install malware Redirect to malicious sites Exploit web site weaknesses for profit

Content Filtering (Sanitization) – Performed server-side where all untrusted HTML data must be scanned for scripts and removed before sending a page to a users browser. Browser Collaboration – A trusted communication between browser and server is established where the server tells the browser which scripts are okay to run. All other scripts are ignored.

Authors praised BEEP (Browser Collaboration Idea) Problems: Standards must be established Browsers/Servers updated Users must update and be informed Goal: Provide temporary XSS defense that is robust against all attacks and compatible with current web browsers today without interfering with benign untrusted HTML.

Main idea: Close the gap between how a server thinks a browser will handle an HTML sequence and how the browser actually handles it. Given the numerous browser quirks out there today, the only way to narrow this gap is to force the browser to understand the HTML sequence as intended by the server

Skip unreliable path B. Code untrusted HTML as syntactically inert text using safe characters and pass to DOM API Recover code from text using JavaScript RE ONLY use proven safe objects in DOM API that do not trigger any parsing Use path R to send back to Document Generator

Server-side: Untrusted HTML content is formed into Base64 Encoded strings. Client-side: Strings are converted into only safe object models using the DOM API Check objects according to their known schemes: Example: should start with http: https: or ftp: White lists are used to not allow characters such as /,?,$,#, in objects that should never use them

Server-side Integration: Written in PHP which has a natural integration with other PHP web apps. Also available as a separate process that communicates with web apps using local TCP/IP Client-side: A library plug-in is prompted for download/installation on first use.

Tested on two highly untrusted types of HTML pages A Blog platform (modeled after WordPress) A Wiki platform (modeled after Wikipedia) Tested against most common XSS attempts including HTML, link, and CSS attacks

Tested on Chrome 1.0, Firefox 2.0 and 3.0, IE 7 and 6, Opera 9.6, and Safari 3.1 and 3.2 Used XSS Cheat Sheet Praised for undermining real-world regular expression based defenses Contains 94 XSS attacks, 14 URI obfuscation attacks, 2 Cross-Site Request Forgery attacks, 1 server-side include attack, and 1 PHP command injection

Server: Ubuntu 8.04 LTS Server running Apache Client: Ubuntu 8.10 running Windows XP in VirtualBox Across all browsers BLUEPRINT successfully blocked all XSS attacks, but did not stop non-XSS or Informational attacks that were included in XSS Cheat Sheet

Additional memory overhead differed on each different browser for both cases.

Page overhead attributed to three factors: Per-model overhead due to embedding of model interpreter scripts Text size overhead due to Base64 encoding HTML markup size due to encoding of HTML elements, attributes, and CSS properties Wordpress averaged 52.4% overhead. Wiki layout averaged 13.9% overhead. Reason for higher overhead is due to format of WordPress comments. 534 models are used for 250 comments, whereas less models are used in Wiki.

Very important statistic: Additional time required before user can access the page with the addition of BLUEPRINT on server and client-side Worst WordPress Case: 3.4 seconds in IE6 (250 Comments) Worst Wiki Layout Case: 1.05 seconds in IE6 (40kb Article) If user reads from the top of the page down, no human could read 250 comments in 3.4 seconds or a large 40kb article in one second.

Authors desire a browser collaboration method as a long term solution, but have provided a solid temporary defense system for XSS attacks today. BLUEPRINT system: Reliably defends against all tested XSS attacks Supports benign structured HTML content Compatible with all current browsers today Protects with small enough overhead to be unperceivable to the human eye

Could have more clearly defined trusted vs untrusted HTML content Lack of specific example explaining browser parser Lack of specific example explaining step by step BLUEPRINT parser Lack of explanatory pictures. Excluding tables /graphs there were two, and one was pointless No reference to the 19 attacks it was unable to stop or future ways to prevent them

Questions / Comments? References: BLUEPRINT: Robust Prevention of Cross-Site Scripting Attacks for Existing Browsers, Mike Ter Louw and V.N. Venkatakrishnan, University of Illinois at Chicago. Bowser Compatibility Comparison OWASP Top 10 Risks XSS Chest Sheet