A Security Review Process for Existing Software Applications

Slides:



Advertisements
Similar presentations
PHP Form and File Handling
Advertisements

Creating Stronger, Safer, Web Facing Code JPL IT Security Mary Rivera June 17, 2011.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
WebGoat & WebScarab “What is computer security for $1000 Alex?”
Automating Bespoke Attack Ruei-Jiun Chapter 13. Outline Uses of bespoke automation ◦ Enumerating identifiers ◦ Harvesting data ◦ Web application fuzzing.
August 1, 2006 Software Security. August 1, 2006 Essential Facts Software Security != Security Features –Cryptography will not make you secure. –Application.
By Brian Vees.  SQL Injection  Username Enumeration  Cross Site Scripting (XSS)  Remote Code Execution  String Formatting Vulnerabilities.
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.
Introduction to the OWASP Top 10. Cross Site Scripting (XSS)  Comes in several flavors:  Stored  Reflective  DOM-Based.
Handling Security Threats in Kentico CMS Karol Jarkovsky Sr. Solution Architect Kentico Software
Designing Security In Web Applications Andrew Tomkowiak 10/8/2013 UW-Platteville Software Engineering Department
Web Application Vulnerabilities Checklist. EC-Council Parameter Checklist  URL request  URL encoding  Query string  Header  Cookie  Form field 
Lets Make our Web Applications Secure. Dipankar Sinha Project Manager Infrastructure and Hosting.
CSCI 6962: Server-side Design and Programming Secure Web Programming.
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.
A Security Review Process for Existing Software Applications
Misuse and Abuse Cases: Getting Past the Positive.
May 2, 2007St. Cloud State University Software Security.
Computer Security and Penetration Testing
Software Security Testing Vinay Srinivasan cell:
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.
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 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
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.
APPLICATION PENETRATION TESTING Author: Herbert H. Thompson Presentation by: Nancy Cohen.
1 ITGD 2202 Supervision:- Assistant Professor Dr. Sana’a Wafa Al-Sayegh Dr. Sana’a Wafa Al-SayeghStudent: Anwaar Ahmed Abu-AlQumboz.
CSCE 548 Secure Software Development Taxonomy of Coding Errors.
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.
CIS 450 – Network Security Chapter 14 – Specific Exploits for UNIX.
Input Validation – common associated risks  ______________ user input controls SQL statements ultimately executed by a database server
Aniket Joshi Justin Thomas. Agenda Introduction to SQL Injection SQL Injection Attack SQL Injection Prevention Summary.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
Lesson 19-E-Commerce Security Needs. Overview Understand e-commerce services. Understand the importance of availability. Implement client-side security.
OWASP Building Secure Web Applications And the OWASP top 10 vulnerabilities.
Security Issues with PHP  PHP installation  PHP programming Willa Zhu & Eugene Burger.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
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.
EECS 354: Network Security Group Members: Patrick Wong Eric Chan Shira Schneidman Web Attacks Project: Detecting XSS and SQL Injection Vulnerabilities.
Example – SQL Injection MySQL & PHP code: // The next instruction prompts the user is to supply an ID $personID = getIDstringFromUser(); $sqlQuery = "SELECT.
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
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.
CompTIA Security+ Study Guide (SY0-401)
SQL Injection.
Group 18: Chris Hood Brett Poche
CSCE 548 Student Presentation Ryan Labrador
SE-1021 Software Engineering II
Manuel Brugnoli, Elisa Heymann UAB
Web Application Vulnerabilities, Detection Mechanisms, and Defenses
Chapter 7: Identifying Advanced Attacks
Security Testing Methods
Execution with Unnecessary Privileges
World Wide Web policy.
z/Ware 2.0 Technical Overview
Secure Software Confidentiality Integrity Data Security Authentication
Software Security ITGD 2202 Supervision:- Assistant Professor
Example – SQL Injection
Security mechanisms and vulnerabilities in .NET
Penetration Test Debrief
Copyright Justin C. Klein Keane
CompTIA Security+ Study Guide (SY0-401)
Attacking Back-End Components
Introduction to the Common Attack Pattern Enumeration and Classification (CAPEC) Sean Barnum Sunday, December 09, 2018.
Lecture 2 - SQL Injection
WWW安全 國立暨南國際大學 資訊管理學系 陳彥錚.
PHP Forms and Databases.
Presentation transcript:

A Security Review Process for Existing Software Applications DRAFT Gabriele Garzoglio Computing Division, Fermilab

Overview Goal Involvement Focus Process to achieve the Goal Identify technical risks and their impact Involvement Focus Process to achieve the Goal Application Review Abuse Cases Analysis Architectural Risk Analysis Code Review Application Tests Write Report Gabriele Garzoglio

Goal Identify technical risks associated with the application Find vulnerabilities / flaws in application code / architecture Technical problems or complications … and the impact of these technical risks Unexpected system crashes Avoidance of security control Unauthorized data modification / disclosure Optionally: generate application quality metrics Number of defects Number of critical risks Gabriele Garzoglio

Who should be involved Application Developers Application Administrators Management Security team Security reviewers Gabriele Garzoglio

Focus To achieve the goals, study the software application with the following in mind: what it does / what it protects (business context / risk) threat / exploit community (what does an exploiter gain) potential vulnerabilities (what defects can be exploited) risks (vulnerabilities x threats) Gabriele Garzoglio

Overview Goal Involvement Focus Process to achieve the Goal Identify technical risks and their impact Involvement Focus Process to achieve the Goal Application Review Abuse Cases Analysis Architectural Risk Analysis Code Review Application Tests Write Report Gabriele Garzoglio

How to identify technical risks and their impact Application review (interviews, documentation, etc.) Abuse Cases Analysis Architectural Risk Analysis Code Review Application tests (Security/Penetration) Write report Gabriele Garzoglio

How to conduct the "Application Review" Study: General Functionalities Environment (Users, Security Policies, etc.) Use Cases Specific Features Architecture Project management practices Operation practices Risk Analysis / Security Requirements / Security Operations (if any) Gabriele Garzoglio

How to conduct the "Abuse Cases Analysis“ * Misuse or abuse cases: Prepare for abnormal behavior (attack) Uncover exceptional cases Document what software will do in the face of illegitimate use Process: Start with attack patterns (see later), requirements, and use cases Build an attack model Determine misuses and abuse cases Talk to the developers: they might know possible system abuses “Software Security: Building Security in” by G. McGraw; Ed: Addison-Wesley “Exploiting Software: How to break the code” by G. Hoglund and G. McGraw; Ed: Addison-Wesley Gabriele Garzoglio

48 attack patterns* * “Exploiting Software: How to break the code” Make the Client invisible Target Programs That Write to Privileged OS Resources Use a User-Supplied Configuration File to Run Commands That Elevate Privilege Make Use of Configuration File Search Paths Direct Access to Executable Files Embedding Scripts within Scripts Leverage Executable Code in Non-executable Files Argument Injection Command Delimiters Multiple Parsers and Double Escapes User-Supplied Variable Passed to File System Calls Postfix NULL Terminator and Backslash Relative Path Traversal Client-Controlled Environment Variables User-Supplied Global Variables (DEBUG=1, PHP Globals, etc.) Session ID, Resource 10, and Blind Trust Analog In-Band Switching Signals (aka "Blue Boxing") Attack Pattern Fragment: Manipulating Terminal Devices Simple Script Injection Embedding Script in Nonscript Elements XSS in HTTP Headers HTTP Query Strings User-Controlled Filename Passing Local Filenames to Functions That Expect a URL Meta-characters in E-mail Header File System Function Injection, Content Based Client-side Injection, Buffer Overflow Cause Web Server Misclassification Alternate Encoding the Leading Ghost Characters Using Slashes in Alternate Encoding Using Escaped Slashes in Alternate Encoding Unicode Encoding UTF-8 Encoding URL Encoding Alternative IP Addresses Slashes and URL.Encoding Combined Web Logs Overflow Binary Resource File Overflow Variables and Tags Overflow Symbolic Links MIME Conversion HTTP Cookies Filter Failure through Buffer Overflow Buffer Overflow with Environment Variables Buffer Overflow in API Calls Buffer Overflow in Local Command·-Line Utilities Parameter Expansion String Format Overflow in syslog() * “Exploiting Software: How to break the code” by G. Hoglund and G. McGraw Ed: Addison-Wesley Gabriele Garzoglio

How to conduct the "Architectural Risk Analysis“ * Process: Build a one page overview Architectural analysis Attack resistance analysis (see attack patterns) Ambiguity analysis Weakness analysis Rank risks Build mitigations “Software Security: Building Security in” by G. McGraw; Ed: Addison-Wesley “Building Secure Software” by J. Viega & G. McGraw; Ed: Addison-Wesley Gabriele Garzoglio

How to conduct the "Code review“ * Best if using automated tools Look out for: Input validation and representation API abuse Security features Time and state Error handling Code quality Encapsulation Environment “Software Security: Building Security in” by G. McGraw; Ed: Addison-Wesley “Building Secure Software” by J. Viega & G. McGraw; Ed: Addison-Wesley Gabriele Garzoglio

How to conduct the "Application tests“ * Security Testing: Risk-based testing, Functional Security testing, Penetration testing, … Several Standards of compliance: CHECK, OSSTMM, OWASP, … Most appropriate for web applications is OWASP http://www.owasp.org/index.php/OWASP_Testing_Guide_v2_Table_of_Contents Select tests according to outcomes of previous analyses “Software Security: Building Security in” by G. McGraw; Ed: Addison-Wesley Gabriele Garzoglio

How to “write the report” Write a summary of your findings for each of the process steps Application Review Abuse Cases Analysis Architectural Risk Analysis Code Review Application Tests Identify impact of technical risks Remember your “focus”: what it does / what it protects threat / exploit community potential vulnerabilities risks (vulnerabilities x threats) What are the business needs of the application? Availability, confidentiality, integrity, authenticity/non-repudiation, … Link the risks with the business needs Propose mitigation strategies for highest impact risks Gabriele Garzoglio