October 3, 2008IMI Security Symposium Application Security through a Hacker’s Eyes James Walden Northern Kentucky University

Slides:



Advertisements
Similar presentations
Nick Feamster CS 6262 Spring 2009
Advertisements

Webgoat.
HI-TEC 2011 SQL Injection. Client’s Browser HTTP or HTTPS Web Server Apache or IIS HTML Forms CGI Scripts Database SQL Server or Oracle or MySQL ODBC.
SEC835 OWASP Top Ten Project.
WebGoat & WebScarab “What is computer security for $1000 Alex?”
COMP 321 Week 12. Overview Web Application Security  Authentication  Authorization  Confidentiality Cross-Site Scripting Lab 12-1 Introduction.
Vulnerability Assessment Course Applications Assessment.
By Brian Vees.  SQL Injection  Username Enumeration  Cross Site Scripting (XSS)  Remote Code Execution  String Formatting Vulnerabilities.
It’s always better live. MSDN Events Security Best Practices Part 2 of 2 Reducing Vulnerabilities using Visual Studio 2008.
James Walden, Maureen Doyle Northern Kentucky University Students: Andrew Plunkett, Rob Lenhof, John Murray.
Chapter 9 Web Applications. Web Applications are public and available to the entire world. Easy access to the application means also easy access for malicious.
Information Networking Security and Assurance Lab National Chung Cheng University The Ten Most Critical Web Application Security Vulnerabilities Ryan J.W.
It’s always better live. MSDN Events Securing Web Applications Part 1 of 2 Understanding Threats and Attacks.
Payment Card Industry (PCI) Data Security Standard
Injection Attacks by Example SQL Injection and XSS Adam Forsythe Thomas Hollingsworth.
Handling Security Threats in Kentico CMS Karol Jarkovsky Sr. Solution Architect Kentico Software
Web Application Vulnerabilities Checklist. EC-Council Parameter Checklist  URL request  URL encoding  Query string  Header  Cookie  Form field 
Introduction to InfoSec – Recitation 10 Nir Krakowski (nirkrako at post.tau.ac.il) Itamar Gilad (itamargi at post.tau.ac.il)
W3af LUCA ALEXANDRA ADELA – MISS 1. w3af  Web Application Attack and Audit Framework  Secures web applications by finding and exploiting web application.
Web Security Overview Lohika ASC team 2009
OWASP Zed Attack Proxy Project Lead
Cosc 4765 Server side Web security. Web security issues From Cenzic Vulnerability report
HTTP and Server Security James Walden Northern Kentucky University.
Cross-Site Scripting Vulnerabilities Adam Doupé 11/24/2014.
Security.NET Chapter 1. How Do Attacks Occur? Stages of attack Examples of attacker actions 1. FootprintRuns a port scan on the firewall 2. PenetrationExploits.
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.
CSCI 6962: Server-side Design and Programming Secure Web Programming.
Lecture 14 – Web Security SFDV3011 – Advanced Web Development 1.
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.
Chapter 9 Web Applications. Web Applications are public and available to the entire world. Easy access to the application means also easy access for malicious.
Penetration Testing James Walden Northern Kentucky University.
CSC 2720 Building Web Applications Web Application Security.
November 13, 2008 Ohio Information Security Forum Attack Surface of Web Applications James Walden Northern Kentucky University
Web 2.0 Security James Walden Northern Kentucky University.
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.
Chapter 2. Core Defense Mechanisms. Fundamental security problem All user input is untrusted.
Cross-Site Attacks James Walden Northern Kentucky University.
Web Application Security ECE ECE Internetwork Security What is a Web Application? An application generally comprised of a collection of scripts.
Top Five Web Application Vulnerabilities Vebjørn Moen Selmersenteret/NoWires.org Norsk Kryptoseminar Trondheim
SIGITE 2008: Oct Integrating Web Application Security into the IT Curriculum James Walden Northern Kentucky University.
CIT 380: Securing Computer SystemsSlide #1 CIT 380: Securing Computer Systems Web Security.
Security Attacks CS 795. Buffer Overflow Problem Buffer overflows can be triggered by inputs that are designed to execute code, or alter the way the program.
SQL INJECTIONS Presented By: Eloy Viteri. What is SQL Injection An SQL injection attack is executed when a web page allows users to enter text into a.
Web Applications Testing By Jamie Rougvie Supported by.
Web Security SQL Injection, XSS, CSRF, Parameter Tampering, DoS Attacks, Session Hijacking SoftUni Team Technical Trainers Software University
Web Security Lesson Summary ●Overview of Web and security vulnerabilities ●Cross Site Scripting ●Cross Site Request Forgery ●SQL Injection.
OWASP Building Secure Web Applications And the OWASP top 10 vulnerabilities.
Web2.0 Secure Development Practice Bruce Xia
Mr. Justin “JET” Turner CSCI 3000 – Fall 2015 CRN Section A – TR 9:30-10:45 CRN – Section B – TR 5:30-6:45.
Web Application (In)security Note: Unless noted differently, all scanned figures were from the textbook, Stuttard & Pinto, 2011.
Introduction of XSS:-- Cross-Site Scripting (XSS) attacks are a type of injection, in which malicious scripts are injected into otherwise benign and trusted.
Intro to Web Application Security. iHostCodex Web Services - CEO Project-AG – CoFounder OWASP Panay -Chapter Leader -Web Application Pentester -Ethical.
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
ASP.NET 2.0 Security Alex Mackman CM Group Ltd
SlideSet #20: Input Validation and Cross-site Scripting Attacks (XSS) SY306 Web and Databases for Cyber Operations.
UKUUG Linux 2008 Introduction to Web Application Security Flaws Jake Edge LWN.net URL for slides:
Building Secure ColdFusion Applications
Web Application Vulnerabilities
Web Application Vulnerabilities, Detection Mechanisms, and Defenses
Chapter 7: Identifying Advanced Attacks
TOPIC: Web Security (Part-4)
World Wide Web policy.
SQL Injection.
What is REST API ? A REST (Representational State Transfer) Server simply provides access to resources and the REST client accesses and presents the.
Web Systems Development (CSC-215)
Exploring DOM-Based Cross Site Attacks
Presentation transcript:

October 3, 2008IMI Security Symposium Application Security through a Hacker’s Eyes James Walden Northern Kentucky University

October 3, 2008IMI Security Symposium Why Do Hackers Target Web Apps?

October 3, 2008IMI Security Symposium Attack Surface A system’s attack surface consists of all of the ways an adversary can enter the system. Merchant’s Bank Building

October 3, 2008IMI Security Symposium Defender’s View of Attack Surface firewall VPN wireless web server

October 3, 2008IMI Security Symposium Firewalls don’t protect Web Apps Firewall Port 80 HTTP Traffic Web Client Web Server Application Database Server telnet ftp

October 3, 2008IMI Security Symposium SSL won’t stop injection attacks, XSS Firewall Port 443 HTTPS Traffic Web Client Web Server Application Database Server telnet ftp

October 3, 2008IMI Security Symposium Revised View of Attack Surface firewall VPN wireless external web server external web apps database

October 3, 2008IMI Security Symposium Intranet Security Assumptions Since the firewall protects you  Patches don’t have to be up to date.  Passwords don’t have to be strong.  There’s no need to be careful when you code.  There’s no need to audit your source code.  There’s no need to run penetration tests. But do your users have web browsers?

October 3, 2008IMI Security Symposium Javascript Malware controls Clients Firewall Port 80 HTTP Traffic Web Server (Javascript malware) Web Client telnet ftp Intranet Main Server Wiki Group Server

October 3, 2008IMI Security Symposium Java can see your real IP address behind NAT router. Javascript can scan your intranet behind NAT router.

October 3, 2008IMI Security Symposium Sources of Javascript Malware 1.Evil web site owner inserts in page. 2.Attacker inserts malware into defaced page. 3.Attacker inserts malware into a public comment or forum post (stored XSS.) 4.Attacker creates link that causes web site to echo malware to user (reflected XSS.)

October 3, 2008IMI Security Symposium Re-revised View of Attack Surface firewall VPN wireless external web server external web apps database internal web servers internal web apps

October 3, 2008IMI Security Symposium Web Applications firewall VPN wireless external web server external web apps database internal web servers internal web apps

October 3, 2008IMI Security Symposium Web Application Vulnerabilities Input-based Security Problems –Injection Flaws –Insecure Remote File Inclusion –Unvalidated Input Authentication and Authorization –Authentication –Access Control –Cross-Site Attacks Other Bugs –Error Handling and Information Leakage –Insecure Storage –Insecure Communications

October 3, 2008IMI Security Symposium SQL Injection 1.App sends form to user. 2.Attacker submits form with SQL exploit data. 3.Application builds string with exploit data. 4.Application sends SQL query to DB. 5.DB executes query, including exploit, sends data back to application. 6.Application returns data to user. Attacker Web Server DB Server Firewall User Pass ‘ or 1=1--

October 3, 2008IMI Security Symposium Cross-Site Scripting 1. Login 2. Cookie Web Server 3. XSS Attack Attacker User 4. User clicks on XSS link. 5. XSS URL 7. Browser runs injected code. Evil site saves ID. 8. Attacker hijacks user session. 6. Page with injected code.

October 3, 2008IMI Security Symposium Web Application Attack Surface form inputs HTTP headers URLs cookies

October 3, 2008IMI Security Symposium Traditional Web Applications HTTP Request (form submission) HTTP Response (new web page) Server processingUser waits HTTP Request (form submission) User interaction HTTP Response (new web page) User waits Server processing

October 3, 2008IMI Security Symposium AJAX Asynchronous Javascript and XML  User interacts with client-side Javascript.  Javascript makes asynchronous requests to server for data.  Continues to allow user to interact with application.  Updates when receives encoded data from server.

October 3, 2008IMI Security Symposium AJAX Applications Server processing User interaction Server processing Client-side Code HTTP request (asynchronous) partial update HTTP Response (data) partial updateHTTP request (asynchronous) HTTP Response (data) HTTP request (asynchronous) HTTP Response (data) partial update User interaction Server processing

October 3, 2008IMI Security Symposium Example Client-side Code var auth = checkPassword(user, pass); if (auth == false) { alert(‘Authentication failed.’); return; } var itemPrice = getPrice(itemID); debitAccount(user, itemPrice); downloadItem(itemID);

October 3, 2008IMI Security Symposium AJAX Application Attack Surface form inputs HTTP headers URLs cookies client-side code client-side state server API client-side data transforms

October 3, 2008IMI Security Symposium Drilling Down: Mapping the Application 1.Visible Content 1.Spider the site. 2.Browse site while using intercepting proxy. 2.Hidden Content 1.Unlinked sections of site. 2.Backup copies of live files. 3.Configuration and include files. 4.Source code. 5.Log files.

October 3, 2008IMI Security Symposium Entry Points For each resource found, identify inputs:  Additional path parameters  Query string  POST parameters  Cookies  HTTP headers

October 3, 2008IMI Security Symposium Application Feature Vulnerability Map Database interaction Displays user-supplied data Error messages File upload/download Login SQL injection. Cross-site scripting. Information leakage. Path traversal. Authentication, session management, access control flaws.

October 3, 2008IMI Security Symposium Code Auditing Why?  Find vulnerabilities faster than testing.  Find different vulnerabilities than testing. What?  Identify modules of high business risk.  Use static analysis to find common vulnerabilities.  Manually review code + static analysis results. Who?  Developers, security team, outside auditors. When?  On a regular basis, at least once before release.

October 3, 2008IMI Security Symposium Static Analysis Automated assistance for code auditing Speed: review code faster than humans can Accuracy: hundreds of secure coding rules Results Tools Coverity FindBugs Fortify Klocwork Ounce Labs

October 3, 2008IMI Security Symposium Fuzz Testing Fuzz testing consists of  Sending unexpected input.  Monitoring for exceptions.

October 3, 2008IMI Security Symposium Monitoring for Exceptions Application mapping  Response code  Response size  Presence of string “not authorized” Password guessing  Response code  Response size  Presence of string “login incorrect”

October 3, 2008IMI Security Symposium Prevention Guidelines 1.Use a standard, secure authentication scheme. 2.Check access control on every transaction. 3.Avoid using interpreters where possible. 4.Don’t leak sensitive information in error pages. 5.Encrypt sensitive data in transit and on disk. 6.Encode user data in output. 7.Don’t trust any data from the client. 8.Validate all input.

October 3, 2008IMI Security Symposium Input Validation Blacklist: reject known bad input  Reject input matching list of bad strings/patterns.  Accept all other input.  Vulnerable to encoding attacks. Whitelist: accept known good input  Accept input matching list of good strings/patterns.  Reject all other input.  Highly effective, but not always feasible.

October 3, 2008IMI Security Symposium firewall VPN wireless external web server external web apps database internal web servers internal web apps form inputs HTTP headers URLs cookies client-side code client-side state server API client-side data transforms is nearly fractal. 1.Visible Content 1.Linked URLs. 2.Authenticated URLs. 2.Hidden Content 1.Unlinked sections of site. 2.Backup copies of live files. 3.Configuration/include files. 4.Source code. 5.Log files. A site’s attack surface