OWASP Top 10 from a developer’s perspective John Wilander, OWASP/Omegapoint, IBWAS’10.

Slides:



Advertisements
Similar presentations
Webgoat.
Advertisements

OWASP’s Ten Most Critical Web Application Security Vulnerabilities
The OWASP Foundation Web Application Security Host Apps Firewall Host Apps Database Host Web serverApp serverDB server Securing the.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Don’t Teach Developers Security Caleb Sima Armorize Technologies.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Don’t get Stung (An introduction to the OWASP Top Ten Project) Barry Dorrans Microsoft Information Security Tools NEW AND IMPROVED!
SEC835 OWASP Top Ten Project.
The OWASP Foundation OWASP Top Kuai Hinojosa Software Security Consultant at Cigital OWASP Global Education Committee OWASP.
Creating Stronger, Safer, Web Facing Code JPL IT Security Mary Rivera June 17, 2011.
A Demo of and Preventing XSS in.NET Applications.
It’s always better live. MSDN Events Security Best Practices Part 2 of 2 Reducing Vulnerabilities using Visual Studio 2008.
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.
Information Networking Security and Assurance Lab National Chung Cheng University 1 Top Vulnerabilities in Web Applications (I) Unvalidated Input:  Information.
How the web works: HTTP and CGI explained
Solving Real-World Problems with an Enterprise Security API (ESAPI) Chris Schmidt ESAPI Project Manager ESAPI4JS Project Owner Application Security Engineer.
Web Application Vulnerabilities Checklist. EC-Council Parameter Checklist  URL request  URL encoding  Query string  Header  Cookie  Form field 
Glass Box Testing: Thinking Inside the Box Omri Weisman Manager, Security Research Group IBM Rational.
Workshop 3 Web Application Security Li Weichao March
OWASP Zed Attack Proxy Project Lead
HTTP and Server Security James Walden Northern Kentucky University.
Cross-Site Scripting Vulnerabilities Adam Doupé 11/24/2014.
Twin Cities Java User Group Introduction to Writing Secure Web Applications March 9th, 2009 Jason Dean Minnesota Department of Health.
Origins, Cookies and Security – Oh My! John Kemp, Nokia Mobile Solutions.
1 ISEC0511 Programming for Information System Security Lecture Notes #4 Security in Web Applications.
Security Management prepared by Dean Hipwell, CISSP
CSCI 6962: Server-side Design and Programming Secure Web Programming.
Ladd Van Tol Senior Software Engineer Security on the Web Part One - Vulnerabilities.
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.
Security testing of study information system Security team: Matis Alliksoo Alo Konno Urmo Lihten Taavi Podzuks Sander Saarm.
Ryan Dewhurst - 20th March 2012 Web Application (PHP) 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.
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 © 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 Sebastian Lopienski CERN Computer Security Team Summer/openlab students lectures 2012.
OWASP Top Ten #1 Unvalidated Input. Agenda What is the OWASP Top 10? Where can I find it? What is Unvalidated Input? What environments are effected? How.
The attacks ● XSS – type 1: non-persistent – type 2: persistent – Advanced: other keywords (, prompt()) or other technologies such as Flash.
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.
OWASP OWASP top 10 - Agenda  Background  Risk based  Top 10 items 1 – 6  Live demo  Top 10 items 7 – 10  OWASP resources.
CS526Topic 12: Web Security (2)1 Information Security CS 526 Topic 9 Web Security Part 2.
OWASP Building Secure Web Applications And the OWASP top 10 vulnerabilities.
Web2.0 Secure Development Practice Bruce Xia
Copyright © The OWASP Foundation This work is available under the Creative Commons SA 2.5 license The OWASP Foundation OWASP Denver February 2012.
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
The OWASP Foundation Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under.
Do not try any of the techniques discussed in this presentation on a system you do not own. It is illegal and you will get caught.
Will New HTTP headers save us? John Wilander, OWASP/Omegapoint, IBWAS’10.
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.
SlideSet #20: Input Validation and Cross-site Scripting Attacks (XSS) SY306 Web and Databases for Cyber Operations.
SECURE DEVELOPMENT. SEI CERT TOP 10 SECURE CODING PRACTICES Validate input Use strict compiler settings and resolve warnings Architect and design for.
Web Application Security
Web Application Vulnerabilities
An Introduction to Web Application Security
Web Application Vulnerabilities, Detection Mechanisms, and Defenses
Securing Your Web Application in Azure with a WAF
World Wide Web policy.
Vulnerability Chaining Every Low Issue Has its big impact
Penetration Testing following OWASP
Hub architecture Security.
Bill Riggins III OWASP Orlando Co-Chapter Lead
امنیت نرم‌افزارهای وب تقديم به پيشگاه مقدس امام عصر (عج) عباس نادری
WWW安全 國立暨南國際大學 資訊管理學系 陳彥錚.
Presentation transcript:

OWASP Top 10 from a developer’s perspective John Wilander, OWASP/Omegapoint, IBWAS’10

John Wilander consultant at Omegapoint in Sweden Researcher in application security Co-leader OWASP Sweden Certified Java Programmer

OWASP Top 10 Top web application security risks 2010 OWASP

1. Injection 2. Cross-Site Scripting (XSS) 3. Broken Authentication and Session Management 4. Insecure Direct Object References 5. Cross-Site Request Forgery (CSRF) 6. Security Misconfiguration 7. Insecure Cryptographic Storage 8. Failure to Restrict URL Access 9. Insufficient Transport Layer Protection 10. Unvalidated Redirects and Forwards OWASP

1. Injection 2. Cross-Site Scripting (XSS) 3. Broken Authentication and Session Management 4. Insecure Direct Object References 5. Cross-Site Request Forgery (CSRF) 6. Security Misconfiguration 7. Insecure Cryptographic Storage 8. Failure to Restrict URL Access 9. Insufficient Transport Layer Protection 10. Unvalidated Redirects and Forwards OWASP

Injection... the good old, boring stuff OWASP

sql = "SELECT * FROM users WHERE firstName = '" + fname + "' AND surName = '" + sname + "'"; OWASP

sql = "SELECT * FROM users WHERE firstName = '" + fname + "' AND surName = '" + sname + "'"; OWASP

fname = ’ OR 1=1-- sname = blabla OWASP

sql = "SELECT * FROM users WHERE firstName = '" + ’OR 1=1-- + "' AND surName = '" + blabla + "'";

SELECT * FROM users WHERE firstName = '' OR 1=1-- ' AND surName = 'blabla' OWASP

SELECT * FROM users OWASP

Input Validation? OWASP

fname = John sname = Wilander Accept: A-Za-z OWASP

fname = Luís sname = Grangeia Accept: A-Za-zí OWASP

fname = João sname = Franco Accept: A-Za-zíã OWASP

fname = {some name} sname = {some name} Accept: A-Za-zíãåäöüû OWASP

fname = {some name} sname = {some name} Accept: \p{L} OWASP

fname = Oliver sname = O’Heir Accept: \p{L} OWASP

fname = Oliver sname = O’Heir Accept: \p{L}’ OWASP

fname = Fredrik sname = Jägare-Lilja Accept: \p{L}’ OWASP

fname = Fredrik sname = Jägare-Lilja Accept: \p{L}’- OWASP

fname = John Eric sname = Wilander Accept: \p{L}’- OWASP

fname = ’OR ‘a’ IS NOT NULL-- sname = blabla Accept: \p{L}’- OWASP

But... ’OR ‘a’ IS NOT NULL-- is not a name! OWASP

PreparedStatement preparedStmt = connection.prepareStatement( ”SELECT a, b FROM table WHEREc = ?”);preparedStmt.setInt(1, column);ResultSet resultset = preparedStmt.executeQuery(); OWASP

PreparedStatement preparedStmt = connection.prepareStatement( ”SELECT a, b FROM table WHEREc = ?”);preparedStmt.setInt(1, column);ResultSet resultset = preparedStmt.executeQuery(); OWASP

PreparedStatement preparedStmt = connection.prepareStatement( ”SELECT a, b FROM table WHEREc = ?”);preparedStmt.setInt(1, column);ResultSet resultset = preparedStmt.executeQuery(); OWASP

XSS... much more exciting! OWASP

Is... a name? OWASP

Just filter, huh? ¼script¾alert(¢XSS¢)¼/script¾ OWASP

org.owasp antisamy 1.4 OWASP AntiSamy OWASP

Content Security Policy X-Content-Security-Policy: allow 'self'; OWASP

Session Management... just a quick one OWASP

HTTP Stateless GET HTTP/1.1 HTTP/ OK OWASP

HTTP Stateless GET HTTP/1.1 HTTP/ OK OWASP

Hold Your Sessions Session ID in URL … ;sessionid=1234 Session ID in hidden form fields Session ID in cookie Set-Cookie: sessionID=”1234” … OWASP

HTTP + Session GET HTTP/1.1 HTTP/ OK OWASP

HTTP + Session GET HTTP/1.1 HTTP/ OK Cookie Monster ©2009 Sesame Workshop OWASP

About Cookies Enduser owns the cookies don’t trust cookies backend don’t hide anything in them JavaScript (thus XSS) can read cookies use httpOnly attribute Cookies are sent for all requests use secure attribute OWASP

Insecure Direct Object Reference just a quick one OWASP

OWASP

Filter ”../” huh?..%2F(URL encoding)%2E%2E%2F(URL encoding)Li4v(Base64 encoding)%002E%002E%002F(Unicode)”..\” often the same meaning as ”../”..%5C(URL encoding)%2E%2E%5C(URL encoding)Li5c(Base64 encoding)%002E%002E%005C(Unicode) OWASP

OWASP ESAPI Access Reference Map Browse r URL Access Ref Map WS DB FS file=  report524.pdf OWASP

CSRF... my current favorite! OWASP

What’s on your mind? POS T OWASP

I love OWASP! What’s on your mind? POS T OWASP

I love OWASP! What’s on your mind? POS T John: I love OWASP! OWASP

What’s on your mind? POS T OWASP

What’s on your mind? I hate OWASP! What’s on your mind? POS T OWASP

What’s on your mind? I hate OWASP! What’s on your mind? POS T OWASP

What’s on your mind? I hate OWASP! What’s on your mind? POS T John: I hate OWASP! OWASP

What’s on your mind? POS T John: I hate OWASP! $(document).ready(function() { $('#form').submit(); }); OWASP

Insufficient Transport Layer Protection OWASP

OWASP

Moxie’s SSL Strip Terminates SSL Changes https to http Normal https to the server Acts as client OWASP

Moxie’s SSL Strip Secure cookie? Encoding, gzip? Cached content? Sessions? Strip the secure attribute off all cookies. Strip all encodings in the request. Strip all if-modified-since in the request. Redriect to same page, set-cookie expired OWASP

OWASP Transport Layer Protection Cheat Sheet ion_Cheat_Sheet OWASP

Unvalidated Redirects and Forwards... phising all the way home! OWASP

Return Path et al ure?page=3 OWASP

Return Path et al OWASP

Return Path et al returnPath=bit.ly/Kl89GT OWASP

ESAPI sendRedirect() /svn/trunk_doc/latest/org/owasp/esapi/HTTPUtilities.html sendRedirect(HttpServletResponse, String) OWASP

1. Injection 2. Cross-Site Scripting (XSS) 3. Broken Authentication and Session Management 4. Insecure Direct Object References 5. Cross-Site Request Forgery (CSRF) 6. Security Misconfiguration 7. Insecure Cryptographic Storage 8. Failure to Restrict URL Access 9. Insufficient Transport Layer Protection 10. Unvalidated Redirects and Forwards OWASP

Blog: appsandsecurity.blogspot.com OWASP