SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
Security Development
Lifecycle practices:
Threat Modelling
Bartek Kierun
PFE@Microsoft
1
Overview
2
• Introduction to Security Development Lifecycle
• SDL Threat Modeling Process
• SDL Threat Modeling Tool
History of MS Security Development Lifecycle process
3
4
Education Accountability
Administer and track
security training
Incident
Response
(MSRC)
Establish release criteria
and sign-off as part of
FSR
Ongoing Process Improvements
Process
Guide product teams to
meet SDL requirements
SDL conforms to ISO/IEC 27034-1:2011
Microsoft Confidential
1. Core
Security
Training
2. Establish
Security
Requirements
5. Establish
Design
Requirements
8. Use
approved
tools
11. Perform
Dynamic
Analysis
14. Create an
incident
response
plan.
17. Execute
Incidence
Response
Plan
3. Quality
Gates / Bug
Bars Create
6. Perform
Attack
Surface
Analysis /
Reduction
9. Deprecate
Unsafe
functions
12. Perform
Fuzz Testing
15. Conduct
Final Security
Review.
4. Perform
Security and
Privacy Risk
Assessments
7. Use Threat
Modeling
10. Perform
static analysis
13. Conduct
attack surface
review.
16. Certify
Release and
Archive
Every-Sprint Practices One-Time PracticesBucket Practices
SDL in Agile development processes
Threat
Modelling
Basics
6
• What is Threat Modelling?
• What?
• Who?
• Why?
• When?
• How?
SDL Threat
Modeling
Overview
7
SDL Threat Modeling: A process to understand
security threats to a system, determine risks from
those threats, and establish appropriate
mitigations.
Threat modelling works to identify, communicate,
and understand threats and mitigations within the
context of protecting something of value.
owasp.org
What?
8
• Description / design / model of what you’re worried
about
• List of assumptions that can be checked or
challenged in the future as the threat landscape
changes
• List of potential threats to the system
• List of actions to be taken for each threat
• Way of validating the model and threats, and
verification of success of actions taken
Who
Performs /
Drives Threat
Modeling?
9
• The SDL Threat Modeling process can be
performed by:
• Security experts
• Non-security experts
• The threat modeling process should be driven
by:
• Application designers; however, developers and
testers should be involved
Who?
Roles
10
• People who are building the System
• People who are/will be testing the System
• People who understand the Business Requirements
• People who are tracking and managing progress
Session Type Architect
Program
Manager
Software
Test
Penetration
Test
Developer
Security
Consultant
Requirements O O V P V
Model P P O V O
Threat
Enumeration
P P V O V
Mitigations P P O V O
Validate O O P P P V
O = Own
P = Participate
V = Validate
Who?
Customers
11
Customers for threat models:
• Your team
• Other feature/product teams
• Customers, via user education
• ‘External’ QA resources like pen testers
• Security Advisors
Why?
12
• Produce software that’s secure by design
Improve designs the same way we’ve improved code
• Document and discuss security in a structured way
• Bring Security and Development together
• Identify and document threats and compliance requirements
and evaluate their risks
• Find and document mitigation
• Balance risks, controls, and usability
• Ensure business requirements (or goals) are adequately
protected
• Because attackers think differently
Creator blindness/new perspective
When to Threat Model?
13
• Best performed during the application design phase
• Easiest to make application changes
• Less costly than adding mitigations and testing them after code
has been implemented and onwards
• Motto: The sooner the better, but never too late!
Product
Development
Step 1:
Model
Step 2:
Enumerate
Threats
Step 3:
Mitigate
Step 4:
Validate
The SDL
Threat
Modeling
Process
14
The Threat
Modeling
Process
15
Gather
Requirements
•Identify what the
system should do
•Remember to
include Security
Requirements as
well!
Model System
•Define how
information flow,
who interacts with
it and where it is
stored
Enumerate
Threats
•Identify the threats
to the System and
treat them as BUGS!
•Prioritize threats
Identify
Mitigations
•Identify strategies
to reduce
probability and/or
impact of the
exploitation of the
vulnerabilities
Validate
•Check that
everything is ok
Step 1:
Model
16
• Data flow diagrams (DFDs)
• Include processes, data stores, data flows
• Most attacks based on data flowing through an
application or system
• Trust boundaries
• Update diagrams as product changes
• Possible multiple layers/levels of details
Step Objective: To model an application design
as a data flow diagram to drive threat analysis
Step 1:
Model
17
"Essentially, all models are wrong, but
some are useful."
--- Box, George E. P.; Norman R. Draper (1987). Empirical Model-Building and Response
Surfaces, p. 424, Wiley. ISBN 0471810339.
Data Flow
Diagrams
(DFDs)
Elements
18
Element Represented By Description
External
Entity
Any entity not within the
control of the application, such
as people and external systems
Process Code, such as native code
executables and .NET
assemblies
Data Store Data at rest, such as registry
keys and databases
Data Flow How data flows between
elements, such as function calls
and network data
Additional
Element:
Trust
Boundaries
19
Element Represented By Description
Trust
Boundary
A point within an
application where data
flows from one privilege
level to another, such as
network sockets, external
entities and processes
with different trust levels
Examples:
• 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 privileges, identifiers and access
• Processes talking across a network always have a trust boundary
• Trusted code reading from untrusted code
• Validate everything for specific uses
• Trusted code writing to untrusted code
• Make sure your errors don’t give away too much
20
• People
• Other systems
• Microsoft.com
• Function call
• Network traffic
• Remote
Procedure Call
(RPC)
• DLLs
• EXEs
• PHP, JAVA,
Python, .NET
etc.
• Services
• Web Services
• Database
• File
• Registry
• Shared
Memory
• Queue / Stack
External
Entity
Process
Data
Flow Data Store
Trust Boundary
• Process boundary
• File system
Step 2:
Threat
Enumeration
21
• Experts: Brainstorming and other informal methods
• Experts and Non-Experts: STRIDE threat types
• Based on Microsoft Security Response Center (MSRC)
issues and Common Vulnerability and Exposures (CVE)
(see http://cve.mitre.org for more information)
• Other methods like Kill Chains, CAPEC, P.A.S.T.A., Trike,
VAST
Step Objective: To identify threats for each data
flow diagram element in the threat model
STRIDE
Threat Types
22
Desired Property Threat Definition
Authentication Spoofing
Impersonating something or someone
else
Integrity Tampering
Modifying code or data without
authorization
Non-repudiation Repudiation
The ability to claim to have not
performed some action against an
application
Confidentiality Information
Disclosure
The exposure of information to
unauthorized users
Availability Denial of Service
The ability to deny or degrade a
service to legitimate users
Authorization Elevation of
Privilege
The ability of a user to elevate their
privileges with an application without
authorization
* Framework, not classification scheme. STRIDE is a good framework, but bad taxonomy.
23
Threat Property Definition Example
Spoofing Authentication Impersonating
something or someone
else.
Pretending to be any of billg, xbox.com or a
system update
Tampering Integrity Modifying data or code Modifying a game config file on disk, or a packet
as it traverses the network
Repudiation Non-repudiation Claiming to have not
performed an action
“I didn’t cheat!”
Information Disclosure Confidentiality Exposing information to
someone not
authorized to see it
Reading key material from an app
Denial of Service Availability Deny or degrade
service to users
Crashing the web site, sending a packet and
absorbing seconds of CPU time, or routing packets
into a black hole
Elevation of Privilege Authorization Gain capabilities
without proper
authorization
Allowing a remote internet user to run commands
is the classic example, but running kernel code
from lower trust levels is also EoP
Element S T R I D E
External entity
 
Process
     
Data Store
   
Data Flow
  
Identifying
STRIDE Threats
by Data Flow
Diagram
Element Type
24
* graphical representation of the required STRIDE threats that must be investigated
Microsoft
SDL Threat
Modeling
Illustrated
25
Application
Service
Database
Server
Authentication
/
Authorization
Services
Registry
S T DIR E
Document
and
categorize
threats
26
Threat Description
Attacker elevates privilege by leveraging the service client request
process
Threat Target Service Client Request (5.0)
Threat Category Elevation of privilege
Risk
Damage Potential: 10
Reproducibility: 2
Exploitability: 2
Affected Users: 1
Discoverability: 10
Overall: 5
Comments
The threat target in question runs in a Web server process, and the code
runs in the Local System context. This means that any malicious code
executing in the context of the Web server is Local System on the
computer also. Reproducibility and exploitability are low because the
only realistic way to exploit this is for the attacker to take advantage of a
security vulnerability in the Web server process.
The low affected users count is because only this server is affected,
although one could argue that everyone could be affected by this if an
attacker compromised the server.
You don’t
need
advanced
tools!
27
Beyond IT –
Automotive
Industry
28
Distractions
30
Do not “worry” about threats like:
• The computer is infected with malware
• Antivirus scanner is outdated
• Someone removed the hard drive and tampers
data
• Admin is not trustworthy
• A user is attacking himself
• Social Engineering
“The 10 Immutable Laws of Security”,
http://technet.microsoft.com/en-us/magazine/2008.10.securitywatch.aspx.
Gamification
of the
security
analysis!
31
How to play?
32
• Deal out all the cards
• Play hands (once around the table)
Connect the threat on a card to the diagram
Play in a hand stays in the suit
• Play once through the deck
• Take notes
Player | Points | Card | Component | Notes
Example:
Alice plays 3
Tampering
Bob plays 10
of Tampering
Charlie plays
5 of
Tampering
Dan plays 8
of Tampering
Rules
37
• Must play in suit if you can
• High card wins the hand
Unless there’s a joker (elevation of
privilege card)
• Aces are for threats not listed on the cards
• 1 point for each threat, 1 for the hand
Why does the
game work
as a tool?
38
• Attractive and cool
• Encourages flow
• Requires participation
Threats act as hints
Instant feedback
• Social permission for
Playful exploration
Disagreement
• Produces real threat models
Step 3:
Mitigation
39
• Approaches to threat mitigation (in order of
preference):
• Redesign
• Use standard mitigations
• Use unique/custom mitigations
• Accept risk in accordance with policies
Step Objective: To address identified threats to
an application design
Examples of
Standard
Mitigations
40
Threat Example Standard Mitigations
Spoofing
To authenticate principals:
• OpenID authentication
• Windows authentication (NTLM)
• Kerberos authentication
• PKI systems such as SSL/TLS and certificates
• IPSec
• Digitally signed packets
To authenticate code or data:
• Digital signatures
• Message authentication codes
• Hashes
Tampering
• Windows Mandatory Integrity Controls
• ACLs
• Digital signatures
• Message Authentication Codes
Repudiation
• Strong Authentication
• Secure logging and auditing
• Digital Signatures
• Secure time stamps
• Trusted third parties
Information Disclosure
• Encryption
• ACLS
Denial of Service
• ACLs
• Filtering
• Quotas
• Authorization
• High availability designs
Elevation of Privilege
• ACLs
• Group or role membership
• Privilege ownership
• Permissions
• Input validation
There are great threat
(and mitigation)
libraries (OWASP, CVE
etc).
Inventing
Mitigations
41
• It’s always risky!
• Mitigations are an area of expertise such as
networking, databases, or cryptography
• Amateurs make mistakes, so do professionals
• Mitigation failures will appear to work until an
expert looks at them
• When you need to invent mitigations, get
expert help
Accepting
the Threat
42
• Accepting the threat could be OK IF
cost to mitigate is higher THAN
Exploitation Probability AND Impact
• Let Stakeholders and/or Users know
about it anyway
How to select
threat that
could be left
without
mitigation?
43
Prioritize the Threats:
• Do the easy fixes first
• Average DREAD method
• Probability x Impact DREAD method
• [put your other more complex methods
here]
DREAD
44
Factor Description
Damage Potential What is the damage that could be done?
Reproducibility How easy is to reproduce the attack?
Exploitability How hard is to meet the conditions for the attack to succeed?
Affected Users How large and how important are the affected users?
Discoverability How easy is for external researchers/attackers to discover the
vulnerability?
DREAD-
based Risk
calculation
Methods
45
𝐷 + 𝑅 + 𝐸 + 𝐴 + 𝐷𝑖
5
𝑅 + 𝐸 + 𝐷𝑖) × (𝐷 + 𝐴
6 5422 23 38 39
Low Medium High
Distractions
46
Mitigation is used to
• Address or alleviate a problem
• Protect customers
When designing secure software, it is not
enough to:
• Create a great model
• Identify lots of threats
Step 4:
Validation
47
• Validation of the model
• Validation of enumerated threats
• Validation of mitigations
• Validation of assumptions
Step Objective: To help ensure that threat
models accurately reflect application design and
potential threats
Diagram
Validation
Rules
48
Order Database
Returns Database
Diagram
Validation
Rules
49
Order Database
Returns Database
RMA
Validating the
Threat Model
50
Does the threat model demonstrate a sufficient
level of understanding of product security?
• Does the diagram match final architecture?
• Are all threats enumerated?
Minimum: STRIDE per element
• Has Test or QA reviewed the model?
• Is each threat mitigated?
• Are mitigations done right?
Were these checked before Final Security Review?
• Shipping will be more predictable
Validating
Quality of
Threats and
Mitigations
51
Verify Assumptions
Good Threats describe:
• The attack
• The context
• The impact
Good Mitigations:
• Associated with a threat
• Describe the mitigations
• File a bug/task
Microsoft
SDL Threat
Modeling
Tool
Overview
54
Demo
55
Microsoft SDL
Threat
Modeling
Advantages and
Disadvantages
56
Advantages
• Can be used to find
threats to a system
early in the
development process
• Can be used by both
security experts and
non-security experts
• Can be used to guide
other security
assessment activities
Disadvantages
• Upfront costs
(training, software,
and setup)
Conclusion
57
• Overview of the Microsoft SDL Threat Modeling
process
• Advantages and disadvantages
• Steps of the Microsoft SDL Threat Modeling process
• Microsoft Threat Modeling Tool
• Microsoft SDL threat modeling requirements
• Overview of the Microsoft SDL Threat Modeling Tool
• Benefits and features
Books
58

Weitere ähnliche Inhalte

Was ist angesagt?

Data Loss Prevention from Symantec
Data Loss Prevention from SymantecData Loss Prevention from Symantec
Data Loss Prevention from Symantec
Arrow ECS UK
 
Data Loss Prevention
Data Loss PreventionData Loss Prevention
Data Loss Prevention
Reza Kopaee
 
kill-chain-presentation-v3
kill-chain-presentation-v3kill-chain-presentation-v3
kill-chain-presentation-v3
Shawn Croswell
 
Understanding Your Attack Surface and Detecting & Mitigating External Threats
Understanding Your Attack Surface and Detecting & Mitigating External ThreatsUnderstanding Your Attack Surface and Detecting & Mitigating External Threats
Understanding Your Attack Surface and Detecting & Mitigating External Threats
Ulf Mattsson
 

Was ist angesagt? (20)

Using Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in FirmwareUsing Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
Using Static Binary Analysis To Find Vulnerabilities And Backdoors in Firmware
 
7 Steps to Threat Modeling
7 Steps to Threat Modeling7 Steps to Threat Modeling
7 Steps to Threat Modeling
 
Data Loss Prevention from Symantec
Data Loss Prevention from SymantecData Loss Prevention from Symantec
Data Loss Prevention from Symantec
 
Threat Modeling Using STRIDE
Threat Modeling Using STRIDEThreat Modeling Using STRIDE
Threat Modeling Using STRIDE
 
Introduction to MITRE ATT&CK
Introduction to MITRE ATT&CKIntroduction to MITRE ATT&CK
Introduction to MITRE ATT&CK
 
Application Security
Application SecurityApplication Security
Application Security
 
Effective Threat Hunting with Tactical Threat Intelligence
Effective Threat Hunting with Tactical Threat IntelligenceEffective Threat Hunting with Tactical Threat Intelligence
Effective Threat Hunting with Tactical Threat Intelligence
 
Cyber Threat Modeling
Cyber Threat ModelingCyber Threat Modeling
Cyber Threat Modeling
 
Data Loss Prevention
Data Loss PreventionData Loss Prevention
Data Loss Prevention
 
Threat Modeling In 2021
Threat Modeling In 2021Threat Modeling In 2021
Threat Modeling In 2021
 
Threat Intelligence
Threat IntelligenceThreat Intelligence
Threat Intelligence
 
Introduction to threat_modeling
Introduction to threat_modelingIntroduction to threat_modeling
Introduction to threat_modeling
 
kill-chain-presentation-v3
kill-chain-presentation-v3kill-chain-presentation-v3
kill-chain-presentation-v3
 
Cyber Threat Hunting with Phirelight
Cyber Threat Hunting with PhirelightCyber Threat Hunting with Phirelight
Cyber Threat Hunting with Phirelight
 
Threat Modeling Everything
Threat Modeling EverythingThreat Modeling Everything
Threat Modeling Everything
 
Security operation center (SOC)
Security operation center (SOC)Security operation center (SOC)
Security operation center (SOC)
 
Navigating Zero Trust Presentation Slides
Navigating Zero Trust Presentation SlidesNavigating Zero Trust Presentation Slides
Navigating Zero Trust Presentation Slides
 
Threat Hunting - Moving from the ad hoc to the formal
Threat Hunting - Moving from the ad hoc to the formalThreat Hunting - Moving from the ad hoc to the formal
Threat Hunting - Moving from the ad hoc to the formal
 
Understanding Your Attack Surface and Detecting & Mitigating External Threats
Understanding Your Attack Surface and Detecting & Mitigating External ThreatsUnderstanding Your Attack Surface and Detecting & Mitigating External Threats
Understanding Your Attack Surface and Detecting & Mitigating External Threats
 
Security Event Analysis Through Correlation
Security Event Analysis Through CorrelationSecurity Event Analysis Through Correlation
Security Event Analysis Through Correlation
 

Ähnlich wie [Warsaw 26.06.2018] SDL Threat Modeling principles

Application Security Testing for Software Engineers: An approach to build sof...
Application Security Testing for Software Engineers: An approach to build sof...Application Security Testing for Software Engineers: An approach to build sof...
Application Security Testing for Software Engineers: An approach to build sof...
Michael Hidalgo
 
Introduction to the Microsoft Security Development Lifecycle (SDL).ppsx
Introduction to the Microsoft Security Development Lifecycle (SDL).ppsxIntroduction to the Microsoft Security Development Lifecycle (SDL).ppsx
Introduction to the Microsoft Security Development Lifecycle (SDL).ppsx
MardhaniAR
 
Software Security in the Real World
Software Security in the Real WorldSoftware Security in the Real World
Software Security in the Real World
Mark Curphey
 
Software Security Engineering
Software Security EngineeringSoftware Security Engineering
Software Security Engineering
Marco Morana
 
Lecture Course Outline and Secure SDLC.ppt
Lecture Course Outline and Secure SDLC.pptLecture Course Outline and Secure SDLC.ppt
Lecture Course Outline and Secure SDLC.ppt
DrBasemMohamedElomda
 

Ähnlich wie [Warsaw 26.06.2018] SDL Threat Modeling principles (20)

Threat modelling(system + enterprise)
Threat modelling(system + enterprise)Threat modelling(system + enterprise)
Threat modelling(system + enterprise)
 
Threat Modeling to Reduce Software Security Risk
Threat Modeling to Reduce Software Security RiskThreat Modeling to Reduce Software Security Risk
Threat Modeling to Reduce Software Security Risk
 
Application Security Testing for Software Engineers: An approach to build sof...
Application Security Testing for Software Engineers: An approach to build sof...Application Security Testing for Software Engineers: An approach to build sof...
Application Security Testing for Software Engineers: An approach to build sof...
 
Introduction to the Microsoft Security Development Lifecycle (SDL).ppsx
Introduction to the Microsoft Security Development Lifecycle (SDL).ppsxIntroduction to the Microsoft Security Development Lifecycle (SDL).ppsx
Introduction to the Microsoft Security Development Lifecycle (SDL).ppsx
 
Null bachav
Null bachavNull bachav
Null bachav
 
Arved sandstrom - the rotwithin - atlseccon2011
Arved sandstrom - the rotwithin - atlseccon2011Arved sandstrom - the rotwithin - atlseccon2011
Arved sandstrom - the rotwithin - atlseccon2011
 
Assessing System Risk the Smart Way
Assessing System Risk the Smart WayAssessing System Risk the Smart Way
Assessing System Risk the Smart Way
 
chap-1 : Vulnerabilities in Information Systems
chap-1 : Vulnerabilities in Information Systemschap-1 : Vulnerabilities in Information Systems
chap-1 : Vulnerabilities in Information Systems
 
Secure Design: Threat Modeling
Secure Design: Threat ModelingSecure Design: Threat Modeling
Secure Design: Threat Modeling
 
Software Security in the Real World
Software Security in the Real WorldSoftware Security in the Real World
Software Security in the Real World
 
Security Best Practices
Security Best PracticesSecurity Best Practices
Security Best Practices
 
For Business's Sake, Let's focus on AppSec
For Business's Sake, Let's focus on AppSecFor Business's Sake, Let's focus on AppSec
For Business's Sake, Let's focus on AppSec
 
Software security engineering
Software security engineeringSoftware security engineering
Software security engineering
 
Software security engineering
Software security engineeringSoftware security engineering
Software security engineering
 
Software Security Engineering
Software Security EngineeringSoftware Security Engineering
Software Security Engineering
 
Дмитро Терещенко, "How to secure your application with Secure SDLC"
Дмитро Терещенко, "How to secure your application with Secure SDLC"Дмитро Терещенко, "How to secure your application with Secure SDLC"
Дмитро Терещенко, "How to secure your application with Secure SDLC"
 
Lecture Course Outline and Secure SDLC.ppt
Lecture Course Outline and Secure SDLC.pptLecture Course Outline and Secure SDLC.ppt
Lecture Course Outline and Secure SDLC.ppt
 
Microsoft Security Development Lifecycle
Microsoft Security Development LifecycleMicrosoft Security Development Lifecycle
Microsoft Security Development Lifecycle
 
Security Fundamentals and Threat Modelling
Security Fundamentals and Threat ModellingSecurity Fundamentals and Threat Modelling
Security Fundamentals and Threat Modelling
 
Outpost24 webinar - The new CISO imperative: connecting technical vulnerabili...
Outpost24 webinar - The new CISO imperative: connecting technical vulnerabili...Outpost24 webinar - The new CISO imperative: connecting technical vulnerabili...
Outpost24 webinar - The new CISO imperative: connecting technical vulnerabili...
 

Mehr von OWASP

[OPD 2019] Web Apps vs Blockchain dApps
[OPD 2019] Web Apps vs Blockchain dApps[OPD 2019] Web Apps vs Blockchain dApps
[OPD 2019] Web Apps vs Blockchain dApps
OWASP
 
[OPD 2019] Threat modeling at scale
[OPD 2019] Threat modeling at scale[OPD 2019] Threat modeling at scale
[OPD 2019] Threat modeling at scale
OWASP
 
[OPD 2019] Life after pentest
[OPD 2019] Life after pentest[OPD 2019] Life after pentest
[OPD 2019] Life after pentest
OWASP
 
[OPD 2019] Top 10 Security Facts of 2020
[OPD 2019] Top 10 Security Facts of 2020[OPD 2019] Top 10 Security Facts of 2020
[OPD 2019] Top 10 Security Facts of 2020
OWASP
 
[OPD 2019] Governance as a missing part of IT security architecture
[OPD 2019] Governance as a missing part of IT security architecture[OPD 2019] Governance as a missing part of IT security architecture
[OPD 2019] Governance as a missing part of IT security architecture
OWASP
 
[OPD 2019] Storm Busters: Auditing & Securing AWS Infrastructure
[OPD 2019] Storm Busters: Auditing & Securing AWS Infrastructure[OPD 2019] Storm Busters: Auditing & Securing AWS Infrastructure
[OPD 2019] Storm Busters: Auditing & Securing AWS Infrastructure
OWASP
 
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
OWASP
 
[OPD 2019] AST Platform and the importance of multi-layered application secu...
[OPD 2019]  AST Platform and the importance of multi-layered application secu...[OPD 2019]  AST Platform and the importance of multi-layered application secu...
[OPD 2019] AST Platform and the importance of multi-layered application secu...
OWASP
 
[OPD 2019] Inter-application vulnerabilities
[OPD 2019] Inter-application vulnerabilities[OPD 2019] Inter-application vulnerabilities
[OPD 2019] Inter-application vulnerabilities
OWASP
 
[OPD 2019] Automated Defense with Serverless computing
[OPD 2019] Automated Defense with Serverless computing[OPD 2019] Automated Defense with Serverless computing
[OPD 2019] Automated Defense with Serverless computing
OWASP
 
[OPD 2019] Advanced Data Analysis in RegSOC
[OPD 2019] Advanced Data Analysis in RegSOC[OPD 2019] Advanced Data Analysis in RegSOC
[OPD 2019] Advanced Data Analysis in RegSOC
OWASP
 
[OPD 2019] Trusted types and the end of DOM XSS
[OPD 2019] Trusted types and the end of DOM XSS[OPD 2019] Trusted types and the end of DOM XSS
[OPD 2019] Trusted types and the end of DOM XSS
OWASP
 
[Wroclaw #9] To be or Not To Be - Threat Modeling in Security World
[Wroclaw #9] To be or Not To Be - Threat Modeling in Security World[Wroclaw #9] To be or Not To Be - Threat Modeling in Security World
[Wroclaw #9] To be or Not To Be - Threat Modeling in Security World
OWASP
 

Mehr von OWASP (20)

[OPD 2019] Web Apps vs Blockchain dApps
[OPD 2019] Web Apps vs Blockchain dApps[OPD 2019] Web Apps vs Blockchain dApps
[OPD 2019] Web Apps vs Blockchain dApps
 
[OPD 2019] Threat modeling at scale
[OPD 2019] Threat modeling at scale[OPD 2019] Threat modeling at scale
[OPD 2019] Threat modeling at scale
 
[OPD 2019] Life after pentest
[OPD 2019] Life after pentest[OPD 2019] Life after pentest
[OPD 2019] Life after pentest
 
[OPD 2019] .NET Core Security
[OPD 2019] .NET Core Security[OPD 2019] .NET Core Security
[OPD 2019] .NET Core Security
 
[OPD 2019] Top 10 Security Facts of 2020
[OPD 2019] Top 10 Security Facts of 2020[OPD 2019] Top 10 Security Facts of 2020
[OPD 2019] Top 10 Security Facts of 2020
 
[OPD 2019] Governance as a missing part of IT security architecture
[OPD 2019] Governance as a missing part of IT security architecture[OPD 2019] Governance as a missing part of IT security architecture
[OPD 2019] Governance as a missing part of IT security architecture
 
[OPD 2019] Storm Busters: Auditing & Securing AWS Infrastructure
[OPD 2019] Storm Busters: Auditing & Securing AWS Infrastructure[OPD 2019] Storm Busters: Auditing & Securing AWS Infrastructure
[OPD 2019] Storm Busters: Auditing & Securing AWS Infrastructure
 
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
[OPD 2019] Side-Channels on the Web:
Attacks and Defenses
 
[OPD 2019] AST Platform and the importance of multi-layered application secu...
[OPD 2019]  AST Platform and the importance of multi-layered application secu...[OPD 2019]  AST Platform and the importance of multi-layered application secu...
[OPD 2019] AST Platform and the importance of multi-layered application secu...
 
[OPD 2019] Inter-application vulnerabilities
[OPD 2019] Inter-application vulnerabilities[OPD 2019] Inter-application vulnerabilities
[OPD 2019] Inter-application vulnerabilities
 
[OPD 2019] Automated Defense with Serverless computing
[OPD 2019] Automated Defense with Serverless computing[OPD 2019] Automated Defense with Serverless computing
[OPD 2019] Automated Defense with Serverless computing
 
[OPD 2019] Advanced Data Analysis in RegSOC
[OPD 2019] Advanced Data Analysis in RegSOC[OPD 2019] Advanced Data Analysis in RegSOC
[OPD 2019] Advanced Data Analysis in RegSOC
 
[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens
 
[OPD 2019] Rumpkernels meet fuzzing
[OPD 2019] Rumpkernels meet fuzzing[OPD 2019] Rumpkernels meet fuzzing
[OPD 2019] Rumpkernels meet fuzzing
 
[OPD 2019] Trusted types and the end of DOM XSS
[OPD 2019] Trusted types and the end of DOM XSS[OPD 2019] Trusted types and the end of DOM XSS
[OPD 2019] Trusted types and the end of DOM XSS
 
[Wroclaw #9] The purge - dealing with secrets in Opera Software
[Wroclaw #9] The purge - dealing with secrets in Opera Software[Wroclaw #9] The purge - dealing with secrets in Opera Software
[Wroclaw #9] The purge - dealing with secrets in Opera Software
 
[Wroclaw #9] To be or Not To Be - Threat Modeling in Security World
[Wroclaw #9] To be or Not To Be - Threat Modeling in Security World[Wroclaw #9] To be or Not To Be - Threat Modeling in Security World
[Wroclaw #9] To be or Not To Be - Threat Modeling in Security World
 
OWASP Poland 13 November 2018 - Martin Knobloch - Building Secure Software
OWASP Poland 13 November 2018 - Martin Knobloch - Building Secure SoftwareOWASP Poland 13 November 2018 - Martin Knobloch - Building Secure Software
OWASP Poland 13 November 2018 - Martin Knobloch - Building Secure Software
 
OWASP Poland Day 2018 - Amir Shladovsky - Crypto-mining
OWASP Poland Day 2018 - Amir Shladovsky - Crypto-miningOWASP Poland Day 2018 - Amir Shladovsky - Crypto-mining
OWASP Poland Day 2018 - Amir Shladovsky - Crypto-mining
 
OWASP Poland Day 2018 - Damian Rusinek - Outsmarting smart contracts
OWASP Poland Day 2018 - Damian Rusinek - Outsmarting smart contractsOWASP Poland Day 2018 - Damian Rusinek - Outsmarting smart contracts
OWASP Poland Day 2018 - Damian Rusinek - Outsmarting smart contracts
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

[Warsaw 26.06.2018] SDL Threat Modeling principles

  • 1. Security Development Lifecycle practices: Threat Modelling Bartek Kierun PFE@Microsoft 1
  • 2. Overview 2 • Introduction to Security Development Lifecycle • SDL Threat Modeling Process • SDL Threat Modeling Tool
  • 3. History of MS Security Development Lifecycle process 3
  • 4. 4 Education Accountability Administer and track security training Incident Response (MSRC) Establish release criteria and sign-off as part of FSR Ongoing Process Improvements Process Guide product teams to meet SDL requirements SDL conforms to ISO/IEC 27034-1:2011
  • 5. Microsoft Confidential 1. Core Security Training 2. Establish Security Requirements 5. Establish Design Requirements 8. Use approved tools 11. Perform Dynamic Analysis 14. Create an incident response plan. 17. Execute Incidence Response Plan 3. Quality Gates / Bug Bars Create 6. Perform Attack Surface Analysis / Reduction 9. Deprecate Unsafe functions 12. Perform Fuzz Testing 15. Conduct Final Security Review. 4. Perform Security and Privacy Risk Assessments 7. Use Threat Modeling 10. Perform static analysis 13. Conduct attack surface review. 16. Certify Release and Archive Every-Sprint Practices One-Time PracticesBucket Practices SDL in Agile development processes
  • 6. Threat Modelling Basics 6 • What is Threat Modelling? • What? • Who? • Why? • When? • How?
  • 7. SDL Threat Modeling Overview 7 SDL Threat Modeling: A process to understand security threats to a system, determine risks from those threats, and establish appropriate mitigations. Threat modelling works to identify, communicate, and understand threats and mitigations within the context of protecting something of value. owasp.org
  • 8. What? 8 • Description / design / model of what you’re worried about • List of assumptions that can be checked or challenged in the future as the threat landscape changes • List of potential threats to the system • List of actions to be taken for each threat • Way of validating the model and threats, and verification of success of actions taken
  • 9. Who Performs / Drives Threat Modeling? 9 • The SDL Threat Modeling process can be performed by: • Security experts • Non-security experts • The threat modeling process should be driven by: • Application designers; however, developers and testers should be involved
  • 10. Who? Roles 10 • People who are building the System • People who are/will be testing the System • People who understand the Business Requirements • People who are tracking and managing progress Session Type Architect Program Manager Software Test Penetration Test Developer Security Consultant Requirements O O V P V Model P P O V O Threat Enumeration P P V O V Mitigations P P O V O Validate O O P P P V O = Own P = Participate V = Validate
  • 11. Who? Customers 11 Customers for threat models: • Your team • Other feature/product teams • Customers, via user education • ‘External’ QA resources like pen testers • Security Advisors
  • 12. Why? 12 • Produce software that’s secure by design Improve designs the same way we’ve improved code • Document and discuss security in a structured way • Bring Security and Development together • Identify and document threats and compliance requirements and evaluate their risks • Find and document mitigation • Balance risks, controls, and usability • Ensure business requirements (or goals) are adequately protected • Because attackers think differently Creator blindness/new perspective
  • 13. When to Threat Model? 13 • Best performed during the application design phase • Easiest to make application changes • Less costly than adding mitigations and testing them after code has been implemented and onwards • Motto: The sooner the better, but never too late!
  • 14. Product Development Step 1: Model Step 2: Enumerate Threats Step 3: Mitigate Step 4: Validate The SDL Threat Modeling Process 14
  • 15. The Threat Modeling Process 15 Gather Requirements •Identify what the system should do •Remember to include Security Requirements as well! Model System •Define how information flow, who interacts with it and where it is stored Enumerate Threats •Identify the threats to the System and treat them as BUGS! •Prioritize threats Identify Mitigations •Identify strategies to reduce probability and/or impact of the exploitation of the vulnerabilities Validate •Check that everything is ok
  • 16. Step 1: Model 16 • Data flow diagrams (DFDs) • Include processes, data stores, data flows • Most attacks based on data flowing through an application or system • Trust boundaries • Update diagrams as product changes • Possible multiple layers/levels of details Step Objective: To model an application design as a data flow diagram to drive threat analysis
  • 17. Step 1: Model 17 "Essentially, all models are wrong, but some are useful." --- Box, George E. P.; Norman R. Draper (1987). Empirical Model-Building and Response Surfaces, p. 424, Wiley. ISBN 0471810339.
  • 18. Data Flow Diagrams (DFDs) Elements 18 Element Represented By Description External Entity Any entity not within the control of the application, such as people and external systems Process Code, such as native code executables and .NET assemblies Data Store Data at rest, such as registry keys and databases Data Flow How data flows between elements, such as function calls and network data
  • 19. Additional Element: Trust Boundaries 19 Element Represented By Description Trust Boundary A point within an application where data flows from one privilege level to another, such as network sockets, external entities and processes with different trust levels Examples: • 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 privileges, identifiers and access • Processes talking across a network always have a trust boundary • Trusted code reading from untrusted code • Validate everything for specific uses • Trusted code writing to untrusted code • Make sure your errors don’t give away too much
  • 20. 20 • People • Other systems • Microsoft.com • Function call • Network traffic • Remote Procedure Call (RPC) • DLLs • EXEs • PHP, JAVA, Python, .NET etc. • Services • Web Services • Database • File • Registry • Shared Memory • Queue / Stack External Entity Process Data Flow Data Store Trust Boundary • Process boundary • File system
  • 21. Step 2: Threat Enumeration 21 • Experts: Brainstorming and other informal methods • Experts and Non-Experts: STRIDE threat types • Based on Microsoft Security Response Center (MSRC) issues and Common Vulnerability and Exposures (CVE) (see http://cve.mitre.org for more information) • Other methods like Kill Chains, CAPEC, P.A.S.T.A., Trike, VAST Step Objective: To identify threats for each data flow diagram element in the threat model
  • 22. STRIDE Threat Types 22 Desired Property Threat Definition Authentication Spoofing Impersonating something or someone else Integrity Tampering Modifying code or data without authorization Non-repudiation Repudiation The ability to claim to have not performed some action against an application Confidentiality Information Disclosure The exposure of information to unauthorized users Availability Denial of Service The ability to deny or degrade a service to legitimate users Authorization Elevation of Privilege The ability of a user to elevate their privileges with an application without authorization * Framework, not classification scheme. STRIDE is a good framework, but bad taxonomy.
  • 23. 23 Threat Property Definition Example Spoofing Authentication Impersonating something or someone else. Pretending to be any of billg, xbox.com or a system update Tampering Integrity Modifying data or code Modifying a game config file on disk, or a packet as it traverses the network Repudiation Non-repudiation Claiming to have not performed an action “I didn’t cheat!” Information Disclosure Confidentiality Exposing information to someone not authorized to see it Reading key material from an app Denial of Service Availability Deny or degrade service to users Crashing the web site, sending a packet and absorbing seconds of CPU time, or routing packets into a black hole Elevation of Privilege Authorization Gain capabilities without proper authorization Allowing a remote internet user to run commands is the classic example, but running kernel code from lower trust levels is also EoP
  • 24. Element S T R I D E External entity   Process       Data Store     Data Flow    Identifying STRIDE Threats by Data Flow Diagram Element Type 24 * graphical representation of the required STRIDE threats that must be investigated
  • 26. Document and categorize threats 26 Threat Description Attacker elevates privilege by leveraging the service client request process Threat Target Service Client Request (5.0) Threat Category Elevation of privilege Risk Damage Potential: 10 Reproducibility: 2 Exploitability: 2 Affected Users: 1 Discoverability: 10 Overall: 5 Comments The threat target in question runs in a Web server process, and the code runs in the Local System context. This means that any malicious code executing in the context of the Web server is Local System on the computer also. Reproducibility and exploitability are low because the only realistic way to exploit this is for the attacker to take advantage of a security vulnerability in the Web server process. The low affected users count is because only this server is affected, although one could argue that everyone could be affected by this if an attacker compromised the server.
  • 29. Distractions 30 Do not “worry” about threats like: • The computer is infected with malware • Antivirus scanner is outdated • Someone removed the hard drive and tampers data • Admin is not trustworthy • A user is attacking himself • Social Engineering “The 10 Immutable Laws of Security”, http://technet.microsoft.com/en-us/magazine/2008.10.securitywatch.aspx.
  • 31. How to play? 32 • Deal out all the cards • Play hands (once around the table) Connect the threat on a card to the diagram Play in a hand stays in the suit • Play once through the deck • Take notes Player | Points | Card | Component | Notes
  • 33. Bob plays 10 of Tampering
  • 35. Dan plays 8 of Tampering
  • 36. Rules 37 • Must play in suit if you can • High card wins the hand Unless there’s a joker (elevation of privilege card) • Aces are for threats not listed on the cards • 1 point for each threat, 1 for the hand
  • 37. Why does the game work as a tool? 38 • Attractive and cool • Encourages flow • Requires participation Threats act as hints Instant feedback • Social permission for Playful exploration Disagreement • Produces real threat models
  • 38. Step 3: Mitigation 39 • Approaches to threat mitigation (in order of preference): • Redesign • Use standard mitigations • Use unique/custom mitigations • Accept risk in accordance with policies Step Objective: To address identified threats to an application design
  • 39. Examples of Standard Mitigations 40 Threat Example Standard Mitigations Spoofing To authenticate principals: • OpenID authentication • Windows authentication (NTLM) • Kerberos authentication • PKI systems such as SSL/TLS and certificates • IPSec • Digitally signed packets To authenticate code or data: • Digital signatures • Message authentication codes • Hashes Tampering • Windows Mandatory Integrity Controls • ACLs • Digital signatures • Message Authentication Codes Repudiation • Strong Authentication • Secure logging and auditing • Digital Signatures • Secure time stamps • Trusted third parties Information Disclosure • Encryption • ACLS Denial of Service • ACLs • Filtering • Quotas • Authorization • High availability designs Elevation of Privilege • ACLs • Group or role membership • Privilege ownership • Permissions • Input validation There are great threat (and mitigation) libraries (OWASP, CVE etc).
  • 40. Inventing Mitigations 41 • It’s always risky! • Mitigations are an area of expertise such as networking, databases, or cryptography • Amateurs make mistakes, so do professionals • Mitigation failures will appear to work until an expert looks at them • When you need to invent mitigations, get expert help
  • 41. Accepting the Threat 42 • Accepting the threat could be OK IF cost to mitigate is higher THAN Exploitation Probability AND Impact • Let Stakeholders and/or Users know about it anyway
  • 42. How to select threat that could be left without mitigation? 43 Prioritize the Threats: • Do the easy fixes first • Average DREAD method • Probability x Impact DREAD method • [put your other more complex methods here]
  • 43. DREAD 44 Factor Description Damage Potential What is the damage that could be done? Reproducibility How easy is to reproduce the attack? Exploitability How hard is to meet the conditions for the attack to succeed? Affected Users How large and how important are the affected users? Discoverability How easy is for external researchers/attackers to discover the vulnerability?
  • 44. DREAD- based Risk calculation Methods 45 𝐷 + 𝑅 + 𝐸 + 𝐴 + 𝐷𝑖 5 𝑅 + 𝐸 + 𝐷𝑖) × (𝐷 + 𝐴 6 5422 23 38 39 Low Medium High
  • 45. Distractions 46 Mitigation is used to • Address or alleviate a problem • Protect customers When designing secure software, it is not enough to: • Create a great model • Identify lots of threats
  • 46. Step 4: Validation 47 • Validation of the model • Validation of enumerated threats • Validation of mitigations • Validation of assumptions Step Objective: To help ensure that threat models accurately reflect application design and potential threats
  • 49. Validating the Threat Model 50 Does the threat model demonstrate a sufficient level of understanding of product security? • Does the diagram match final architecture? • Are all threats enumerated? Minimum: STRIDE per element • Has Test or QA reviewed the model? • Is each threat mitigated? • Are mitigations done right? Were these checked before Final Security Review? • Shipping will be more predictable
  • 50. Validating Quality of Threats and Mitigations 51 Verify Assumptions Good Threats describe: • The attack • The context • The impact Good Mitigations: • Associated with a threat • Describe the mitigations • File a bug/task
  • 53. Microsoft SDL Threat Modeling Advantages and Disadvantages 56 Advantages • Can be used to find threats to a system early in the development process • Can be used by both security experts and non-security experts • Can be used to guide other security assessment activities Disadvantages • Upfront costs (training, software, and setup)
  • 54. Conclusion 57 • Overview of the Microsoft SDL Threat Modeling process • Advantages and disadvantages • Steps of the Microsoft SDL Threat Modeling process • Microsoft Threat Modeling Tool • Microsoft SDL threat modeling requirements • Overview of the Microsoft SDL Threat Modeling Tool • Benefits and features