Secure Software Development Abuse Cases Chapter 8 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.

Slides:



Advertisements
Similar presentations
Chapter 7 Management and Leadership
Advertisements

What is identity theft, and how can you protect yourself from it?
CSCE 522 Building Secure Software. CSCE Farkas2 Reading This lecture – McGraw: Ch. 3 – G. McGraw, Software Security,
Secure Software Development Software Security Touchpoints Chapter 3 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
1 Steve Chenoweth Friday, 10/21/11 Week 7, Day 4 Right – Good or bad policy? – Asking the user what to do next! From malware.net/how-to-remove-protection-system-
CS 197 Computers in Society Fall, Welcome, Freshmen!
Web Security A how to guide on Keeping your Website Safe. By: Robert Black.
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
Secure Software Development Security Operations Chapter 9 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
Managing Reuse Presented by: Aisha Al-Hammadi. Outline Introduction History. The technical and managerial advantages of Reusing Solutions. The main challenges.
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
Senior Design – Acceptance Test Plan Review The goal is to: define the criteria for approving the application. Tightly coupled to the Requirements document.
Test Driven Development Derived from Dr. Fawcett’s notes Phil Pratt-Szeliga Fall 2009.
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
28/08/2015SJF L31 F21SF Software Engineering Foundations ASSUMPTIONS AND TESTING Monica Farrow EM G30 Material available on Vision.
Secure Software Development Chapter 2 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
SECURITY REQUIREMENT FROM PROBLEM FRAMES PERPECTIVE Fabricio Braz 01/25/08.
Secure Software Development SW Penetration Testing Chapter 6 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
S/W Project Management
System Analysis & Design Introduction: System Analysis and design course intents to help students understand its importance in developing systems that.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Software Project Management Lecture # 8. Outline Chapter 25 – Risk Management  What is Risk Management  Risk Management Strategies  Software Risks.
Malicious Code Brian E. Brzezicki. Malicious Code (from Chapter 13 and 11)
CSCE 548 Secure Software Development Risk-Based Security Testing.
Secure Software Development Risk-Based Security Testing Chapter 7 Rasool Jalili & A. Boorghani Dept. of Computer Engineering Spring 2012.
Windows 2000 Security Policies & Practices: How to build your plan Mandy Andress, CISSP President ArcSec Technologies.
Chapter 7 Applying for a Job Chapter 7 Applying for a Job Lesson 7.1 Presenting Yourself Lesson 7.1 Presenting Yourself.
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
CSCE 548 Secure Software Development Test 1 Review.
Misuse and Abuse Cases: Getting Past the Positive.
Process Design (Requirements). Recall the Four Steps of Problem Solving * Orient Plan Execute Test These apply to any kind of problem, not just spreadsheet.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Opportunity Recognition
CS 350 – Software Design The Object Paradigm – Chapter 1 If you were tasked to write code to access a description of shapes that were stored in a database.
More on “The Huddersfield Method” A lightweight, pattern-driven method based on SSM, Domain Driven Design and Naked Objects.
Successful Interviews & Salary Negotiations Vic Snyder, Associate Director of Counseling 134 Mary Gates Hall, Box (206)
Lecture 13 Page 1 CS 236 Online Secure Programming CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Copyright (c) Cem Kaner. 1 Software Testing 1 CSE 3411 SWE 5411 Assignment #1 Replicate and Edit Bugs.
1 ISE 412 Usability Testing Purpose of usability testing:  evaluate users’ experience with the interface  identify specific problems in the interface.
Security - Why Bother? Your projects in this class are not likely to be used for some critical infrastructure or real-world sensitive data. Why should.
STRANGER AWARENESS. CONCEPT : Think critically about developing relationships with people online EXPECTATIONS: You should be able to...  compare and.
CSCE 522 Secure Software Development Best Practices.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 24 Delivering the System.
Security CS Introduction to Operating Systems.
22-January-2003cse FunctionalSpecs © 2003 University of Washington1 Functional Specs CSE 403, Winter 2003 Software Engineering
CSCE 522 Secure Software Development Best Practices.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
CSCE 201 Secure Software Development Best Practices.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
CSE SW Measurement and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M15 version 5.09Slide 1 SMU CSE.
CHAPTER 2 Laws of Security. Introduction Laws of security enable user make the judgment about the security of a system. Some of the “laws” are not really.
Problem Solving Pages Information and Managerial Decisions The role of a manager is to LEAD, PLAN, ORGANIZE, CONTROL. One of their main jobs.
Secure Software Development Security Operations Chapter 9 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
CSCI N201 Programming Concepts and Database 2 - STAIR Lingma Acheson Department of Computer and Information Science, IUPUI.
Systems Analyst (Module V) Ashima Wadhwa. The Systems Analyst - A Key Resource Many organizations consider information systems and computer applications.
Lecture 15 Page 1 CS 236 Online Evaluating Running Systems Evaluating system security requires knowing what’s going on Many steps are necessary for a full.
Lecture 13 Page 1 CS 236 Online Intrusion Detection Systems CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
By Ramesh Mannava.  Overview  Introduction  10 secure software engineering topics  Agile development with security development activities  Conclusion.
CHAPTER Section 6.1 What Is a Business Plan? Section 6.2 What Is a Business Opportunity? Opportunity Recognition.
©Copyright Copper Services 2012 Vendor Relationships Keys to Successful Communication Dete Waehner Manager of Vendor Partnerships, Copper Services Connecting.
Ethical, Safety and other issues when using the Internet Displays a knowledge of networking in terms of user- access Demonstrates responsible.
This was written with the assumption that workbooks would be added. Even if these are not introduced until later, the same basic ideas apply Hopefully.
How to Really Review Papers CS 8803 AIC. Prvulovic: CORD 2 Paper Reviewing Algorithm Read the paper Think about it Take a look at related work Leave it.
CSCE 548 Secure Software Development Risk-Based Security Testing
CSCE 548 Secure Software Development Use Cases Misuse Cases
Evaluating Existing Systems
Evaluating Existing Systems
CSCE 548 Secure Software Development Test 1 Review
Presentation transcript:

Secure Software Development Abuse Cases Chapter 8 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010

Software Security 2 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 Abuse Cases

Software Security 3 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 Software development is all about making software do something. The focus is on functionality.  when software vendors sell products, they talk about what their products do to make customers' lives easier, improving business processes,or doing something else positive. UML, use cases, and other modeling and design tools allow software people to formalize what the software will do. Assumption: the system won't be intentionally abused. But what if it is? Example Use Cases in a Payroll system: –The system allows users in the HR management group to view and modify salaries of all employees. –The system will only allow a basic user to view his or her own salary. Software development is all about making software do something. The focus is on functionality.  when software vendors sell products, they talk about what their products do to make customers' lives easier, improving business processes,or doing something else positive. UML, use cases, and other modeling and design tools allow software people to formalize what the software will do. Assumption: the system won't be intentionally abused. But what if it is? Example Use Cases in a Payroll system: –The system allows users in the HR management group to view and modify salaries of all employees. –The system will only allow a basic user to view his or her own salary. Abuse Cases

Software Security 4 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 More experienced consumers may say: "We want the software to be secure" or "We want the software to be reliable." In some cases, these kinds of wants are being formally and legally applied in SLAs and acceptance criteria regarding various system properties. The problem is that security, reliability, and other software -ilities are complicated In order to create secure and reliable software, abnormal behavior must somehow be anticipated. Idea: get out your black hat and think like a bad guy. More experienced consumers may say: "We want the software to be secure" or "We want the software to be reliable." In some cases, these kinds of wants are being formally and legally applied in SLAs and acceptance criteria regarding various system properties. The problem is that security, reliability, and other software -ilities are complicated In order to create secure and reliable software, abnormal behavior must somehow be anticipated. Idea: get out your black hat and think like a bad guy.

Software Security 5 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 Risk analysis is a big challenge as you start with a blank page and anticipate things that will go wrong. Same goes for testing (especially adversarial testing and penetration testing). The core of these touchpoints are hypotheses of what might go wrong. That's what abuse cases are all about. Abuse cases (misuse cases) are a tool that can help you begin to think about your software the same way that attackers do. With Qs “What can go wrong here?" or better, "What might some bad person cause to go wrong here?" software practitioners are more likely to uncover exceptional cases and security requirements. Think about what motivates an attacker. Pretend you're the bad guy. Now ask yourself: "What do I want?" Some ideas: –I want to steal all the money. –I want to learn the secret ways of the C-level executives. –I want to be root of my domain. Risk analysis is a big challenge as you start with a blank page and anticipate things that will go wrong. Same goes for testing (especially adversarial testing and penetration testing). The core of these touchpoints are hypotheses of what might go wrong. That's what abuse cases are all about. Abuse cases (misuse cases) are a tool that can help you begin to think about your software the same way that attackers do. With Qs “What can go wrong here?" or better, "What might some bad person cause to go wrong here?" software practitioners are more likely to uncover exceptional cases and security requirements. Think about what motivates an attacker. Pretend you're the bad guy. Now ask yourself: "What do I want?" Some ideas: –I want to steal all the money. –I want to learn the secret ways of the C-level executives. –I want to be root of my domain.

Software Security 6 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 Be creative when you do this! Bad guys want lots of different things. Bring out your inner bad character! Now ask yourself: "How can I accomplish my bad goal”? As thinking like an attacker needs experience, it is an opportune time to involve network security guys. A short history in the academic literature. An early paper on abuse cases at ACSAC in Abuse cases are not as commonly used as they should be. Be creative when you do this! Bad guys want lots of different things. Bring out your inner bad character! Now ask yourself: "How can I accomplish my bad goal”? As thinking like an attacker needs experience, it is an opportune time to involve network security guys. A short history in the academic literature. An early paper on abuse cases at ACSAC in Abuse cases are not as commonly used as they should be.

Software Security 7 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 Security is not a feature that can be added to software. Security is an evolving property of a system, not a feature. Because security is not a feature, it can't be “attached on" after other software features are codified. –Nor can it be "patched in" after attacks have occurred in the field. Sometimes this involves making explicit tradeoffs when specifying system requirements. –A non-easy-to-use authentication procedure! Security is not a feature that can be added to software. Security is an evolving property of a system, not a feature. Because security is not a feature, it can't be “attached on" after other software features are codified. –Nor can it be "patched in" after attacks have occurred in the field. Sometimes this involves making explicit tradeoffs when specifying system requirements. –A non-easy-to-use authentication procedure! Security Is Not a Set of Features

Software Security 8 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 Attackers are not standard-issue customers. Bad people who want your SW to act in some unanticipated way to their benefit. If the development process doesn't address unexpected or abnormal behavior, then attacker has plenty of raw material to work with. Attackers are creative, but we can be sure that some well-known locations will always be probed in the course of attacks: boundary conditions, edges, intersystem communication, and system assumptions. We can do this by asking and answering some critical questions: –What assumptions are implicit in our system? –What kinds of things would make our assumptions false? –What kinds of attack patterns will an attacker may use? Unfortunately, system creators rarely make the best security analysts for their own systems. Attackers are not standard-issue customers. Bad people who want your SW to act in some unanticipated way to their benefit. If the development process doesn't address unexpected or abnormal behavior, then attacker has plenty of raw material to work with. Attackers are creative, but we can be sure that some well-known locations will always be probed in the course of attacks: boundary conditions, edges, intersystem communication, and system assumptions. We can do this by asking and answering some critical questions: –What assumptions are implicit in our system? –What kinds of things would make our assumptions false? –What kinds of attack patterns will an attacker may use? Unfortunately, system creators rarely make the best security analysts for their own systems. What You Can't Do

Software Security 9 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 The simplest, most practical method for creating abuse cases is usually through a process of informed brainstorming. Formal methods are often unnecessary in the real world. A more practical approach that covers a lot of ground more quickly involves forming brainstorming teams that combine security and reliability experts with system designers. Abuse is always possible at the places where legitimate use is possible. Brainstorming involves: –a careful look at all user interfaces (including environment factors) –as well as functional security requirements and considers –what things most developers assume a person can't or won't do. These can'ts and won'ts take many forms, such as: –"Users can't enter more than 50 characters because the JavaScript code won't let them." –"The user doesn't understand the format of the cached data. They can't modify it." Attackers, unfortunately, make can'ts and won'ts happen with some regularity. The simplest, most practical method for creating abuse cases is usually through a process of informed brainstorming. Formal methods are often unnecessary in the real world. A more practical approach that covers a lot of ground more quickly involves forming brainstorming teams that combine security and reliability experts with system designers. Abuse is always possible at the places where legitimate use is possible. Brainstorming involves: –a careful look at all user interfaces (including environment factors) –as well as functional security requirements and considers –what things most developers assume a person can't or won't do. These can'ts and won'ts take many forms, such as: –"Users can't enter more than 50 characters because the JavaScript code won't let them." –"The user doesn't understand the format of the cached data. They can't modify it." Attackers, unfortunately, make can'ts and won'ts happen with some regularity. Creating Useful Abuse Cases

Software Security 10 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 System architects and project managers often respond to the very idea of abuse cases by claiming, "But no one would do these things.“ These claims are correct if the worldview is limited to legitimate users. Virtually any system that has value, can be abused. System architects and project managers often respond to the very idea of abuse cases by claiming, "But no one would do these things.“ These claims are correct if the worldview is limited to legitimate users. Virtually any system that has value, can be abused. no one would do these things …

Software Security 11 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 Unfortunately, abuse cases are only rarely used in practice even though the idea seems natural. The next slide …………………. Abuse cases are to be built by a team of Requirements people and Security analysts (RAs and SAs). This team starts with –a set of requirements, –a set of standard use cases (or user stories), and –a list of attack patterns. These raw material are combined by a process to create abuse cases. Two critical activities of abuse case development are: –Creating anti-requirements –Creating an attack model Unfortunately, abuse cases are only rarely used in practice even though the idea seems natural. The next slide …………………. Abuse cases are to be built by a team of Requirements people and Security analysts (RAs and SAs). This team starts with –a set of requirements, –a set of standard use cases (or user stories), and –a list of attack patterns. These raw material are combined by a process to create abuse cases. Two critical activities of abuse case development are: –Creating anti-requirements –Creating an attack model Abuse Case Development

Software Security 12 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010

Software Security 13 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 In developing a software system, thinking explicitly about the things that you don't want your software to do is as important as the things that you do want. Very close to the requirements, called anti-requirements. Anti-requirements provide how a malicious user, attacker, competitor can abuse your system. Anti-requirements determine what happens when a functionality goes away. E.g.: “what happens in the absence of the crypto module” in a system with the requirement of encrypting some data while being written on disk. Abuse cases based on anti-requirements lead to stories about what happens in the case of failure, especially security related failure. In developing a software system, thinking explicitly about the things that you don't want your software to do is as important as the things that you do want. Very close to the requirements, called anti-requirements. Anti-requirements provide how a malicious user, attacker, competitor can abuse your system. Anti-requirements determine what happens when a functionality goes away. E.g.: “what happens in the absence of the crypto module” in a system with the requirement of encrypting some data while being written on disk. Abuse cases based on anti-requirements lead to stories about what happens in the case of failure, especially security related failure. Creating Anti- Requirements

Software Security 14 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 An attack model through explicit consideration of known attacks or attack types. Attack patterns are extremely useful. To create an attack model: –Select those attack patterns relevant to your system. Build abuse cases around those attack patterns. –Include anyone who can gain access to the system, as threats must encompass all potential sources of danger to the system. The process in the previous slide, results in a number of useful artifacts. The activities are designed to create a list of threats and their goals (a "proper threat model"), a list of relevant attack patterns, and a unified attack model. These are all side effects of the anti-requirements and attack model activities. The process creates a set of ranked abuse cases--what your system does under those attacks most likely to be experienced. This is a process that requires extensive use of your black hat. An attack model through explicit consideration of known attacks or attack types. Attack patterns are extremely useful. To create an attack model: –Select those attack patterns relevant to your system. Build abuse cases around those attack patterns. –Include anyone who can gain access to the system, as threats must encompass all potential sources of danger to the system. The process in the previous slide, results in a number of useful artifacts. The activities are designed to create a list of threats and their goals (a "proper threat model"), a list of relevant attack patterns, and a unified attack model. These are all side effects of the anti-requirements and attack model activities. The process creates a set of ranked abuse cases--what your system does under those attacks most likely to be experienced. This is a process that requires extensive use of your black hat. Creating an Attack Model

Software Security 15 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Fall 2010 Determining the can'ts and won'ts is often difficult for those who think only about positive features. Some guidance exists in the form of attack patterns. Attack patterns can be used to guide abuse case development. Determining the can'ts and won'ts is often difficult for those who think only about positive features. Some guidance exists in the form of attack patterns. Attack patterns can be used to guide abuse case development. Summary: Abuse Cases Are Useful