Security Testing. How security testing is different Types of security attacks Threat modelling



Similar documents
Microsoft STRIDE (six) threat categories

Understanding and evaluating risk to information assets in your software projects

Threat Modeling. Frank Piessens ) KATHOLIEKE UNIVERSITEIT LEUVEN

BEST PRACTICES FOR SECURITY TESTING TOP 10 RECOMMENDED PRACTICES

Threat Modeling: The Art of Identifying, Assessing, and Mitigating security threats

Mobile Application Threat Analysis

Software Security Touchpoint: Architectural Risk Analysis

Threat Modeling/ Security Testing. Tarun Banga, Adobe 1. Agenda

An Approach to Threat Modeling in Web Application Security Analysis

Audit/Logging Repudiation. Security Testing: Testing for What It s NOT supposed to do

Web Application Security

Threat modeling. Tuomas Aura T Information security technology. Aalto University, autumn 2011

OWASP AND APPLICATION SECURITY

Entire contents 2011 Praetorian. All rights reserved. Information Security Provider and Research Center

Introduction to Information Security

Security and Privacy in Cloud Computing

Secure By Design: Security in the Software Development Lifecycle

Information Systems Security

ISSECO Syllabus Public Version v1.0

A PRACTICAL APPROACH TO INCLUDE SECURITY IN SOFTWARE DEVELOPMENT

BBM 461: SECURE PROGRAMMING INTRODUCTION. Ahmet Burak Can

Threat Modeling. 1. Some Common Definition (RFC 2828)

Threat Modeling. Categorizing the nature and severity of system vulnerabilities. John B. Dickson, CISSP

Security Threats in Demo Steinkjer

Threat Modeling Using Fuzzy Logic Paradigm

Don t Get Burned! Are you Leaving your Critical Applications Defenseless?

Application Intrusion Detection

FINAL DoIT v.4 PAYMENT CARD INDUSTRY DATA SECURITY STANDARDS APPLICATION DEVELOPMENT AND MAINTENANCE PROCEDURES

Recall the Security Life Cycle

D. Best Practices D.1. Assurance The 5 th A

Development Processes (Lecture outline)

FINAL DoIT v.8 APPLICATION SECURITY PROCEDURE

Columbia University Web Security Standards and Practices. Objective and Scope

Application Security Testing. Generic Test Strategy

Virtualization System Security

Introduction to Microsoft Security Development Lifecycle (SDL) Threat Modeling

THREAT MODELLING FOR SQL SERVERS Designing a Secure Database in a Web Application

Web Application security testing: who tests the test?

A Methodology for Capturing Software Systems Security Requirements

Security within a development lifecycle. Enhancing product security through development process improvement

KEN VAN WYK. Fundamentals of Secure Coding and how to break Software MARCH 19-23, 2007 RESIDENZA DI RIPETTA - VIA DI RIPETTA, 231 ROME (ITALY)

OWASP Cornucopia. Ecommerce Website Edition. The OWASP Foundation. OWASP London 3rd June 2013

Application Security Policy

Network Security Audit. Vulnerability Assessment (VA)

Using Foundstone CookieDigger to Analyze Web Session Management

Introduction to Security

Juniper Networks Secure

What is Web Security? Motivation

Building Security into the Software Life Cycle

Web Engineering Web Application Security Issues

THREAT-DRIVEN ARCHITECTURAL DESIGN OF SECURE INFORMATION SYSTEMS

REPORT ON AUDIT OF LOCAL AREA NETWORK OF C-STAR LAB

Management (CSM) Capability

Threat Modeling for Secure Embedded Software

Evaluation of different Open Source Identity management Systems

E-commerce. Security. Learning objectives. Internet Security Issues: Overview. Managing Risk-1. Managing Risk-2. Computer Security Classifications

Where every interaction matters.

NETWORK AND CERTIFICATE SYSTEM SECURITY REQUIREMENTS

Our Security Education Curriculum PREPARED FOR ASPE TECHNOLOGY BY SI, INC. toll-free:

Architectural Design Patterns. Design and Use Cases for OWASP. Wei Zhang & Marco Morana OWASP Cincinnati, U.S.A.

Improving SCADA Control Systems Security with Software Vulnerability Analysis

Privileged. Account Management. Accounts Discovery, Password Protection & Management. Overview. Privileged. Accounts Discovery

Web Application Threats and Vulnerabilities Web Server Hacking and Web Application Vulnerability

Pension Benefit Guaranty Corporation. Office of Inspector General. Evaluation Report. Penetration Testing An Update

Auditing a Web Application. Brad Ruppert. SANS Technology Institute GWAS Presentation 1

DFW INTERNATIONAL AIRPORT STANDARD OPERATING PROCEDURE (SOP)

Sample Report. Security Test Plan. Prepared by Security Innovation

Web Application Hacking (Penetration Testing) 5-day Hands-On Course

Functional vs. Load Testing

Overview of Network Security The need for network security Desirable security properties Common vulnerabilities Security policy designs

Security Implications Associated with Mass Notification Systems

WEB SECURITY CONCERNS THAT WEB VULNERABILITY SCANNING CAN IDENTIFY

Effective Software Security Management

CPA SECURITY CHARACTERISTIC ENTERPRISE MANAGEMENT OF DATA AT REST ENCRYPTION

How To Protect A Database From Attack

Integrated Network Vulnerability Scanning & Penetration Testing SAINTcorporation.com

Threat Modeling Architecting & Designing with Security in Mind OWASP. The OWASP Foundation Venkatesh Jagannathan

Frequent Denial of Service Attacks

WHITE PAPER. FortiWeb and the OWASP Top 10 Mitigating the most dangerous application security threats

Security Goals Services

Interim Threat / Risk Assessment. Student E- Communications Outsourcing Project

Passing PCI Compliance How to Address the Application Security Mandates

OWASP Top Ten Tools and Tactics

Plain English Guide To Common Criteria Requirements In The. Field Device Protection Profile Version 0.75

Technical Proposition. Security

ASP.NET MVC Secure Coding 4-Day hands on Course. Course Syllabus

CYBERSECURITY TESTING & CERTIFICATION SERVICE TERMS

SECURITY PRACTICES FOR ADVANCED METERING INFRASTRUCTURE Elif Üstündağ Soykan, Seda Demirağ Ersöz , ICSG 2014

Lecture 7: Threat Modeling. CS 392/6813: Computer Security Fall Nitesh Saxena. *Adopted from a previous lecture by Nasir Memon

IJMIE Volume 2, Issue 9 ISSN:

Last update: February 23, 2004

External Supplier Control Requirements

05.0 Application Development

Scope of this presentation

Malicious Software. Ola Flygt Växjö University, Sweden Viruses and Related Threats

Cutting Edge Practices for Secure Software Engineering

Database Security Guide

Content Teaching Academy at James Madison University

Secure Software Development Lifecycle. Security... Not getting better

Transcription:

Security Testing How security testing is different Types of security attacks Threat modelling Note: focus is on security of applications (not networks, operating systems) Security testing is about making sure the defensive mechanisms work correctly (e.g. you cannot spoof another user s identify), rather than that the functionality works correctly

Concepts Threat: a potential event that will have an unwelcome consequence if it becomes an attack. Vulnerability: a weakness in a system, such as a coding bug or a design flaw. Attack: occurs when an attacker has a motive and takes advantage of a vulnerability to threaten an asset. Asset: also referred to as threat target. Analogy: A fault may remain latent, or may be surfaced as a failure when the code is executed A vulnerability may remain latent, or may be exploited by an attacker, enabling an attack Howard, M. and Leblanc, D. Writing Secure Code, Microsoft Press, 2003.

Test Driven Development

General Good Practices 1. The best defense is building security IN, not testing it in. [security is an emergent property; having a test-centric methodology helps] 2. Decide how much security is needed. 3. Perform automated testing. 4. Test at every stage. 5. Make a test plan. 6. Test all system components. Consider business impact of failure, compromise or unavailability What about third-party software? Should it be trusted? 7. Follow a specific software development methodology. 8. [Also, use a layered approach to building in and testing for security Defense in Depth] 9. [Practice Role-based Access Control (RBAC). Minimize the capability given to each role use least privilege] Based on: Graff, Mark G. and van Wyk, Kenneth R., Secure Coding: Principles and Practices, O Reilly, 2003.

Beware of Side Effects Unreachable code? Look at code coverage. Thompson, Herbert, Why Security Testing is Hard, IEEE Security and Privacy, July/Aug 2003, pp. 83-86.

Four general classes of security attacks Dependencies Application may inherit vulnerabilities from components its dependant upon Libraries that contain security service may fail (so application must respond securely defense in depth!) Unanticipated user input Reserved words, escape characters, long strings, boundary values Expose design vulnerabilities Esp. Ports open, insecure default values, test instrumentation interwoven with implementation code [that can explicitly bypass security for ease of testing] Expose implementation vulnerabilities Developers only understand their piece, may expose data Whittaker & Thompson How to Break Software: Security

Example Security Testing Techniques Spoofing Identity Attempt to force the application to use no authentication; is there an option to allows this, which a non-administrator can use? Can you view a valid user s credentials on the wire or in persistent storage? Can security tokens (e.g. a cookie) be replayed to bypass an authentication stage? Tampering with the data Is it possible to tamper with than rehash the data? Create invalid hashes and digital signatures to verify they are checked correctly. Repudiation Do conditions exist that prevent logging or auditing? Is it possible to create requests that create incorrect data in an event log? Howard, M. and Leblanc, D. Writing Secure Code, Microsoft Press, 2003.

Example Security Testing Techniques II Information Disclosure Attempt to access data that can be accessed only by more privileged users. Make the application fail in a way that discloses useful information to an attacker (for example, error messages) Kill the process and then perform disk scavenging, looking for sensitive data written to disk. Denial of Service (Dos) Flood a process with so much data it stops responding to valid requests. Does malformed data crash the process? Elevation of Privilege Can you execute data as code Can an elevated process be forced to load a command shell, which in turn will execute with elevated privileges? Howard, M. and Leblanc, D. Writing Secure Code, Microsoft Press, 2003.

Consider your project Think about your types of users and your database project. What rights (read, write, update) do each type of user have for each table? Think about your project and possible misuse cases write two security scenario tests. A misuse case is a use case from the point of view of an actor hostile to the system; the actor is a hacker deliberately threatening the security of the system and/or the privacy of the users of the system [Alexander]. Done in requirements phase. Every misuse case must have one or more tests. Login «threatens» «include» Obtain Password Hacker I. Alexander, "Misuse Cases: Use Cases with Hostile Intent," IEEE Software, vol. 20, no. 1, pp. 58-66, January/February 2003.

Threat modeling Security-based analysis that helps people determine the highest level risks posed to the product and how threats manifest themselves Decompose the application (data flow diagram, DFD) to investigate the components, or assets or threat targets, of the application and how data flows between them. Treat targets are: every data source, process, data flow, and interactor Using STRIDE, identify threats for each treat target. These serve as the roots for the threat trees; there is one tree per threat goal. Threats should have at least one test case in the test plan [realistically, the higher-risk threats] Build one or more threat trees for each threat target, as appropriate (risk-based choice). Using DREAD (or some other threat ranking method, determine the security risk for each threat tree. Howard, M. and Leblanc, D. Writing Secure Code, Microsoft Press, 2003.

Data Flow Diagram (DFD): Symbols A process. Transforms or manipulates data. Interactor. Input into the system. Data Flow. Depicts data flow from data stores, processes or interactors. Data Store. A location that stores temporary or permanent data. Boundary. A machine, physical address space or trust boundary. http://www.microsoft.com/whdc/driver/security/threatmodel.mspx

Data Flow Diagram (DFD): Sample (modified) http://www.microsoft.com/whdc/driver/security/threatmodel.mspx

Simple rules for DFD entities: A process must have at least one data flow entering and one data flow exiting. All data flows start or stop at a process. Data stores cannot connect together, they must pass through a process. Process names are verbs and nouns or verb phrases (e.g. Process stock symbol, evaluate exam grade) Data flow names are nouns or noun phrases (e.g. Stock price, Exam score) Interactor names are nouns (e.g. Stock broker) Data store names are nouns (e.g. Realtime stock data, Exam result data) Howard, M. and Leblanc, D. Writing Secure Code, Microsoft Press, 2003.

Microsoft STRIDE (six) threat categories Spoofing identity pose as another user Tampering with data malicious modification of data Repudiation can the action (prohibited action) be traced? Information disclosure disclose of information to individuals who aren t supposed to have it Denial of service deny access to valid users (e.g. consume all the CPU time) Elevation of privilege unprivileged user gains privileged access (becomes part of the trusted system) Howard, M. and Leblanc, D. Writing Secure Code, Microsoft Press, 2003.

Attack Tree Describes the decision-making process an attacker would go through to compromise the component. The ultimate threat; the goal of the attacker. Conditions and/or steps to carry out the attack. http://msdn.microsoft.com/security/securecode/threatmodeling

Microsoft Security Risk Management: DREAD http://msdn.microsoft.com/security/securecode/threatmodeling

Consider your project Draw a DFD diagram. Draw 2-3 attack trees, maybe based upon your scenario (misuse case). Create test cases for those attack trees. Resource: http://www.microsoft.com/whdc/driver/security/threatmodel.mspx

References Graff, Mark G. and van Wyk, Kenneth R., Secure Coding: Principles and Practices, O Reilly, 2003. Howard, M. and LeBlanc, D., Writing Secure Code, Microsoft Press, 2003. Thompson, H., Why Security Testing is Hard, IEEE Security and Privacy, July/Aug 2003, pp. 83-86. Whittaker, J., How to Break Software Security, Addison Wesley, 2004.