Web Application Security 101 Steve Carter (special thanks to SPI Dynamics)

Slides:



Advertisements
Similar presentations
Lecture plan Information retrieval (from week 11)
Advertisements

Creating Stronger, Safer, Web Facing Code JPL IT Security Mary Rivera June 17, 2011.
1 Web Servers / Deployment Alastair Dawes Original by Bhupinder Reehal.
Application Security: What Does it Take to Build and Test a “Trusted” App? John Dickson, CISSP Denim Group.
CS320 Web and Internet Programming Handling HTTP Requests Chengyu Sun California State University, Los Angeles.
Web Application Security “The Forgotten Layer” Paul Klahn, CISSP November 21, 2002.
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
INTERNET DATABASE. Internet and E-commerce Internet – a worldwide collection of interconnected computer network Internet – a worldwide collection of interconnected.
Using Internet Information Server And Microsoft ® Internet Explorer To Implement Security On The Intranet HTTP.
Introduction to Web Interface Technology (CSE2030)
Definitions, Definitions, Definitions Lead to Understanding.
ASP.NET 2.0 Chapter 6 Securing the ASP.NET Application.
Jonas Thomsen, Ph.d. student Computer Science University of Aarhus Best Practices and Techniques for Building Secure Microsoft.
Web Application Vulnerabilities Checklist. EC-Council Parameter Checklist  URL request  URL encoding  Query string  Header  Cookie  Form field 
INTRODUCTION TO WEB DATABASE PROGRAMMING
Web Hacking 1. Overview Why web HTTP Protocol HTTP Attacks 2.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Web Servers1-1 Web Servers Xingquan (Hill) Zhu
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.
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.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
+ Websites Vulnerabilities. + Content Expand of The Internet Use of the Internet Examples Importance of the Internet How to find Security Vulnerabilities.
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.
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
Penetration Testing James Walden Northern Kentucky University.
1 Web Server Administration Chapter 1 The Basics of Server and Web Server Administration.
Copyright (c) 2010, Dr. Kuanchin Chen1 The Client-Server Architecture of the WWW Dr. Kuanchin Chen.
Web Browser Security Prepared By Mohammed EL-Batta Mohammed Soubih Supervised By Eng. Eman alajrami Explain Date 10. may University of Palestine.
November 13, 2008 Ohio Information Security Forum Attack Surface of Web Applications James Walden Northern Kentucky University
IST 210 Web Application Security. IST 210 Introduction Security is a process of authenticating users and controlling what a user can see or do.
BLENDED ATTACKS EXPLOITS, VULNERABILITIES AND BUFFER-OVERFLOW TECHNIQUES IN COMPUTER VIRUSES By: Eric Chien and Peter Szor Presented by: Jesus Morales.
Security Testing Case Study 360logica Software Testing Services.
OSI and TCP/IP Models And Some Vulnerabilities AfNOG th May 2011 – 10 th June 2011 Tanzania By Marcus K. G. Adomey.
Attacking Applications: SQL Injection & Buffer Overflows.
Lightning Talks Presented at Better Software 2005 By Matt Heusser … and the gang
1 Internet Browsing Vulnerabilities and Security ECE4112 Final Lab Ye Yan Frank Park Scott Kim Neil Joshi.
CS320 Web and Internet Programming Handling HTTP Requests Chengyu Sun California State University, Los Angeles.
Top Five Web Application Vulnerabilities Vebjørn Moen Selmersenteret/NoWires.org Norsk Kryptoseminar Trondheim
1 Welcome to CSC 301 Web Programming Charles Frank.
Grid Chemistry System Architecture Overview Akylbek Zhumabayev.
HTTP1 Hypertext Transfer Protocol (HTTP) After this lecture, you should be able to:  Know how Web Browsers and Web Servers communicate via HTTP Protocol.
October 3, 2008IMI Security Symposium Application Security through a Hacker’s Eyes James Walden Northern Kentucky University
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
Microsoft ISA Server 2000 Presented by Ricardo Diaz Ryan Fansa.
Chapter 12: How Private are Web Interactions?. Why we care? How much of your personal info was released to the Internet each time you view a Web page?
Database Security Cmpe 226 Fall 2015 By Akanksha Jain Jerry Mengyuan Zheng.
Summer 2007 Florida Atlantic University Department of Computer Science & Engineering COP 4814 – Web Services Dr. Roy Levow Part 1 – Introducing Ajax.
WEB SERVER SOFTWARE FEATURE SETS
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Overview of Servlets and JSP
Web Application (In)security Note: Unless noted differently, all scanned figures were from the textbook, Stuttard & Pinto, 2011.
PHP Security Ryan Dunn Jason Pack. Outline PHP Overview PHP Overview Common Security Issues Common Security Issues Advanced Security Issues Advanced Security.
LURP Details. LURP Lab Details  1.Given a GET … call a proxy CGI script in the same way you would for a normal CGI request  2.This UDP perl.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
1 Chapter 22 World Wide Web (HTTP) Chapter 22 World Wide Web (HTTP) Mi-Jung Choi Dept. of Computer Science and Engineering
ASP.NET 2.0 Security Alex Mackman CM Group Ltd
Carrie Estes Collin Donaldson.  Zero day attacks  “zero day”  Web application attacks  Signing up for a class  Hardening the web server  Enhancing.
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
E-Business Infrastructure PRESENTED BY IKA NOVITA DEWI, MCS.
# 66.
Chapter 7: Identifying Advanced Attacks
Web Development Web Servers.
Lecture-8 Instructor : Mazhar Hussain
Server Concepts Dr. Charles W. Kann.
Website Security Testing: Why Business Need It Very Badly.
Web Servers / Deployment
Web Servers (IIS and Apache)
Web Application Development Using PHP
Presentation transcript:

Web Application Security 101 Steve Carter (special thanks to SPI Dynamics)

Overview Background Web app vulnerabilities Securing web apps

Background

HTTP Request Response Server ( ) Port: 80 Client PC ( ) Hypertext Transfer Protocol “Hypertext Transfer Protocol (HTTP) is a communications protocol for the transfer of information on intranets and the World Wide Web. Its original purpose was to provide a way to publish and retrieve hypertext pages over the Internet.”

HTTP Request - GET Form data encoded in the URL Most common HTTP method used on the web Should be used to retrieve information, not for actions that have side-effects

HTTP Request - GET GET HTTP/1.1http:// Host: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: ) Gecko/ Firefox/ Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*; q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO ,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer:

HTTP Request - GET 26%2CGGLG%3Aen&q=http%3A%2F%2Fwww.google.com%2Fsearch%3Fhl%3Den%26lr%3D%26c2cof f%3D1%26rls%3DGGLG%252CGGLG%253A %252CGGLG%253Aen%26q%3Dhttp%253A%252F%252Fwww.google.com%252Fsearch%253Fhl%2 53Den%2526lr%253D%2526c2coff%253D1%2526rls%253DGGLG%25252CGGLG%25253A %25252CGGLG%25253Aen%2526q%253Dhttp%25253A%25252F%25252Fwww.google.com%25252F search%25253Fsourceid%25253Dnavclient%252526ie%25253DUTF- 8%252526rls%25253DGGLG%25252CGGLG%25253A %25252CGGLG%25253Aen%252526q%25253Dhttp% A% F% Fwww% Egoogle% Ecom% Fsearch% Fsourceid% Dnavclient% ie% DUTF% D8% rls% DGGLG% CGGLG% A2005% D26% CGGLG% Aen% q% Dhttp% A% F% Fuk2% Emultimap% Ecom% Fmap% Fbrowse% Ecgi% Fclient% Dpublic% GridE% D% D0% E12640% GridN% D51% E50860% lon% D% D0% E12640% lat% D51% E50860% se arch% Fresult% DLondon% CGreater% London% db% Dfreegaz% cidr% Fclient% Dnone% lan g% D% place% DLondon% CGreater% BLondon% pc% D% advanced% D% client% Dpub lic% addr2% D% quicksearch% DLondon% addr3 % D% scale% D100000% addr1% D%2526btnG% 253DSearch%26btnG%3DSearch&btnG=Search

HTTP Requests - POST Data is included in the body of the request. Should be used for any action that has side-effects Storing/updating data, ordering a product, etc…

HTTP Requests - POST POST HTTP/1.1http:// Host: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: ) Gecko/ Firefox/ Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO ,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: catid=1

Famous quote of the day “Every program has at least two purposes: the one for which it was written, and another for which it wasn't.” -Alan J. Perlis

GET v. POST Security There information contained in parameters can tell a user a lot about how your application works GET parameters are easily visible in the address bar POST parameters are hidden from the average user Users can still view source code Users can still view the packets Users can still intercept & modify web requests

Web Sites Browser  No applications  Static pages  Hard coded links Web Server

Web Applications Browser Web Servers Presentation Layer Media Store Very complex architectures, multiple platforms, multiple protocols Database Server Customer Identification Access Controls Transaction Information Core Business Data Wireless Web Services Application Server Business Logic Content Services Network HTTP Web Application

Web Applications Breach the Perimeter InternetDMZ Trusted Inside Corporate Inside HTTP(S) Allows HTTP port 80 Allows HTTPS port 443 Firewall only allows applications on the web server to talk to application server. Firewall only allows application server to talk to database server. IIS SunOne Apache ASP.NET WebSphere Java SQL Oracle DB2 Browser

“As an Application Developer, I can build great features and functions while meeting deadlines, but I don’t know how to develop my web application with security as a feature.” The Web Application Security Gap “As a Network Security Professional, I don’t know how my companies web applications are supposed to work so I deploy a protective solution…but don’t know if it’s protecting what it’s supposed to.” Application Developers and QA Professionals Don’t Know Security Why Web Application Vulnerabilities Occur Security Professionals Don’t Know The Applications

Web Application Vulnerabilities “If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.” -Weinberg's Second Law

Technical Vulnerabilities Result of insecure programming techniques Mitigation requires code changes Detectable by scanners alert(‘p0wned’) &price= Logical Vulnerabilities Result of insecure program logic Most often to due to poor decisions regarding trust Mitigation often requires design/architecture changes Detection often requires humans to understand the context Web Application Vulnerabilities

Platform Administration Application Known Vulnerabilities Extension Checking Common File Checks Data Extension Checking Backup Checking Directory Enumeration Path Truncation Hidden Web Paths Forceful Browsing Application Mapping Cookie Manipulation Custom Application Scripting Parameter Manipulation Reverse Directory Transversal Brute Force Application Mapping Cookie Poisoning/Theft Buffer Overflow SQL Injection Cross-site scripting Web application vulnerabilities occur in multiple areas.

Platform Known Vulnerabilities Platform: Known vulnerabilities can be exploited immediately with a minimum amount of skill or experience – “ script kiddies ” Most easily defendable of all web vulnerabilities MUST have streamlined patching procedures Web Application Vulnerabilities

Administration Extension Checking Common File Checks Data Extension Checking Backup Checking Directory Enumeration Path Truncation Hidden Web Paths Forceful Browsing Administration: Less easily corrected than known issues Require increased awareness More than just configuration, must be aware of security flaws in actual content Remnant files can reveal applications and versions in use Backup files can reveal source code and database connection strings Web Application Vulnerabilities

Administration Application Programming: Common coding techniques do not necessarily include security Input is assumed to be valid, but not tested Unexamined input from a browser can inject scripts into page for replay against later visitors Unhandled error messages reveal application and database structures Unchecked database calls can be ‘ piggybacked ’ with a hacker ’ s own database call, giving direct access to business data through a web browser Application Application Mapping Cookie Manipulation Custom Application Scripting Parameter Manipulation Reverse Directory Transversal Brute Force Application Mapping Cookie Poisoning/Theft Buffer Overflow SQL Injection Cross-site scripting Web Application Vulnerabilities

How to Secure Web Applications Incorporate security into the lifecycle Apply information security principles to all software development efforts Educate Issue awareness, Training, etc…

How to Secure Web Applications Incorporating security into lifecycle Integrate security into application requirements Including information security professionals in software architecture/design review Security APIs & libraries (e.g. ESAPI, Validator, etc.) when possible Threat modeling Web application vulnerability assessment tools

How to Secure Web Applications Educate Developers – Software security best practices Testers – Methods for identifying vulnerabilities Security Professionals – Software development, Software coding best practices Executives, System Owners, etc. – Understanding the risk and why they should be concerned

Questions?