Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November.

Slides:



Advertisements
Similar presentations
Cross-Site Scripting Issues and Defenses Ed Skoudis Predictive Systems © 2002, Predictive Systems.
Advertisements

SecuBat: An Automated Web Vulnerability Detection Framework
Closing the Gap: Analyzing the Limitations of Web Application Vulnerability Scanners David Shelly Randy Marchany Joseph Tront Virginia Polytechnic Institute.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
By Philipp Vogt, Florian Nentwich, Nenad Jovanovic, Engin Kirda, Christopher Kruegel, and Giovanni Vigna Network and Distributed System Security(NDSS ‘07)
Automating Bespoke Attack Ruei-Jiun Chapter 13. Outline Uses of bespoke automation ◦ Enumerating identifiers ◦ Harvesting data ◦ Web application fuzzing.
August 1, 2006 Software Security. August 1, 2006 Essential Facts Software Security != Security Features –Cryptography will not make you secure. –Application.
SOFTWARE SECURITY JORINA VAN MALSEN 1 FLAX: Systematic Discovery of Client-Side Validation Vulnerabilities in Rich Web Applications.
Fuzzing Dan Fleck CS 469: Security Engineering Sources:
It’s always better live. MSDN Events Securing Web Applications Part 1 of 2 Understanding Threats and Attacks.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Maintaining and Updating Windows Server 2008
CROSS SITE SCRIPTING..! (XSS). Overview What is XSS? Types of XSS Real world Example Impact of XSS How to protect against XSS?
Leveraging User Interactions for In-Depth Testing of Web Application Sean McAllister Secure System Lab, Technical University Vienna, Austria Engin Kirda.
Handling Security Threats in Kentico CMS Karol Jarkovsky Sr. Solution Architect Kentico Software
Web Application Security Assessment and Vulnerability Assessment.
Security Scanning OWASP Education Nishi Kumar Computer based training
By: Razieh Rezaei Saleh.  Security Evaluation The examination of a system to determine its degree of compliance with a stated security model, security.
W3af LUCA ALEXANDRA ADELA – MISS 1. w3af  Web Application Attack and Audit Framework  Secures web applications by finding and exploiting web application.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Testing Tools. Categories of testing tools Black box testing, or functional testing Testing performed via GUI. The tool helps in emulating end-user actions.
Prevent Cross-Site Scripting (XSS) attack
+ Websites Vulnerabilities. + Content Expand of The Internet Use of the Internet Examples Importance of the Internet How to find Security Vulnerabilities.
Approaches to Application Security – DSM
A Framework for Automated Web Application Security Evaluation
Chapter 16 The World Wide Web. 2 The Web An infrastructure of information combined and the network software used to access it Web page A document that.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
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-Vulnerabilities 2-Hackers 3-Categories of attacks 4-What a malicious hacker do? 5-Security mechanisms 6-HTTP Web Servers 7-Web applications attacks.
Preventing SQL Injection Attacks in Stored Procedures Alex Hertz Chris Daiello CAP6135Dr. Cliff Zou University of Central Florida March 19, 2009.
AMNESIA: Analysis and Monitoring for NEutralizing SQL- Injection Attacks Published by Wiliam Halfond and Alessandro Orso Presented by El Shibani Omar CS691.
November 13, 2008 Ohio Information Security Forum Attack Surface of Web Applications James Walden Northern Kentucky University
nd Joint Workshop between Security Research Labs in JAPAN and KOREA Profile-based Web Application Security System Kyungtae Kim High Performance.
Universiti Utara Malaysia Chapter 3 Introduction to ASP.NET 3.5.
Web Application Security ECE ECE Internetwork Security What is a Web Application? An application generally comprised of a collection of scripts.
Security Scanners Mark Shtern. Popular attack targets Web – Web platform – Web application Windows OS Mac OS Linux OS Smartphone.
October 3, 2008IMI Security Symposium Application Security through a Hacker’s Eyes James Walden Northern Kentucky University
nd Joint Workshop between Security Research Labs in JAPAN and KOREA Marking Scheme for Semantic- aware Web Application Security HPC.
Web Applications Testing By Jamie Rougvie Supported by.
Building Secure Web Applications With ASP.Net MVC.
Web Security Lesson Summary ●Overview of Web and security vulnerabilities ●Cross Site Scripting ●Cross Site Request Forgery ●SQL Injection.
Module: Software Engineering of Web Applications Chapter 3: user-input-validation testing of web applications 1.
© 2011 IBM Corporation Hybrid Analysis for JavaScript Security Assessment Omer Tripp Omri Weisman Salvatore Guarnieri IBM Software Group Sep 2011.
Software Quality Assurance and Testing Fazal Rehman Shamil.
What Is XSS ? ! Cross-site scripting (XSS) is a type of computer security vulnerability typically found in Web applications. XSS enables attackers to.
Introduction of XSS:-- Cross-Site Scripting (XSS) attacks are a type of injection, in which malicious scripts are injected into otherwise benign and trusted.
Saner: Composing Static and Dynamic Analysis to Validate Sanitization in Web Applications Davide Balzarotti, Marco Cova, Vika Felmetsger, Nenad Jovanovic,
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
Maintaining and Updating Windows Server 2008 Lesson 8.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
SOFTWARE TESTING TRAINING TOOLS SUPPORT FOR SOFTWARE TESTING Chapter 6 immaculateres 1.
Software Testing Training Online. Software testing is ruling the software business in current scenario. It provides an objective, independent view of.
Fuzzing Machine By Nikolaj Tolkačiov.
Adobe Digital Marketing
Group 18: Chris Hood Brett Poche
CSCE 548 Student Presentation Ryan Labrador
Module: Software Engineering of Web Applications
Presentation by: Naga Sri Charan Pendyala
Module: Software Engineering of Web Applications
Static Detection of Cross-Site Scripting Vulnerabilities
Marking Scheme for Semantic-aware Web Application Security
Lecture 2 - SQL Injection
Web Design and Development
CS5123 Software Validation and Quality Assurance
Protecting Against Common Web Application Vulnerabilities
Exploring DOM-Based Cross Site Attacks
Presentation transcript:

Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November 4, 2008

Introduction 2 Static  Dynamic Complexity ↑ Bugs ↑ Vulnerability ↑

Introduction 3 Web application vulnerabilities – Result from lack of input validation – Example: Cross site scripting(XSS), SQL injection bugs

Review (1) 4 Cross site scripting(XSS) – Malicious scripting code which transfers sensitive information to the attacker is injected into the output of an application Stored XSS: Attacker persistently stores the malicious code in a resource such as a database. Reflected XSS : Script is reflected to the victim.

Review (2) 5 SQL injection – Malicious input can reach a DB query and modify the intended semantics of this query

Background (1) 6 Testing tool – White box testing : the source code of the application is analyzed to indicate errors or vulnerabilities. – Black box testing : Special input test cases are generated and sent to the application. Then, the results are analyzed.

Background (2) 7 Testing tool White boxBlack box Pros. Large code coverage In theory, can analyze all possible execution paths No false positives No need knowledge about implementation-specific details Cons. False positives Support limited programming language Limited code coverage

Background (3) 8 Vulnerability scanner – An automated security program that searches for software vulnerabilities within web applications

Background (4) 9 Steps of vulnerability scanner – Web spider finds valid injection points – Provide a variety of specially-crafted, malformed input values that trigger certain classes of vulnerabilities – Analyze response that web application returns

Limitations 10 Fail case : To leave a comment in blogging site

Limitations 11 Code coverage – Scanner does not have any knowledge about use cases – Built-in web spider is insufficient

Goal 12 Improve the effectiveness of web vulnerability scanners Increase test coverage

Approach 13 Leverage input from real users as a starting point for testing – Generate test cases that can be replayed Interact with the web application in a more meaningful fashion – For detection of stored XSS vulnerability

Increasing Test Coverage 1)Increasing testing depth 2)Increasing testing breadth 3)Stateful Fuzzing 14

1) Increasing testing depth Leverage actual user input – Collecting input Record requests directly at the server – Replaying input Execute one step Fuzzer replace the valid inputs to malformed values in database Previously recorded input values are used for the next step. Guided fuzzing : process of using previously collected traces 15

2) Increasing testing breadth Use current step as a starting point for fuzzing – For each step, only a single entry point is analyzed – Fuzzer attempts to find additional entry points Extended, guided fuzzing 16

3) Stateful Fuzzing 17 Fail scenario : On the page of shopping cart – Delete all items in cart – The following steps of the use case fails Show cart’s inventory Checkout Delete all items

3) Stateful Fuzzing 18 Stateful fuzzing – Take a snapshot of the state of the application after each step that is replayed – Restored to the snapshot Application feedback – Use the mapping of URL to functions to reuse user input for undetected pages

Implementation details (1) Require to be instrumented – To capture and restore objects – To extract the mappings between URLs and functions Need MVC-based web development framework – Used Django based on python 19

Implementation details (2) Capturing web requests – Log all incoming requests and mappings b/w URL and functions through the URL dispatcher class Replaying use cases – Analyze a page and find the form elements Capturing object manipulations – Attach event listeners that wait for signals that are raised when an object is created, updated, or deleted Fuzzer component – Use existing fuzzer component 20

Evaluation 3 publicly available, real-world web applications based on Django – Blogging application – Forum software – Web shop simple web spider and 3 existing web vulnerability scanners – Burp Spider – W3af spider – Acunetix Web Vulnerability Scanner 21

Test methodology Way to assess the effectiveness or coverage – Number of vulnerabilities – Number of locations that a scanner visits  Number of vulnerable injection points  Number of created different database objects (for detecting stored XSS) Only tested for XSS vulnerabilities 22

Experimental results 23 1) Blogging application 2) Forum software 3) Web shop

1) Blogging application 24

1) Blogging application Scanner effectiveness for blog application 25

2) Forum application 26 Scanner effectiveness for forum application

3) Online shopping application 27 Scanner effectiveness for online shopping application

3) Online shopping application Object creation statistics (Acunetix vs. this ) 28

Experimental results 29 Proposed fuzzing techniques consistently find more of bugs than other scanners Carry out meaningful interactions with the web applications, visiting many locations and creating a large variety of database objects Stateful fuzzing becomes useful when tested app is more complex and sensitive to the fuzzing steps

Related work Black box scanner – SecuBat - coverage limitation General vulnerability detection tool – Nikto, Nessus - use known velnerability DB Automated test case generator – Random test case generation - depth limitation 30

Summary The core of system is a black-box vulnerability scanner Proposed approaches to allow the scanner to reach deeper into application – Guided fuzzing – Extended, guided fuzzing – Stateful fuzzing This approach can identify more vulnerabilities than several open-source and commercial web vulnerability scanners 31

Thank you 32