Securing WebApps – A Survey of Vulnerabilities & Static Analysis Tools

Slides:



Advertisements
Similar presentations
Infosec 2012 | 25/4/12 Application Performance Monitoring Ofer MAOR CTO Infosec 2012.
Advertisements

PENETRATION TESTING Presenters:Chakrit Sanbuapoh Sr. Information Security MFEC.
The OWASP Foundation Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under.
 The Citrix Application Firewall prevents security breaches, data loss, and possible unauthorized modifications to Web sites that access sensitive business.
Test Automation Framework Ashesh Jain 2007EE50403 Manager Amit Maheshwari.
Static code check – Klocwork
Dr. Bill Curtis Director, Consortium for IT Software Quality The Technical Debt Management Cycle: Evaluating the Costs and Risks of IT Assets.
Finding Security Errors in Java Applications Using Lightweight Static Analysis Benjamin Livshits Computer Science Lab Stanford University.
August 1, 2006 Software Security. August 1, 2006 Essential Facts Software Security != Security Features –Cryptography will not make you secure. –Application.
ReferencesReferences DiscussionDiscussion Vulnerability Example: SQL injection Auditing Tool for Eclipse LAPSE: a Security Auditing Tool for Eclipse IntroductionIntroductionResultsResults.
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 Flawfinder.
Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November.
Flawfinder N ă stase George-Daniel MSI2. About Written in python Relatively fast(examined approx. 17milion lines of code in about 6.5minutes) Extremely.
Penetration testing – W3AF Tool
Handling Security Threats in Kentico CMS Karol Jarkovsky Sr. Solution Architect Kentico Software
Hands-On Ethical Hacking and Network Defense
Security Scanning OWASP Education Nishi Kumar Computer based training
Glass Box Testing: Thinking Inside the Box Omri Weisman Manager, Security Research Group IBM Rational.
Nikto LUCA ALEXANDRA ADELA. Nikto  Web server assessment tool  Written by Chris Solo and David Lodge  Released on December 27, 2001  Stable release:
A Scanner Sparkly Web Application Proxy Editors and Scanners.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
W3af LUCA ALEXANDRA ADELA – MISS 1. w3af  Web Application Attack and Audit Framework  Secures web applications by finding and exploiting web application.
CSE 6329 Project Team 1 Aliasgar Kagalwala Aditya Mone Derek White Dengfeng (Thomas) Xia.
Workshop 3 Web Application Security Li Weichao March
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Testing Tools. Categories of testing tools Black box testing, or functional testing Testing performed via GUI. The tool helps in emulating end-user actions.
Presented by Heorot.net.  Understand abilities and limitations of code reviews  Identify potentially “bad” code  Identify and use code review tools.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
The OWASP Way Understanding the OWASP Vision and the Top Ten.
A Framework for Automated Web Application Security Evaluation
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.
Ladd Van Tol Senior Software Engineer Security on the Web Part One - Vulnerabilities.
What is Sure BDCs? BDC stands for Batch Data Communication and is also known as Batch Input. It is a technique for mass input of data into SAP by simulating.
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.
Computer Security and Penetration Testing
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Attacking Applications: SQL Injection & Buffer Overflows.
Interception and Analysis Framework for Win32 Scripts (not for public release) Tim Hollebeek, Ph.D.
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.
NameTypeProgramming languageOS Obj CJavaPHP.NetPerlCC++PythonOther CodePro FindBugs FxCop (microsoft) Flawfinder Milk MOPS OWASP Code Crawler OWASP ORIZON.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
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.
Static Analysis James Walden Northern Kentucky University.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Snakes and Ladders OWASP Newcastle 24 th November 2015.
Deconstructing API Security
Securing Java Applications
CS526Topic 12: Web Security (2)1 Information Security CS 526 Topic 9 Web Security Part 2.
Chapter 1 The Software Security Problem. Goals of this course Become aware of common pitfalls. Static Analysis and tools.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
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 Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Example – SQL Injection MySQL & PHP code: // The next instruction prompts the user is to supply an ID $personID = getIDstringFromUser(); $sqlQuery = "SELECT.
Ken De Souza KWSQA, April 2016 V. 1.0
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
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.
SECURE DEVELOPMENT. SEI CERT TOP 10 SECURE CODING PRACTICES Validate input Use strict compiler settings and resolve warnings Architect and design for.
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 Vulnerabilities, Detection Mechanisms, and Defenses
Securing Your Web Application in Azure with a WAF
OWASP Static Analysis (SA) Track Goals, Objectives, and Track Roadmap
Scripting Languages Info derived largely from Programming Language Pragmatics, by Michael Scott.
1. ASSOCILATE DEGREE PROGRAM Application Attacks SUBMITTED TO: Fatima Ashiq SUBMITTED By: University Of Central Punjab Farooq Sardar (V1F16ASOC0012) Adnan.
WWW安全 國立暨南國際大學 資訊管理學系 陳彥錚.
Presentation transcript:

Securing WebApps – A Survey of Vulnerabilities & Static Analysis Tools Lewis Sykalski SMU D.E. Software Engineering Student Lockheed Martin - Flight Simulation Engineer lsykalski@smu.edu

OWASP 2013 Candidate List A1 – Injection A2 – Broken Authentication and Session Management A3 – Cross-Site Scripting (XSS) A4 – Insecure Direct Object References A5 – Security Misconfiguration A6 – Sensitive Data Exposure A7 – Missing Function Level Access Control A8 – Cross-Site Request Forgery (CSRF) A9 – Using Known Vulnerable Components A10 – Unvalidated Redirects and Forwards

Injection

Cross-Site Scripting

CSRF

Insecure Direct Object Reference

What is Static Analysis? Static program analysis is: an analysis method to determine whether vulnerabilities exist by simply looking at the code in a non-dynamic (running) state. Usually the source code is used, however some tools allow for analysis of object code. most successful tools are ones that analyze the whole scope of the program in relation to a line of code as opposed to only analyzing a single line of code at a time completely independent from the rest of the program.

Dynamic Analysis? Dynamic analysis: analysis of the software while the webapp is running. could be performed in either a white box situation where everything is known or from the black-box situation where nothing is very minimal is known.

Open Source Options Product License Type Languages Features LAPSE+ 2 GNU GPL Eclipse Plugin Java Variable Traceback, Good for analysis of injection & cross-site scripting FindBugs 2.0 3 GNU LGPL Good for general purpose bugs, slick interface, security specific detection under-developed Orizon 9 Standalone Text-based Java, Php,C Jsp Report-based scheme, under-developed, lacking nice UI, some security detection SWAAT 8 Custom License StandaloneHTML Report-based Java, C# Nice report based detection, .NET package out-of-date, tool not maintained. Does not necessarily focus on security problems PMD 5 BSD Java, JavaScript, XML, XSL Generic Code quality tool, High quality User Interface, Extensible to other security-specific rule-sets

Open Source Options (cont.) Product License Type Languages Features FxCop 4 Open Source MS-PL VS Plugin .NET Security-specific static analysis, UI built into Visual Studio RIPS 7 Open-Source GPL Standalone PHP Professional user-interface, Security-specific analysis FlawFinder 19 Text-based C++ Security-specific analysis, Injections, Overflow, etc. Dangerous function analysis PreFast 20 General static analysis, BrakeMan 21 MIT Ruby Strong following

LAPSE+ OWASP LAPSE+ Java plug-in which integrates tightly with the Eclipse IDE (Helios+, 1.6 JRE+). useful for detecting & subsequently analyzing security vulnerabilities due to untrusted data injection in Java webapps. operates on the concept of sinks and sources, the source referring to the injection of untrusted data (e.g. perhaps a cookie, parameters from HTTP, etc) and the sink referring to the process of data modification to manipulate the behavior of the application (e.g. servlet response or HTML page).

LAPSE+

FindBugs FindBugs: program which uses static analysis to look for bugs in Java code.  relatively easy to install and purports to find all types of bugs. user interface, where one can filter between various bug categories that are found, a bug review panel which will describe the bug in detail with resolution measures, and a Bug Info Panel which shows a detailed stack trace and description.

FindBugs

Orizon OWASP Orizon: allows one to perform a security code review over your code making sure it fits recommendations contained into the Owasp Build Guide and the Owasp Code review Guide. standalone console-based tool with it's own shell engine. provides for certain commands which when executed allow one to model the code, crawl through all traces, and then subsequently generate a report for viewing.

Orizon

PMD PMD: static analysis tool for Java source code. identifies possible bugs, dead code, suboptimal code, high cyclomatic complexity, and duplicate code. extensible rule-set capability for one to create their own rules. supports a vulnerability view where aforementioned problems are displayed, and the Copy-Paste Detector (CPD) view, where one can view copy-pasted code (code that should likely be consolidated into a single logical block). GDS PMD Secure Coding Ruleset

PMD

PMD

PMD

FlawFinder Flawfinder: a tool that works on C++ source-code. console-based and specifically targets security vulnerabilities. works by using a built-in database of C/C++ functions with well-documented security problems, such “as buffer overflow risks (e.g., strcpy(), strcat(), gets(), sprintf(), and the scanf() family), format string problems ([v][f]printf(), [v]snprintf(), and syslog()), race conditions (such as access(), chown(), chgrp(), chmod(), tmpfile(), tmpnam(), tempnam(), and mktemp()), potential shell metacharacter dangers (most of the exec() family, system(), popen()), and poor random number acquisition (such as random())”. 19

FlawFinder

RIPS RIPS: written in PHP and for PHP specifically to find vulnerabilities.. can create a program model of the source code. can detect vulnerable functions (sinks) that can be utilized by malicious user-input. Additionally an audit framework is provided for further analysis in an IDE-style visual user- interface. claims to detect XSS, SQL Injection, LFI/RFI, and RCE vulnerabilities.

RIPS

Commercial Tools Fortify 10 Commercial Standalone 20 different languages Professional user interface, Security-specific detection/focus, Coverity 16 C++, Java, C# Security-specific detection/focus Insight 17 IDE & static code analyzer, Generic quality detection/focus Parasoft 18 C++, Java, .NET Security specific detection/focus Veracode 14 Professional User Interface, Security Specific detection/focus IBM Security AppScan 15 C++, Java, C#, Objective C Professional User Interface, Centralized security scanning, data consolidation Checkmarx 13 15 languages CodeSecure 12 10 languages CodeSonar 11 Standa Java, C++ General defect, Some security-specific & threading checkings

1 OWASP Top-10: https://www.owasp.org/index.p hp/Top_10_2013-Top_10 References 1 OWASP Top-10: https://www.owasp.org/index.p hp/Top_10_2013-Top_10 2. LAPSE+: http://evalues.es/downloads/o wasp/LapsePlus_Tutorial.pdf 3. FindBugs: http://findbugs.sourceforge.net / 4. FxCop: http://msdn.microsoft.com/en- us/library/bb429476(VS.80).as px 5. PMD: http://pmd.sourceforge.net/ 6. RATS: https://www.fortify.com/ssa- elements/threat- intelligence/rats.html 7. RIPS: http://rips- scanner.sourceforge.net/ 8. SWAAT: https://www.owasp.org/index.p hp/Category:OWASP_SWAAT _Project 9. Orizon: http://www.owasp.org/index.ph p/Category:OWASP_Orizon_P roject 10. HP Fortify: http://www8.hp.com/us/en/soft ware- solutions/software.html?comp URI=1338812#.UXvVjxzREQc 11. CodeSonar: http://www.grammatech.com/c odesonar

12. Amorize CodeSecure: http://www.armorize.com/code secure/ References (cont.) 12. Amorize CodeSecure: http://www.armorize.com/code secure/ 13. CheckMarx: http://www.checkmarx.com/tec hnology/static-code-analysis- sca/ 14. Veracode: http://www.veracode.com/ 15. IBM Security AppScan: http://www- 01.ibm.com/software/rational/p roducts/appscan/source/ 16. Coverity: http://www.coverity.com/produ cts/static-analysis.html 17. Klocwork Insight: http://www.klocwork.com/prod ucts/insight.asp 18. Parasoft Static Analysis: http://www.parasoft.com/jsp/ca pabilities/static_analysis.jsp?it emId=547 19. FlawFinder: http://www.dwheeler.com/flawfi nder/ 20. PreFast: http://msdn.microsoft.com/en- us/library/ms933794.aspx 21. BrakeMan: http://brakemanscanner.org/ 22. PMD GDS Ruleset: https://github.com/GDSSecurit y/GDSPMDSECRULES 23. PMD Rulesets http://pmd.sourceforge.net/pm d- 5.0.3/rules/index.html#Securit y_Code_Guidelines