Introduction to Web Application Security

Slides:



Advertisements
Similar presentations
Webgoat.
Advertisements

High level QA strategy for SQL Server enforcer
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.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Creating Stronger, Safer, Web Facing Code JPL IT Security Mary Rivera June 17, 2011.
WebGoat & WebScarab “What is computer security for $1000 Alex?”
Application Security: What Does it Take to Build and Test a “Trusted” App? John Dickson, CISSP Denim Group.
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.
Information Networking Security and Assurance Lab National Chung Cheng University 1 Top Vulnerabilities in Web Applications (I) Unvalidated Input:  Information.
Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November.
ASP.NET 2.0 Chapter 6 Securing the ASP.NET Application.
CROSS SITE SCRIPTING..! (XSS). Overview What is XSS? Types of XSS Real world Example Impact of XSS How to protect against XSS?
Handling Security Threats in Kentico CMS Karol Jarkovsky Sr. Solution Architect Kentico Software
SiteLock Internet Security: Big Threats for Small Business.
Presenter Deddie Tjahjono.  Introduction  Website Application Layer  Why Web Application Security  Web Apps Security Scanner  About  Feature  How.
Web Application Vulnerabilities Checklist. EC-Council Parameter Checklist  URL request  URL encoding  Query string  Header  Cookie  Form field 
D ATABASE S ECURITY Proposed by Abdulrahman Aldekhelallah University of Scranton – CS521 Spring2015.
Introduction to Application Penetration Testing
Workshop 3 Web Application Security Li Weichao March
Cosc 4765 Server side Web security. Web security issues From Cenzic Vulnerability report
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.
+ Websites Vulnerabilities. + Content Expand of The Internet Use of the Internet Examples Importance of the Internet How to find Security Vulnerabilities.
WEB SECURITY WEEK 3 Computer Security Group University of Texas at Dallas.
CSCI 6962: Server-side Design and Programming Secure Web Programming.
Ladd Van Tol Senior Software Engineer Security on the Web Part One - Vulnerabilities.
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.
November 13, 2008 Ohio Information Security Forum Attack Surface of Web Applications 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.
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.
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
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
SEC835 Runtime authentication Secure session management Secure use of cryptomaterials.
The attacks ● XSS – type 1: non-persistent – type 2: persistent – Advanced: other keywords (, prompt()) or other technologies such as Flash.
CIT 380: Securing Computer SystemsSlide #1 CIT 380: Securing Computer Systems Web Security.
October 3, 2008IMI Security Symposium Application Security through a Hacker’s Eyes James Walden Northern Kentucky University
Web Applications Testing By Jamie Rougvie Supported by.
Building Secure Web Applications With ASP.Net MVC.
By Sean Rose and Erik Hazzard.  SQL Injection is a technique that exploits security weaknesses of the database layer of an application in order to gain.
Lecture 16 Page 1 CS 236 Online Web Security CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 9 1COMP9321, 15s2, Week.
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.
Database Security Cmpe 226 Fall 2015 By Akanksha Jain Jerry Mengyuan Zheng.
Mr. Justin “JET” Turner CSCI 3000 – Fall 2015 CRN Section A – TR 9:30-10:45 CRN – Section B – TR 5:30-6:45.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation This work is available under the Creative Commons SA 2.5 license The OWASP Foundation OWASP Denver February 2012.
Web Application (In)security Note: Unless noted differently, all scanned figures were from the textbook, Stuttard & Pinto, 2011.
Web Applications on the battlefield Alain Abou Tass.
Page 1 Ethical Hacking by Douglas Williams. Page 2 Intro Attackers can potentially use many different paths through your application to do harm to your.
COMP9321 Web Application Engineering Semester 2, 2017
Web Application Security
Building Secure ColdFusion Applications
Web Application Vulnerabilities
Internet Self Defense 101 Rex Booth.
An Introduction to Web Application Security
Web Application Vulnerabilities, Detection Mechanisms, and Defenses
Chapter 7: Identifying Advanced Attacks
TOPIC: Web Security (Part-4)
World Wide Web policy.
E-commerce Application Security
CSC 495/583 Topics of Software Security Intro to Web Security
Lecture 2 - SQL Injection
WWW安全 國立暨南國際大學 資訊管理學系 陳彥錚.
Presentation transcript:

Introduction to Web Application Security Rex Booth, CISSP, PMP Senior Manager, Grant Thornton LLP

Introduction: Rex Booth Senior Manager at Grant Thornton 10+ years of IT experience Former web application developer Leads cybersecurity group for Grant Thornton's public sector practice Experience with information security from a variety of perspectives including developer, auditor, and ISSO

Agenda Why target web applications? Web application attack surface overview Attack examples Client layer attacks Application layer attacks Data layer attacks 3rd party trust attacks Live Demonstration Best Practices and Remediation resources Questions

Why target web applications? Incentives Valuable targets Financial Competitive advantage (corporate or national) Force multiplier Reputation / Prestige Absence of effective deterrents Soft targets: Weak or poorly implemented security Low cost of entry: cheap and easy access “Wild West” mentality regarding probability of detection, capture and punishment

Agenda Why target web applications? Web application attack surface overview Attack examples Client layer attacks Application layer attacks Data layer attacks 3rd party trust attacks Live Demonstration Best Practices and Remediation resources Questions

Web application attack surface 3rd Party Trusts Client layer: HTML, JavaScript, Flash, etc Application layer: Business logic (.Net, Java, etc) Data layer: Access components, RDBMS Client layer: Code and functionality executed on the client-side Various vulnerabilities Two key points: Never trust client-supplied data Don’t introduce vulnerabilities by trying to offload cycles from the server to the client

Web application attack surface 3rd Party Trusts Client layer: HTML, JavaScript, Flash, etc Application layer: Business logic (.Net, Java, etc) Data layer: Access components, RDBMS Application layer: Expression and capture of business rules and business policy logic in code; Workflows based on the ordered tasks of passing documents or data from one participant (a person or a software system) to another; Do those expressions introduce vulnerabilities? Attacks on specific technology and poor implementation

Web application attack surface 3rd Party Trusts Client layer: HTML, JavaScript, Flash, etc Application layer: Business logic (.Net, Java, etc) Data layer: Access components, RDBMS Data layer: Likely the most valuable component of your application to your organization Less focused on code and logic, more focused on good implementation and maintenance, proper technology

Web application attack surface 3rd Party Trusts Client layer: HTML, JavaScript, Flash, etc Application layer: Business logic (.Net, Java, etc) Data layer: Access components, RDBMS 3rd Party Trusts: Critical to maintain awareness of system interactions Federal Sector C&A Interconnection Agreements Potential to affect all layers of the application Repeat the attack surfaces at the client, application and data layers for each 3rd party trust

Agenda Why target web applications? Web application attack surface overview Attack examples Client layer attacks Application layer attacks Data layer attacks 3rd party trust attacks Live Demonstration Best Practices and Remediation resources Questions

Injection Attacks SQL injection is the most common web attack An attacker inserts commands that are used to dynamically construct SQL queries Attacker may be able to view or modify any data in a database Severity can be equivalent to a full database compromise Other injections include XML, LDAP, code injection, remote file inclusions Any action that takes input from the user and uses it in a query or function

SQL Injection Scenario You wish to edit your credit card number in your account profile on http://www.shoppingsite.com To verify your identity, the site asks for the last 4 digits of your credit card The application then passes your input to the following query SELECT * FROM credit_cards WHERE digits = ‘your_input’

SQL Injection Scenario What if the attacker enters 1234’ OR ‘1’ = ‘1 The full query then becomes SELECT * FROM credit_cards WHERE digits = ‘1234’ OR ‘1’ = ‘1’; This query will always return true and, therefore, will return every card in the database.

Cross Site Scripting (XSS) Affects the client web browser. Scripting code from URL or HTML Form gets rendered in the page sent by the server. 2 types of XSS Persistent / Stored: attack code gets stored in the application data store and affects all users who visit the page. Non-Persistent / Reflected: attack code does not get stored and can only affect 1 user at a time. One of the most prolific and dangerous vulnerabilities on the web.

Cross Site Scripting (XSS) Scenario What if we change “shawn” to: “><script>alert(document.cookie)</script>

Cross Site Scripting (XSS) Scenario

Cross Site Request Forgery (CSRF) Affects the client browser. The vulnerability allows an attacker to force the browser to fraudulently execute application functionality. Leverages the user’s authenticated session on the target application. Not *really* a vulnerability, rather an exploit of expected functionality.

Authentication and Authorization Lack of authentication / authorization. Unauthorized data access. Unauthorized system functionality access. Predictable session identifiers. Session Fixation. Session Replay. Brute forcing of credentials.

Session Fixation Example Session Fixation occurs when a session identifier is not refreshed after successful authentication The following sequence describes an application vulnerable to Session Fixation: When a user browses to www.whatever.com, they receive Cookie: my_cookie=abcdefg After logging in, the application elevates my_cookie=abcdefg from unauthenticated to authenticated status Why is this a problem? The initial value may have been sent over an unencrypted channel Attacker could use XSS to set a known value in the target browser The application may accept any value prior to authentication, making this even easier for an attacker

Business Logic Flaws Flaw in the design and/or implementation of the project design. Booking a ticket on a web application without paying. Registering an account without completing all required steps. Apply the same coupon/discount multiple times on the same order. Account lockout on auction sites. Setting your own pricing on a product. No way to detect this type of vulnerability using automated tools.

Host and 3rd Party Code Keeping up with patches Patch management 3rd party code dependency updates Host security Unused network services Password Policy Brute forcing Logging Hidden/Old/Unreferenced files Building a good relationship with SysAdmins

Agenda Why target web applications? Web application attack surface overview Attack examples Client layer attacks Application layer attacks Data layer attacks 3rd party trust attacks Live Demonstration Best Practices and Remediation resources Questions

Agenda Why target web applications? Web application attack surface overview Attack examples Client layer attacks Application layer attacks Data layer attacks 3rd party trust attacks Live Demonstration Best Practices and Remediation resources Questions

Best Practices Summary Input validation and output encoding Strong authentication and password management Effective access controls Safe error handling and meaningful logging Protection of data at rest and in motion Proper system and database configuration See the OWASP Secure Coding Practices Quick Reference Guide for more information

Remediation Resources Incorporating security into the SDLC https://buildsecurityin.us-cert.gov http://www.owasp.org http://www.webappsec.org/ Post-deployment remediation Two basic approaches: fix the underlying problem or get in between the threat and the asset The latter, including web application firewalls, are not a panacea, but can be useful

Questions Ask now or contact via email: Rex.Booth@us.gt.com