Engineering Secure Software

Slides:



Advertisements
Similar presentations
Engineering Secure Software. Does Security Even Matter?  At your table, introduce yourselves: Your name, degree, & app domain What is your favorite software.
Advertisements

Engineering Secure Software. Uses of Risk Thus Far  Start with the functionality Use cases  abuse/misuse cases p(exploit), p(vulnerability)  Start.
Engineering Secure Software. The Power of Source Code  White box testing Testers have intimate knowledge of the specifications, design, Often done by.
CSCE 522 Building Secure Software. CSCE Farkas2 Reading This lecture – McGraw: Ch. 3 – G. McGraw, Software Security,
EXAMINING CYBER/COMPUTER LAW BUSINESS LAW. EXPLAIN CYBER LAW AND THE VARIOUS TYPES OF CYBER CRIMES.
Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education.
6/4/2015National Digital Certification Agency1 Security Engineering and PKI Applications in Modern Enterprises Mohamed HAMDI National.
Fall 2009ACS-3913 Ron McFadyen1 Use Cases Used to capture functional requirements – there are other requirements categories such as usability, reliability,
Security administrators The experts need better tools too!
Engineering Secure Software. Why do we study risk?  Many outcomes are possible, not all are probable  Enumeration  Prioritization  Discussion.
System Sequence Diagrams
BUS1MIS Management Information Systems Semester 1, 2012 Week 7 Lecture 1.
CSCE 548 Secure Software Development Risk-Based Security Testing.
Managing Changing Requirements: Structure the Use Case Model PowerPoint Presentation derived from IBM/Rational course Mastering Requirements Management.
Prepared by: Dinesh Bajracharya Nepal Security and Control.
Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill/Irwin Business Plug-In B6 Information Security.
Requirements Elicitation. Who are the stakeholders in determining system requirements, and how does their viewpoint influence the process? How are non-technical.
Team 16 : MedFRS Device Diagnostic Software Misha DowdProject Manager Delnaz GundeviaLife Cycle Planner Anfal Abdul JaleelSystem Architect Nanda Kishore.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
A Basic Introduction to Computer Security John H. Porter University of Virginia Department of Environmental Sciences.
Faculty of Computer & Information
OOSE Use Case. Requirement Functional: –Features, capabilities, and security Non Functional: –Usability: Human factors, help, and documentation –Reliability:
CSCE 522 Secure Software Development Best Practices.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
CS 772: Global Knowledge Networks V. “Juggy” Jagannathan CSEE, West Virginia University.
System Sequence Diagrams Tutorial. Use-Case for Monopoly game Monopoly game Use Case UC1: Play Monopoly Game Scope: Monopoly application Level: user goal.
CSCE 201 Secure Software Development Best Practices.
Introduction and Overview of Information Security and Policy By: Hashem Alaidaros 4/10/2015 Lecture 1 IS 332.
Engineering Secure Software. Does Security Even Matter?  Find two other people near you Introduce yourself What is your favorite software development.
Requirements capture: Using UML Use Cases David Millard and Yvonne Howard {dem,
Active! CODE BLUE An Emergency Alert (SMS) Solution Specially for Hospitals.
Pepper modifying Sommerville's Book slides
In the Senior Design Center
Buffer Overflows Incomplete Access Control
CSCE 548 Secure Software Development Risk-Based Security Testing
ISSeG Integrated Site Security for Grids WP2 - Methodology
CMPE 280 Web UI Design and Development August 29 Class Meeting
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Case Design – Model Based Testing João Pascoal.
Security: Exploits & Countermeasures
Engineering Secure Software
CSCE 548 Secure Software Development Use Cases Misuse Cases
Evaluating Existing Systems
Use case diagrams A use case diagram is UML’s notation for showing the relationships among a set of use cases and actors A use case diagram can help the.
ETHICAL & SOCIAL IMPACT OF INFORMATION SYSTEMS
Evaluating Existing Systems
Security Engineering.
In the Senior Design Center
Engineering Secure Software
development lifecycle & Principles
Engineering Secure Software
INFORMATION SYSTEMS SECURITY and CONTROL
Chapter 6 – Architectural Design
Chapter 5 Architectural Design.
CS240: Advanced Programming Concepts
Engineering Secure Software
In the Senior Design Center
Engineering Secure Software
Security Risk Assessment
Security: Exploits & Countermeasures
Security: Exploits & Countermeasures
Chapter 5 Architectural Design.
Engineering Secure Software
Security Risk Assessment
Engineering Secure Software
White Box testing & Inspections
Data Access in Your Code Thinking Outside the Framework
Engineering Secure Software
Security: Attacks & Countermeasures
Chapter 3 Software.
Use cases Dr. X.
Presentation transcript:

Engineering Secure Software Misuse and Abuse cases

What is a requirement? How do you define it? If done well, what are they useful for? © 2011-2012 Andrew Meneely

Key Requirement Properties What the system should… Do Not do Who interacts with the system (actors) Highly domain-specific Describe how the surrounding environment has changed as a result of the system

Security is Not a Set of Features Secure is an emergent property of software “Being dry” in a tent in the rain Being secure is the result of many, many factors, not one feature (e.g. SSL) …so requirements documents should not just be a list of features

Unintended Functionality What the system is What the System Should Be Vulnerabilities Faults Non-security faults (bugs) Vulnerabilities are in areas of too much functionality Copyright © Andrew Meneely

Use Case Review Use cases include: Actor Preconditions Main flow describes the primary scenario Alternative scenarios describe how the system reacts to alternative cases

Misuse & Abuse Cases A scenario within a use case in which an actor compromises the system Flow of events, but with malicious usage Define the harm done to the system Keys: Domain, domain, domain. Don’t focus on coding and design vulnerabilities here Malicious actors are creative Question the assumptions of the system Focus on what the actor can do over will do (prioritize later)

Misuse vs. Abuse Misuse is unintentional Abuse is intentional Misuse cases are still security-related (crime of opportunity) Abuse cases imply the actor is actively seeking vulnerabilities

e.g. Maintain Drug Interactions Actor: Hospital Administrator Precondition: Admin is authenticated. Main Flow: Admin selects two different drug codes from the National Drug Codes selection menu Admin enters a minimum dosage for both drugs Admin enters text notes about the potential consequences of the interaction Admin is shown a table of patient records where the interaction rule would apply Admin saves the interaction rule

e.g. Misusing Maintain Drug Interactions Misuse case Main flow steps 1-3 Admin is shown a set of patient records that have not been authorized for hospital administrator viewing Harm done: Patient privacy has been violated

e.g. Abusing Maintain Drug Interactions Abuse case Actor: attacker who has spoofed an administrator’s identity Repeat Main Flow steps 10,000 times Providing many rules for all different drug interactions Auto-generate vague, technical text notes for each interaction rule Stop when the preview step takes over a minute to complete Harm done: Patients are overwhelmed by alerts, so alerts become ignored Availability of the system is compromised

Isn’t this infinite? Yes But even one good abuse case goes far Easier to think beyond one scenario Starts a discussion Gets stakeholders and developers into a balanced mindset early on Motivates good design decisions

Security Requirements Generalized forms of misuse and abuse cases Use-cases trace to security requirements Document these in the main flow Also called “anti-requirements” E.g. from Maintain Drug Interactions Hospital administrators are only allowed to view a patient’s record with explicit, opt-in indication from the patient All actors are limited to 10 server requests per minute

Actor Inspiration Think of the best engineer on your team Fire them and humiliate them publicly Now challenge them to break your system What would they go after? What knowledge could they leverage the most?

Assumptions Inspiration What are the other non-malicious users expecting in this domain? What are the ramifications of violating access restrictions? Where could an attacker “sit in the middle” Sniff the network? Load a plug-in?

Today’s Activity See course website for “Abuse & Misuse Cases” Systems are: An auction website A charity micro-lending website (e.g. Kiva.org) A social networking website for model rocket hobbyists A smartphone app for trading recipes with people in your neighborhood A reservation system for virtual images to be run on server farms