Introduction to Microsoft Security Development Lifecycle (SDL) Threat Modeling



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

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

Microsoft STRIDE (six) threat categories

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

Application Security Testing

Secure Programming Lecture 9: Secure Development

In Building Security In, Gary McGraw proposes three pillars to use throughout the lifecycle: I: Applied Risk Management

Windows Server 2008/2012 Server Hardening

Threat Modeling. Frank Piessens ) KATHOLIEKE UNIVERSITEIT LEUVEN

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

Web Application Security

Introduction to Information Security

The Security Development Lifecycle. Steven B. Lipner, CISSP Senior Director Security Engineering Strategy Microsoft Corp.

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

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

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

Security and Compliance. Robert Nottoli Principal Technology Specialist Microsoft Corporation

Managing Local Administrator Passwords with LAPS 10/14/2015 PENN STATE SECURITY CONFERENCE

Microsoft Security Development Lifecycle for IT. Rob Labbé Application Consulting and Engineering Services

Computer Security: Principles and Practice

Thick Client Application Security

3. Broken Account and Session Management. 4. Cross-Site Scripting (XSS) Flaws. Web browsers execute code sent from websites. Account Management

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

An Approach to Threat Modeling in Web Application Security Analysis

Security Goals Services

Web application testing

BEST PRACTICES FOR SECURITY TESTING TOP 10 RECOMMENDED PRACTICES

Security and Privacy in Cloud Computing

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

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

Topics in Network Security

Windows Phone 8 Security Overview

Operating System Security

Chapter 8 Security. IC322 Fall Computer Networking: A Top Down Approach. 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012

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

Windows 7. Qing Liu Michael Stevens

Application Design and Development

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

Software Security Touchpoint: Architectural Risk Analysis

Chapter 7 Transport-Level Security

Rational AppScan & Ounce Products

What s New in MySQL 5.7 Security Georgi Joro Kodinov Team Lead MySQL Server General Team

Rapid Threat Modeling Techniques

BMC Performance Manager Windows Security White Paper DCOM / WMI

APIs The Next Hacker Target Or a Business and Security Opportunity?

EC-Council E C S P.NET. EC-Council. EC-Council Certified Secure Programmer (.NET)

Mobile Application Threat Analysis

6WRUP:DWFK. Policies for Dedicated SQL Servers Group

Web Application Security Considerations

Windows Azure Security

Security Overview for Windows Vista. Bob McCoy, MCSE, CISSP/ISSAP Technical Account Manager Microsoft Corporation

ArcGIS Server Security Threats & Best Practices David Cordes Michael Young

CS 356 Lecture 25 and 26 Operating System Security. Spring 2013

How to Time Stamp PDF and Microsoft Office 2010/2013 Documents with the Time Stamp Server

iscsi Security (Insecure SCSI) Presenter: Himanshu Dwivedi

Security & Privacy on the WWW. Topic Outline. Information Security. Briefing for CS4173

Application Intrusion Detection

BlackBerry 10.3 Work and Personal Corporate

The introduction covers the recent changes is security threats and the effect those changes have on how we protect systems.

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

The Risks that Pen Tests don t Find. OWASP 13 April The OWASP Foundation

THREAT MODELLING FOR WEB SERVICES BASED WEB APPLICATIONS

tj.jmffliim.upij II, 14 1" H'H'.i.U.' Threat Modeling Designing for Security Adam Shostack WILEY

FileMaker Security Guide The Key to Securing Your Apps

Semantic based Web Application Firewall (SWAF V 1.6) Operations and User Manual. Document Version 1.0

OWASP and OWASP Top 10 (2007 Update) OWASP. The OWASP Foundation. Dave Wichers. The OWASP Foundation. OWASP Conferences Chair

The Definitive Guide. Active Directory Troubleshooting, Auditing, and Best Practices Edition Don Jones

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

What is Web Security? Motivation

Revision History Revision Date Changes Initial version published to

OWASP AND APPLICATION SECURITY

How To Manage Web Content Management System (Wcm)

FORBIDDEN - Ethical Hacking Workshop Duration

Experiences Threat Modeling at Microsoft

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

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

NNT CIS Microsoft Windows Server 2008 R2 Benchmark Level 1 Member Server v

SAFECode Security Development Lifecycle (SDL)

Application Compatibility Best Practices for Remote Desktop Services

Microsoft Dynamics GP SQL Server Reporting Services Guide

Deploy Remote Desktop Gateway on the AWS Cloud

CS 665: Computer System Security. Network Security. Usage environment. Sources of vulnerabilities. Information Assurance Module

Database Security Guide

Threat Modelling (Web)Apps Myths and Best Practices OWASP The OWASP Foundation Matthias Rohr

ICTN Enterprise Database Security Issues and Solutions

Learn Ethical Hacking, Become a Pentester

7 Network Security. 7.1 Introduction 7.2 Improving the Security 7.3 Internet Security Framework. 7.5 Absolute Security?

10 Key Things Your VoIP Firewall Should Do. When voice joins applications and data on your network

Transcription:

Introduction to Microsoft Security Development Lifecycle (SDL) Threat Modeling Secure software made easier Presenter Name Date

Course Overview Introduction and Goals How to Threat Model The STRIDE per Element Approach to Threat Modeling Diagram Validation Rules of Thumb Exercise Demo

Terminology and Context SDL Threat Modeling All engineers Core People involved Security Experts Internet Engineering Task Force (IETF) Threat Modeling Development stage Requirements Design Design analysis

Threat Modeling Basics Who? The bad guys will do a good job of it Maybe you will your choice What? A repeatable process to find and address all threats to your product When? The earlier you start, the more time to plan and fix Worst case is for when you re trying to ship: Find problems, make ugly scope and schedule choices, revisit those features soon Why? Find problems when there s time to fix them Security Development Lifecycle (SDL) requirement Deliver more secure products How?

Who Building a threat model (at Microsoft) Program Manager (PM) owns overall process Testers Identify threats in analyze phase Use threat models to drive test plans Developers create diagrams Customers for threat models Your team Other features, product teams Customers, via user education External quality assurance resources, such as pen testers You ll need to decide what fits to your organization

What Consider, document, and discuss security in a structured way Threat model and document The product as a whole The security-relevant features The attack surfaces Assurance that threat modeling has been done well

Why Produce software that s secure by design Improve designs the same way we ve improved code Because attackers think differently Creator blindness/new perspective Allow you to predictably and effectively find security problems early in the process

SSDP 8 SSDP 10 Get version info Cache Castle info Set version info Query other Castle info Read Castle info Local User 1 Manage Castle Feedback Publish this Castle info Explorer (or rundl132) 2 Manage Castle Feedback Join, leave, Set users props Castle Service 8 Query users props Set acct info Get acct info Get machine password Set psswd Shacct 4 Set acct info Get acct info Remote Castle Service 9

SSDP 8 SSDP 10 Get version info Cache Castle info Set version info Query other Castle info Read Castle info Local User 1 Publish this Castle info Explorer (or rundl132) 2 Manage Castle Feedback Join, leave, Set users props Castle Service 8 Query users props Set acct info Get acct info Get machine password Set psswd Shacct 4 Set acct info Get acct info Remote Castle Service 9

Any Questions? Everyone understands that? Spotted the several serious bugs? Let s step back and build up to that

The Process in a Nutshell Diagram Identify Threats Validate Mitigate

The Process: Diagramming Diagram Identify Threats Validate Mitigate

How to Create Diagrams Go to the whiteboard Start with an overview which has: A few external interactors One or two processes One or two data stores (maybe) Data flows to connect them Check your work Can you tell a story without edits? Does it match reality?

Diagramming Use DFDs (Data Flow Diagrams) Include processes, data stores, data flows Include trust boundaries Diagrams per scenario may be helpful Update diagrams as product changes Enumerate assumptions, dependencies Number everything (if manual)

Diagram Elements: Examples External Entity Process People Other systems Microsoft.com DLLs EXEs COM object Components Services Web Services Assemblies Trust Boundary Process boundary File system Data Flow Function call Network traffic Remote Procedure Call (RPC) Data Store Database File Registry Shared Memory Queue / Stack

Diagrams: Trust Boundaries Add trust boundaries that intersect data flows Processes talking across a network always have a trust boundary They make may create a secure channel, but they re still distinct entities Encrypting network traffic is an instinctive mitigation But doesn t address tampering or spoofing Points/surfaces where an attacker can interject Machine boundaries, privilege boundaries, integrity boundaries are examples of trust boundaries Threads in a native process are often inside a trust boundary, because they share the same privs, rights, identifiers and access 19

Diagram Iteration Iterate over processes, data stores, and see where they need to be broken down How to know it needs to be broken down? More detail is needed to explain security impact of the design Object crosses a trust boundary Words like sometimes and also indicate you have a combination of things that can be broken out Sometimes this datastore is used for X probably add a second datastore to the diagram

Context Diagram Resource integrity information integrity App Administrator Analysis Instructions

Level 1 Diagram

Diagram layers Context Diagram Very high-level; entire component / product / system Level 1 Diagram High level; single feature / scenario Level 2 Diagram Low level; detailed sub-components of features Level 3 Diagram More detailed Rare to need more layers, except in huge projects or when you re drawing more trust boundaries

Creating Diagrams: analysis or synthesis? Top down Gives you the context in context diagram Focuses on the system as a whole More work at the start Bottom up Feature crews know their features Approach not designed for synthesis More work overall

Diagram Validation Rules of Thumb Does data magically appear? Order Customer Web Server SQL Database Confirmation Data comes from external entities or data stores

Diagram Validation Rules of Thumb Are there data sinks? Transaction Web Server SQL Server Database Analytics You write to a store for a reason: Someone uses it.

Diagram Validation Rules of Thumb Data doesn t flow magically Order Database Returns Database

Diagram Validation Rules of Thumb It goes through a process Order Database RMA Returns Database

Diagrams Should Not Resemble Flow charts Class diagrams Call graphs

Real Context Diagram ( Castle ) Castle Config Castle Config Castle Service Local User Feedback Feedback Join/Leave Castle Remote Castle

Castle Level 1 Diagram SSDP 10 SSDP 8 Get version info Cache Castle info Set version info Query other Castle info Read Castle info Local User 1 Manage Castle Feedback Publish this Castle info Explorer (orrundl132) 2 Manage Castle Join, leave, Set users props Castle Service 8 Feedback Query users props Set acct info Get machine password Get acct info Set psswd Shacct 4 Set acct Info Get acct info Remote Castle Service 9

The Process: Identifying Threats Diagram Identify Threats Validate Mitigate

Identify Threats Experts can brainstorm How to do this without being an expert? Use STRIDE to step through the diagram elements Get specific about threat manifestation Threat Property we want Spoofing Authentication Tampering Integrity Repudiation Nonrepudiation Information Disclosure Confidentiality Denial of Service Availability Elevation of Privilege Authorization

Threat: Spoofing Threat Spoofing Property Authentication Definition Impersonating something or someone else Example Pretending to be any of billg, microsoft.com, or ntdll.dll

Threat: Tampering Threat Tampering Property Integrity Definition Modifying data or code Example Modifying a DLL on disk or DVD, or a packet as it traverses the LAN

Threat: Repudiation Threat Repudiation Property Non-Repudiation Definition Claiming to have not performed an action Example I didn t send that email, I didn t modify that file, I certainly didn t visit that Web site, dear!

Threat: Information Disclosure Threat Information Disclosure Property Confidentiality Definition Exposing information to someone not authorized to see it Example Allowing someone to read the Windows source code; publishing a list of customers to a Web site

Threat: Denial of Service Threat Denial of Service Property Availability Definition Deny or degrade service to users Example Crashing Windows or a Web site, sending a packet and absorbing seconds of CPU time, or routing packets into a black hole

Threat: Elevation of Privilege Threat Elevation of Privilege (EoP) Property Authorization Definition Gain capabilities without proper authorization Example Allowing a remote Internet user to run commands is the classic example, but going from a Limited User to Admin is also EoP

Different Threats Affect Each Element Type ELEMENT S T R External Entity Process Data Store Data Flow? I D E

Apply STRIDE Threats to Each Element For each item on the diagram: Apply relevant parts of STRIDE Process: STRIDE Data store, data flow: TID Data stores that are logs: TID+R External entity: SR Data flow inside a process: Don t worry about T, I, or D This is why you number things

Use the Trust boundaries Trusted/ high code reading from untrusted/low Validate everything for specific and defined uses High code writing to low Make sure your errors don t give away too much

Threats and Distractions Don t worry about these threats The computer is infected with malware Someone removed the hard drive and tampers Admin is attacking user A user is attacking himself You can t address any of these (unless you re the OS)

The Process: Mitigation Diagram Identify Threats Validate Mitigate

Mitigation Is the Point of Threat Modeling Mitigation To address or alleviate a problem Protect customers Design secure software Why bother if you: Create a great model Identify lots of threats Stop So, find problems and fix them

Mitigate Address each threat Four ways to address threats 1. 2. 3. 4. Redesign to eliminate Apply standard mitigations What have similar software packages done and how has that worked out for them? Invent new mitigations (riskier) Accept vulnerability in design SDL rules about what you can accept Address each threat

Standard Mitigations Spoofing Authentication To authenticate principals: Cookie authentication Kerberos authentication PKI systems such as SSL/TLS and certificates To authenticate code or data: Digital signatures Tampering Integrity Windows Vista Mandatory Integrity Controls ACLs Digital signatures Repudiation Non Repudiation Secure logging and auditing Digital Signatures Information Disclosure Confidentiality Encryption ACLS Denial of Service Availability ACLs Filtering Quotas Elevation of Privilege Authorization ACLs Group or role membership Privilege ownership Input validation

Inventing Mitigations Is Hard: Don t do it Mitigations are an area of expertise, such as networking, databases, or cryptography Amateurs make mistakes, but so do pros Mitigation failures will appear to work Until an expert looks at them We hope that expert will work for us When you need to invent mitigations, get expert help

Sample Mitigation Mitigation #54, Rasterization Service performs the following mitigation strategies: 1. 2. 3. 4. OM is validated and checked by (component) before being handed over to Rasterization Service The resources are decoded and validated by interacting subsystems, such as [foo], [bar], and [boop] Rasterization ensures that if there are any resource problems while loading and converting OM to raster data, it returns a proper error code Rasterization Service will be thoroughly fuzz tested (Comment: Fuzzing isn t a mitigation, but it s a great thing to plan as part 4)

Improving Sample Mitigation: Validated-For OM is validated and checked by [component] before being handed over to Rasterization Service Validated for what? Be specific! validates that each element is unique. validates that the URL is RFC-1738 compliant, but note URL may be to http://evil.com/ownme.html (Also a great external security note)

The Process: Validation Diagram Identify Threats Validate Mitigate

Validating Threat Models Validate the whole threat model Does diagram match final code? Are threats enumerated? Minimum: STRIDE per element that touches a trust boundary Has Test / QA reviewed the model? Tester approach often finds issues with threat model or details Is each threat mitigated? Are mitigations done right? Did you check these before Final Security Review? Shipping will be more predictable

Validate Quality of Threats and Mitigations Threats: Do they: Describe the attack Describe the context Describe the impact Mitigations Associate with a threat Describe the mitigations File a bug Fuzzing is a test tactic, not a mitigation

Validate Information Captured Dependencies What other code are you using? What security functions are in that other code? Are you sure? Assumptions Things you note as you build the threat model HTTP.sys will protect us against SQL Injection LPC will protect us from malformed messages GenRandom will give us crypto-strong randomness

More Sample Mitigations Mitigation #3: The Publish License is created by RMS, and we've been advised that it's only OK to include an unencrypted e-mail address if it's required for the service to work. Even if it is required, it seems like a bad idea due to easy e-mail harvesting. Primary Mitigation: Bug #123456 has been filed against the RMS team to investigate removing the e-mail address from this element. If that's possible, this would be the best solution to our threat. Backup Mitigation: It's acceptable to mitigate this by warning the document author that their e-mail address may be included in the document. If we have to ship it, the user interface will be updated to give clear disclosure to the author when they are protecting a document.

Effective Threat Modeling Meetings Develop draft threat model before the meeting Use the meeting to discuss Start with a DFD walkthrough Identify most interesting elements Assets (if you identify any) Entry points/trust boundaries Walk through STRIDE against those elements Threats that cross elements/recur Consider library, redesigns

Exercise Handout Work in teams to: Identify all diagram elements Identify threat types to each element Identify at least three threats Identify first order mitigations Extra credit: Improve the diagram

Identify All Elements (16 Elements) 7 8 and two trust boundaries, which don t have threats against them 3 10 9 6 11 16 2 15 13 12 4 14 5 1

Identify Threat Types to Each Element Identify STRIDE threats by element type Threats ELEMENT Elements S T R I D E Administrator (1) External Entity Admin console (2), Host SW (3) Process Config data (4), Integrity data (5), Filesystem data (6), registry (7) Data Store Data Flow 8. raw reg data 9. raw filesystem data 10. commands... 16

Identify Threats! Be specific Understand threat and impact Identify first order mitigations

Call to Action Threat model your work! Start early Track changes Work with a Security Advisor! Talk to your dependencies about security assumptions Learn more

Threat Modeling Learning Resources MSDN Magazine SDL Blog Reinvigorate your Threat Modeling Process All threat modeling posts http://msdn.microsoft.com/enus/magazine/cc700352.aspx Threat Modeling: Uncover Security Design Flaws Using The STRIDE Approach http://msdn.microsoft.com/msdnmag/issues/06/1 1/ThreatModeling/default.aspx Article Experiences Threat Modeling at Microsoft http://download.microsoft.com/download/9/d/3/9 D389274-F770-4737-9F1A8EA2720EE92A/Shostack-ModSec08Experiences-Threat-Modeling-AtMicrosoft.pdf http://blogs.msdn.com/sdl/archive/tags/threat%2 0modeling/default.aspx Books The Security Development Lifecycle: SDL: A Process for Developing Demonstrably More Secure Software (Howard, Lipner, 2006) Threat Modeling chapter http://www.microsoft.com/mspress/books/author s/auth8753.aspx

Resources SDL Portal http://www.microsoft.com/sdl SDL Blog http://blogs.msdn.com/sdl/ SDL Process on MSDN (Web) http://msdn.microsoft.com/enus/library/cc307748.aspx SDL Process on MSDN (MS Word) http://go.microsoft.com/?linkid=969 4872

Questions?

2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Standard Mitigations STRIDE Threat Property we want Spoofing Authentication Tampering Integrity Repudiation Nonrepudiation Information Disclosure Confidentiality Denial of Service Availability Elevation of Privilege Authorization

Standard Mitigations STRIDE Threat Property Spoofing Authentication To authenticate principals: Basic authentication Digest authentication Cookie authentication Windows authentication (NTLM) Kerberos authentication PKI systems, such as SSL or TLS and certificates IPSec Digitally signed packets To authenticate code or data: Digital signatures Message authentication codes Hashes

Standard Mitigations STRIDE Threat Property Tampering Integrity Windows Vista mandatory integrity controls ACLs Digital signatures Message authentication codes

Standard Mitigations STRIDE Threat Property Repudiation Nonrepudiation Strong authentication Secure logging and auditing Digital signatures Secure time stamps Trusted third parties

Standard Mitigations STRIDE Threat Property Information Disclosure Confidentiality Encryption ACLs

Standard Mitigations STRIDE Threat Property Denial of Service Availability ACLs Filtering Quotas Authorization High-availability designs

Standard Mitigations STRIDE Threat Property Elevation of Privilege Authorization ACLs Group or role membership Privilege ownership Permissions Input validation