Evaluating Existing Systems

Slides:



Advertisements
Similar presentations
Sachin Rawat Crypsis SDL Threat Modeling.
Advertisements

Object Oriented Analysis And Design-IT0207 iiI Semester
Risk Assessment What is RISK?  requires vulnerability  likelihood of successful attack  amount of potential damage Two approaches:  threat modeling.
Engineering Secure Software. Uses of Risk Thus Far  Start with the functionality Use cases  abuse/misuse cases p(exploit), p(vulnerability)  Start.
Introducing Computer and Network Security
Fundamentals of Information Systems, Second Edition
© Copyright Eliyahu Brutman Programming Techniques Course.
Systems Development Life Cycle
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
BUILDING A SECURE STANDARD LIBRARY Information Assurance Project I MN Tajuddin hj. Tappe Supervisor Mdm. Rasimah Che Mohd Yusoff ASP.NET TECHNOLOGY.
Application Threat Modeling Workshop
Project Risk Management. The Importance of Project Risk Management Project risk management is the art and science of identifying, analyzing, and responding.
Architecting secure software systems
Information Systems Security Computer System Life Cycle Security.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
Integrating Security Design Into The Software Development Process For E-Commerce Systems By: M.T. Chan, L.F. Kwok (City University of Hong Kong)
Risk Management Project Management Digital Media Department Unit Credit Value : 4 Essential Learning time : 120 hours.
Secure Design Computer Security I CS461/ECE422 Fall 2009.
Requirements Analysis Visual Modeling] Lab 02 Visual Modeling (from Visual Modeling with Rational Rose and UML) A way of thinking about problems using.
Lecture 16 Page 1 CS 136, Fall 2012 Evaluating System Security CS 136 Computer Security Peter Reiher November 27, 2012.
APPLICATION PENETRATION TESTING Author: Herbert H. Thompson Presentation by: Nancy Cohen.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
Hands-On Threat Modeling with Trike v1. Generating Threats.
Practical Threat Modeling for Software Architects & System Developers
Project Risk Management Planning Stage
What is RISK?  requires vulnerability  likelihood of successful attack  amount of potential damage Two approaches:  threat modeling  OCTAVE Risk/Threat.
Computer Security By Duncan Hall.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Chapter 1: Security Governance Through Principles and Policies
Module 7: Designing Security for Accounts and Services.
Presented by Mike Sues, Ethical Hack Specialist Threat Modeling.
By Ramesh Mannava.  Overview  Introduction  10 secure software engineering topics  Agile development with security development activities  Conclusion.
Threat Modeling: Employing the 5 Ws Security Series, December 13, 2013 Jeff Minelli Penn State ITS
Lecture 16 Page 1 CS 236 Online Evaluating Program Security What if your task isn’t writing secure code? It’s determining if someone else’s code is secure?
MANAGEMENT of INFORMATION SECURITY, Fifth Edition.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
Systems Development Life Cycle
Security Development Lifecycle (SDL) Overview
Introduction to UML.
CSCE 548 Secure Software Development Risk-Based Security Testing
ISSeG Integrated Site Security for Grids WP2 - Methodology
Threat Modeling - An Overview All Your Data is Mine
Outline What if your task isn’t writing secure code?
Fundamentals of Information Systems, Sixth Edition
Systems Planning and Analysis
Fundamentals of Information Systems, Sixth Edition
Threat modeling Aalto University, autumn 2013.
Unified Modeling Language
Evaluating Existing Systems
Off-line Risk Assessment of Cloud Service Provider
Security Engineering.
Evaluating Program Security
Mike Goodwin OWASP Newcastle September 2017
Evaluating Program Security
Evaluating System Security Computer Security Peter Reiher May 31, 2016
Introduction to Systems Analysis and Design
Unified Modeling Language
Usability Techniques Lecture 13.
Software Design Lecture : 15.
Engineering Secure Software
Copyright Gupta Consulting, LLC.
Evaluating Program Security
Systems Development Life Cycle
Engineering Secure Software
Chapter 1 Key Security Terms.
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
MANAGEMENT of INFORMATION SECURITY, Fifth Edition
Threat Modelling and Risk Assessment
Evaluating Program Security
Presentation transcript:

Evaluating Existing Systems Standards approaches aren’t always suitable Not helpful for evaluating the security of running systems Not great for custom systems What do you do for those problems?

Two Different Kinds of Problems I need to evaluate the design and implementation of the system I need to evaluate what’s going on in the system as it runs

Evaluating System Design Security Sometimes standards aren’t the right choice What if you’re building your own custom system? Or being paid to evaluate someone else’s? That’s some companies’ business This kind of review is about design and architecture Evaluating running systems comes later

How Do You Evaluate a System’s Security? Assuming you have high degree of access to a system Because you built it or are working with those who did How and where do you start? Much of this material is from “The Art of Software Security Assessment,” Dowd, McDonald, and Schuh

Stages of Review You can review a program’s security at different stages in its life cycle During design Upon completion of the coding When the program is in place and operational Different issues arise in each case

Design Reviews Done perhaps before there’s any code Just a design Clearly won’t discover coding bugs Clearly could discover fundamental flaws Also useful for prioritizing attention during later code review

Purpose of Design Review To identify security weaknesses in a planned software system Essentially, identifying threats to the system Performed by a process called threat modeling Usually (but not always) performed before system is built

Attack Surfaces Attackers have to get into your software somehow The more ways they can interact with the software, the more things you must protect Some entry points are more dangerous than others E.g., those that lead to escalated privilege A combination of these factors defines a system’s attack surface The smaller the attack surface, the better But attack surface doesn’t indicate actual flaws, just places where they could occur

Threat Modeling Done in various ways One way uses a five step process: Information collection Application architecture modeling Threat identification Documentation of findings Prioritizing the subsequent implementation review

1. Information Collection Collect all available information on design Try to identify: Assets Entry points External entities External trust levels Major components Use scenarios

One Approach1 Draw an end-to-end deployment scenario Identify roles of those involved Identify key usage scenario Identify technologies to be used Identify application security mechanisms 1From http://msdn.microsoft.com/en-us/library/ms978527.aspx

Sources of Information Documentation Interviewing developers Standards documentation Source code profiling If source already exists System profiling If a working version is available

2. Application Architecture Modeling Using information gathered, develop understanding of the proposed architecture To identify design concerns And to prioritize later efforts Useful to document findings using some type of model

Modeling Tools for Design Review Markup languages (e.g., UML) Particularly diagramming features Used to describe OO classes and their interactions Also components and uses Data flow diagrams Used to describe where data goes and what happens to it

3. Threat Identification Based on models and other information gathered Identify major security threats to the system’s assets Sometimes done with attack trees

Attack Trees A way to codify and formalize possible attacks on a system Makes it easier to understand relative levels of threats In terms of possible harm And probability of occurring

A Sample Attack Tree For a web application involving a database Only one piece of the attack tree 1. Attacker gains access to user’s personal information 1.1 Gain direct access to database 1.2 Login as target user 1.3 Hijack user session 1.4 Intercept personal data 1.1.1 Exploit application hole 1.2.1 Brute force password attack 1.2.2 Steal user credentials 1.3.1 Steal user cookie 1.4.1 ID user connection 1.4.2 Sniff network

The STRIDE Approach Developed and used by Microsoft Part of their SDL threat modeling process1 Depends on having built a good system model diagram Showing components, data flows, interactions Specifying where data and control cross trust boundaries Then, for each element, consider the STRIDE threats 1http://blogs.technet.com/b/security/archive/2012/08/23/microsoft-s-free-security-tools-threat-modeling.aspx

STRIDE Threats Spoofing Tampering Repudiation Information Disclosure Denial of Service Escalation of Privilege

How To Apply STRIDE For each element in diagram, consider each possible STRIDE threat Some types of threats not applicable to some types of elements Pay particular attention to things happening across trust boundaries

4. Documentation of Findings Summarize threats found Give recommendations on addressing each Generally best to prioritize threats How do you determine priorities? DREAD methodology is one way

DREAD Risk Ratings Assign number from 1-10 on these categories: Damage potential Reproducibility Exploitability Affected users Discoverability Then add the numbers up for an overall rating Gives better picture of important issues for each threat

5. Prioritizing Implementation Review Review of actual implementation once it’s available Requires a lot of resources You probably can’t look very closely at everything Need to decide where to focus limited amount of attention

One Prioritization Approach Make a list of the major components Identify which component each risk (identified earlier) belongs to Total the risk scores for categories Use the resulting numbers to prioritize