Day O’ Security An Introduction to the Microsoft Security Development Lifecycle Day 1: Threat Modelling - CIA and STRIDE.

Slides:



Advertisements
Similar presentations
Sachin Rawat Crypsis SDL Threat Modeling.
Advertisements

Operating System Security
Cryptography and Network Security 2 nd Edition by William Stallings Note: Lecture slides by Lawrie Brown and Henric Johnson, Modified by Andrew Yang.
Risk Assessment What is RISK?  requires vulnerability  likelihood of successful attack  amount of potential damage Two approaches:  threat modeling.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Engineering Secure Software. Uses of Risk Thus Far  Start with the functionality Use cases  abuse/misuse cases p(exploit), p(vulnerability)  Start.
Copyright © Microsoft Corp 2006 Introduction to Threat Modeling Michael Howard, CISSP Senior Security Program Manager Security Engineering and Communication.
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-
Lecture 2 Page 1 CS 236, Spring 2008 Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher Spring, 2008.
1 Cryptography and Network Security Third Edition by William Stallings Lecturer: Dr. Saleem Al_Zoubi.
Security Engineering II. Problem Sources 1.Requirements definitions, omissions, and mistakes 2.System design flaws 3.Hardware implementation flaws, such.
April 1, 2004ECS 235Slide #1 Chapter 1: Introduction Components of computer security Threats Policies and mechanisms The role of trust Assurance Operational.
Cryptography and Network Security Third Edition by William Stallings Lecture slides by Lawrie Brown.
Sanjay Goel, School of Business/Center for Information Forensics and Assurance University at Albany Proprietary Information 1 Unit Outline Information.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Security Risk Management Marcus Murray, CISSP, MVP (Security) Senior Security Advisor, Truesec
D ATABASE S ECURITY Proposed by Abdulrahman Aldekhelallah University of Scranton – CS521 Spring2015.
Threat Modeling for Cloud Computing (some slides are borrowed from Dr. Ragib Hasan) Keke Chen 1.
Air Force Association (AFA) 1. 1.Access Control 2.Four Steps to Access 3.How Does it Work? 4.User and Guest Accounts 5.Administrator Accounts 6.Threat.
Architecting secure software systems
1 Threat Modeling at Symantec OWASP WWW, Irvine, CA, January 28, 2011 Threat Modeling at Symantec Edward Bonver Principal Software Engineer, Symantec Product.
Cryptography and Network Security
Eng. Wafaa Kanakri Second Semester 1435 CRYPTOGRAPHY & NETWORK SECURITY Chapter 1:Introduction Eng. Wafaa Kanakri UMM AL-QURA UNIVERSITY
Security Security is a measure of the system’s ability to protect data and information from unauthorized access while still providing access to people.
1 Presented by July-2013, IIM Indore. 2  RFID = Radio Frequency IDentification.  RFID is ADC (Automated Data Collection) technology that:-  uses radio-frequency.
Software Security Testing Vinay Srinivasan cell:
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
John Carpenter & lecture & Information Security 2008 Lecture 1: Subject Introduction and Security Fundamentals.
Chapter 1 Overview The NIST Computer Security Handbook defines the term Computer Security as:
APPLICATION PENETRATION TESTING Author: Herbert H. Thompson Presentation by: Nancy Cohen.
Module 6: Designing Security for Network Hosts
1 Chapter 1 – Background Computer Security T/ Tyseer Alsamany - Computer Security.
Lecture slides prepared for “Computer Security: Principles and Practice”, 3/e, by William Stallings and Lawrie Brown, Chapter 1 “Overview”. © 2016 Pearson.
Topic 1 – Introduction Huiqun Yu Information Security Principles & Applications.
Topic 5: Basic Security.
IT Security. What is Information Security? Information security describes efforts to protect computer and non computer equipment, facilities, data, and.
Quality of Information System (IS) reflecting local correctness and reliability of the operating system; the logical completeness of the hardware and software.
Chap1: Is there a Security Problem in Computing?.
Protecting Browsers from Extension Vulnerabilities Paper by: Adam Barth, Adrienne Porter Felt, Prateek Saxena at University of California, Berkeley and.
Ingredients of Security
Module 2: Designing Network Security
What is RISK?  requires vulnerability  likelihood of successful attack  amount of potential damage Two approaches:  threat modeling  OCTAVE Risk/Threat.
The Digital Crime Scene: A Software Perspective Written By: David Aucsmith Presented By: Maria Baron.
Design Principles and Common Security Related Programming Problems
INTRODUCTION TO COMPUTER & NETWORK SECURITY INSTRUCTOR: DANIA ALOMAR.
Chapter 1: Security Governance Through Principles and Policies
Module 7: Designing Security for Accounts and Services.
E-Commerce E-Commerce Security?? Instructor: Safaa S.Y. Dalloul E-Business Level Try to be the Best.
PREPARED BY: MS. ANGELA R.ICO & MS. AILEEN E. QUITNO (MSE-COE) COURSE TITLE: OPERATING SYSTEM PROF. GISELA MAY A. ALBANO PREPARED BY: MS. ANGELA R.ICO.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
Lecture 1 Introduction Dr. nermin hamza 1. Aim of Course Overview Cryptography Symmetric and Asymmetric Key management Researches topics 2.
CS457 Introduction to Information Security Systems
Threat Modeling for Cloud Computing
SE-1021 Software Engineering II
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Threat Modeling - An Overview All Your Data is Mine
Design for Security Pepper.
Secure Software Confidentiality Integrity Data Security Authentication
Evaluating Existing Systems
Threat modeling Aalto University, autumn 2013.
Evaluating Existing Systems
Off-line Risk Assessment of Cloud Service Provider
development lifecycle & Principles
Lecture 2 - SQL Injection
How to Mitigate the Consequences What are the Countermeasures?
Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Engineering Secure Software
Presentation transcript:

Day O’ Security An Introduction to the Microsoft Security Development Lifecycle Day 1: Threat Modelling - CIA and STRIDE

A Threat Modelling Conversation The Thespians Paige: a young, bright software developer. Michael: a simple security guy at Microsoft. Scene I A small hallway between two sets of cubicles, supposedly designed to enhance agile software development and communication. Paige: Hey, grumps. I need your help building some software. Michael: So? Paige: Seriously, I want your help building this system I'm working on. Michael: You mean you're going to design something, build it, pretend to test it, and then ask me to find the security vulnerabilities? Paige: Don't be so grumpy. No, I want your help up front. Pause: Michael wipes his hand down his face and forces a smile.

glossary.html

Some Definitions Asset - any valuable resource, e.g. database data, file system data, system resource. Threat - any potential occurrence (malicious or inadvertent) that could harm or impede an asset. Vulnerability - any weakness which makes possible a threat to an asset. Exploit - the implementation of a threat against a vulnerability (previously synonymous with Attack). Attack - application of an exploit; any action designed to harm an asset. Mitigation - any strategy, technique or circumstance that reduces the threat posed by a vulnerability. Spam - cooked meat, nice in sandwiches.

C.I.A. C is for Intecrity Data cannot be modified undetectably. I is for Availability Data must be available when needed. A is for Confidentiality Data cannot be disclosed to unauthorized individuals / systems.

I.A.C. I is for Integrity Data cannot be modified undetectably. A is for Availability Data must be available when needed. C is for Confidentiality Data cannot be disclosed to unauthorized individuals / systems.

Security Development Lifecycle (SDL) Trustworthy Computing – Directive issued by Bill Gates, January Encapsulated “S3+C”: Security (and privacy) by design; Security (and privacy) by default; Security (and privacy) in deployment; Communications. Set of policies, processes, tools, resources. Example tool: SDL Process Template for VSTS.

So Just What’s So Good about the SDL Process Template for VSTS? Installs SDL requirements as work items. Includes SDL-based check-in policies. Customizes security bugs and queries. Includes extensive SDL how-to and guidance documentation. Generates auditable Final Security Review report Accommodates third-party tool integration, e.g. the SDL Threat Modeling Tool.SDL Threat Modeling Tool Includes project plans and security risk assessment templates.

SDL Mandatory Security Activities in a Traditional (or should that be Legacy) Software Development Lifecycle

A New Process: SDL + Agile SDL predates Agile Adaptation involves identifying three requirement categories: 1.One-Time 2.Every-Sprint 3.Bucket

Optimizing Secure Software Development

Four levels of business maturity

The Classic Saltzer and Schroeder Design Principles Open design: Assume the attackers have the sources and the specs. Fail-safe defaults: Fail closed; no single point of failure. Least privilege: No more privileges than what is needed. Economy of mechanism: Keep it simple, stupid. Separation of privileges: Don’t permit an operation based on a single condition. Total mediation: Check everything, every time. Least common mechanism: Beware of shared resources. Psychological acceptability: Will they use it?

Security Properties Confidentiality: Data is only available to the people intended to access it. Integrity: Data and system resources are only changed in appropriate ways by appropriate people. Availability: Systems are ready when needed and perform acceptably. Authentication: The identity of users is established (or you’re willing to accept anonymous users). Authorization: Users are explicitly allowed or denied access to resources. Non-repudiation: Users can’t perform an action and later deny performing it.

Threat Types - S.T.R.I.D.E. Spoofing Tampering Repudiation Information Disclosure Denial of Service Elevation of Privilege

Elevation of Privilege (EoP) Card Game

Examples evation-of-privilege-revisited.html evation-of-privilege-revisited.html

Spoofing Spoofing describes any threat allowing an attacker to: Pretend to be someone or something else. Threat against: Authentication. Example: “Phishing”

Tampering Tampering describes any threat allowing an attacker to: Alter or destroy data, where this would normally be disallowed by the application. Threat against: Integrity. Tampering attacks can be directed against static data files or network packets.

Repudiation Repudiation describes any threat allowing an attacker to: Perform an action, then deny that they ever did it. Threat against: Non-repudiation. Mitigation example: secure log file with time stamps.

Information Disclosure Information Disclosure describes any threat allowing an attacker to: Expose information to someone not authorised to see it. Threat against: Confidentiality. Can occur with static data files as well as network packets.

Denial of Service Denial of Service describes any threat allowing an attacker to: Degrade or deny service to users. Threat against: Availability. Examples: crash or flood your server.

Elevation of Privilege Elevation of Privilege describes any threat allowing an attacker to: Gain privileges they would not normally have. Threat against: Authorization. Example: buffer overflow in an app running as SYSTEM - lets attacker run arbitrary code at a very high privilege level. Mitigation: principle of least privilege.

Auntie Beeb's Virus

Your Password Sucks

Threat Modelling us/magazine/cc aspx us/magazine/cc aspx Threat modelling is an integral part of the Security Development Lifecycle. Start with a Data Flow Diagram.

Data Flow Diagram Symbols Data flow: One way arrow Data store: Two parallel horizontal lines Process: Circle Multi-process: Two concentric circles Interactors: Rectangle Trust boundary: Dotted line

Threats Affecting Elements ElementData FlowsData StoresProcessesInteractors Spoofing ** Tampering *** Repudiation ** Information Disclosure *** Denial of Service *** Elevation of Privilege *

Analyzer Database Let's say you need a system to collect the accounting files from your sales force, compute sales data on your database server, and produce weekly reports. We'll call the system the Analyzer Database. The goal is fairly simple: getting files from a set of systems and performing some analysis of the files on a centralized server. There are many obvious potential threats to this system, and many of them come from the implicit security requirements of the problem statement. The collection process alone raises a number of questions. Collecting information means moving it from one place to another. How are you going to secure it in transit? You'll be manipulating accounting files, which by their very nature are sensitive and often subject to legal requirements. And you'll need to identify a specific group of people—the sales force. How will you know them?

An Initial DFD for the Analyzer Database

General Rules for a DFD First, be careful of magic data sources or sinks: data isn't created out of thin air. Second, beware of psychokinesis as a data transport. Third, collapse similar elements within a single trust boundary into a single element for modelling purposes. Fourth, be careful when modelling details on either side of a trust boundary.

A Better DFD

Analyzing Data Flows ElementData FlowsData StoresProcessesInteractors Spoofing ** Tampering *** Repudiation ** Information Disclosure *** Denial of Service *** Elevation of Privilege *

Analyzing Data Stores ElementData FlowsData StoresProcessesInteractors Spoofing ** Tampering *** Repudiation ** Information Disclosure *** Denial of Service *** Elevation of Privilege *

Analyzing Processes ElementData FlowsData StoresProcessesInteractors Spoofing ** Tampering *** Repudiation ** Information Disclosure *** Denial of Service *** Elevation of Privilege *

Mitigations Mitigate a threat with a strong, well- understood solution. Example: strong cryptography against Information Disclosure threats. Q1: can the technology be used to mitigate the threat? Q2: would it actually be used in the given scenario?

Attack Patterns The manifestation of one or more threats in the context of some specific technology. Example: strcpy in C may let an attacker input long strings to corrupt program memory, allowing arbitrary code execution. Same vulnerability may be used in other ways.