SlideShare une entreprise Scribd logo
1  sur  77
Presenter Name
Date
Introduction to Microsoft®
Security Development
Lifecycle (SDL)
Threat Modeling
Secure software made easier
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
Requirements Design Design analysis
Security
Experts
All engineers SDL
Threat Modeling
“Internet Engineering Task Force” (IETF)
Threat Modeling
Development stage
Core People involved
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
10
Remote
Castle
Service
9
SSDP
8
Castle
Service
8
Explorer
(orrundl132)
2
Local
User
1
Shacct
4
Setacct
info
Getacct
info
Getacct info
Setacctinfo
Feedback
Manage
Castle
Read
Castle info
Cache Castle
info
Getversion
info
Setversion
info Queryother
Castle info
Publishthis
Castle info
Join,leave,
Setusersprops
Queryusersprops
Getmachine
password
Setpsswd
Manage
Castle
Feedback
SSDP
10
Remote
Castle
Service
9
SSDP
8
Castle
Service
8
Explorer
(orrundl132)
2
Local
User
1
Shacct
4
Setacct
info
Getacct
info
Getacct info
Setacctinfo
Feedback
Manage
Castle
Read
Castle info
Cache Castle
info
Getversion
info
Setversion
info Queryother
Castle info
Publishthis
Castle info
Join,leave,
Setusersprops
Queryusersprops
Getmachine
password
Setpsswd
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
Mitigate
Validate
The Process: Diagramming
Diagram
Identify
Threats
Mitigate
Validate
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
• People
• Other systems
• Microsoft.com
• Function call
• Network traffic
• Remote
Procedure Call
(RPC)
• DLLs
• EXEs
• COM object
• Components
• Services
• Web Services
• Assemblies
• Database
• File
• Registry
• Shared
Memory
• Queue / Stack
External
Entity
Process
Data
Flow Data Store
Trust Boundary
• Process boundary
• File system
Diagrams: Trust Boundaries
• Add trust boundaries that intersect data flows
• 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
• 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
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
iNTegrity App
Resource integrity information
Analysis Instructions
Administrator
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?
Data comes from external entities or data stores
SQL DatabaseWeb ServerCustomer
Order
Confirmation
Diagram Validation Rules of Thumb
Are there data sinks?
You write to a store for a reason: Someone uses it.
SQL Server DatabaseWeb Server
Transaction
Analytics
Diagram Validation Rules of Thumb
Data doesn’t flow magically
Order Database
Returns Database
Order Database
Returns Database
RMA
Diagram Validation Rules of Thumb
It goes through a process
Diagrams Should Not Resemble
• Flow charts
• Class diagrams
• Call graphs
Real Context Diagram (“Castle”)
Castle
Service
Local
User
Castle Config
Feedback
Join/Leave
Castle
Remote
Castle
Castle Config
Feedback
Castle Level 1 Diagram
SSDP
10
Remote
Castle
Service
9
SSDP
8
Castle
Service
8
Explorer
(orrundl132)
2
Shacct
4
Setacct
Info
Getacctinfo
Getacctinfo
Setacctinfo
Feedback
Manage
Castle
Read
Castleinfo
CacheCastle
info
Getversion
info
Setversion
info Queryother
Castleinfo
Publishthis
Castleinfo
Join,leave,
Setusersprops
Queryusersprops
Getmachine
password
Setpsswd
Manage
Castle
Feedback
Local
User
1
The Process: Identifying Threats
Diagram
Identify
Threats
Mitigate
Validate
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
Process
Data Store
S T R I D E
 
    
  
  
ELEMENT
?
Data Flow
External Entity
Different Threats Affect Each Element Type
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)
Diagram
Identify
Threats
Mitigate
Validate
The Process: Mitigation
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. Redesign to eliminate
2. Apply standard mitigations
• What have similar software packages done
and how has that worked out for them?
3. Invent new mitigations (riskier)
4. 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. OM is validated and checked by (component) before
being handed over to Rasterization Service
2. The resources are decoded and validated by interacting
subsystems, such as [foo], [bar], and [boop]
3. Rasterization ensures that if there are any resource
problems while loading and converting OM to raster
data, it returns a proper error code
4. 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
Mitigate
Validate
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
File System
6.0
iNTegrity
Host
Software
3.0
Admin
1.0
iNTegrity
Admin
Console
2.0
Raw
FS
Data
Config Data
4.0
Integrity Files
5.0
Read
Settings
Read
Update
Registry
7.0
Raw
Registry
Data
Commands
Resource
Integrity
Data
Instructions
Integrity
Change
Information
…and two trust boundaries,
which don‟t have threats
against them
5
8
9
10
14
11
16
1513
12
7
2
1
3
4
6
Identify All Elements (16 Elements)
Administrator (1)
Admin console (2) , Host SW (3)
Threats Elements
Config data (4), Integrity data (5),
Filesystem data (6), registry (7)
8. raw reg data
9. raw filesystem data
10. commands
.... 16
Process
Data Store
S T R I D E
 
 
 
 
ELEMENT

Data Flow
External Entity
Identify STRIDE threats by element type
Identify Threat Types to Each Element
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
Reinvigorate your Threat Modeling
Process
http://msdn.microsoft.com/en-
us/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-9F1A-
8EA2720EE92A/Shostack-ModSec08-
Experiences-Threat-Modeling-At-
Microsoft.pdf
SDL Blog
All threat modeling posts
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
SDL Portal
http://www.microsoft.com/sdl
SDL Blog
http://blogs.msdn.com/sdl/
SDL Process on MSDN (Web)
http://msdn.microsoft.com/en-
us/library/cc307748.aspx
SDL Process on MSDN (MS Word)
http://go.microsoft.com/?linkid=969
4872
Resources
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.
Threat Property we want
Spoofing Authentication
Tampering Integrity
Repudiation Nonrepudiation
Information Disclosure Confidentiality
Denial of Service Availability
Elevation of Privilege Authorization
S T R I D E
Standard Mitigations
S T R I D E
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
S T R I D E
Threat Property
Tampering Integrity • Windows Vista mandatory integrity
controls
• ACLs
• Digital signatures
• Message authentication codes
Standard Mitigations
S T R I D E
Threat Property
Repudiation Nonrepudiation • Strong authentication
• Secure logging and auditing
• Digital signatures
• Secure time stamps
• Trusted third parties
Standard Mitigations
S T R I D E
Threat Property
Information
Disclosure
Confidentiality • Encryption
• ACLs
Standard Mitigations
S T R I D E
Threat Property
Denial of
Service
Availability • ACLs
• Filtering
• Quotas
• Authorization
• High-availability designs
Standard Mitigations
S T R I D E
Threat Property
Elevation of
Privilege
Authorization • ACLs
• Group or role membership
• Privilege ownership
• Permissions
• Input validation
Standard Mitigations

Contenu connexe

Tendances

Web Application Security Testing
Web Application Security TestingWeb Application Security Testing
Web Application Security TestingMarco Morana
 
Cyber Security and Cloud Computing
Cyber Security and Cloud ComputingCyber Security and Cloud Computing
Cyber Security and Cloud ComputingKeet Sugathadasa
 
Application Security | Application Security Tutorial | Cyber Security Certifi...
Application Security | Application Security Tutorial | Cyber Security Certifi...Application Security | Application Security Tutorial | Cyber Security Certifi...
Application Security | Application Security Tutorial | Cyber Security Certifi...Edureka!
 
Security Training: #3 Threat Modelling - Practices and Tools
Security Training: #3 Threat Modelling - Practices and ToolsSecurity Training: #3 Threat Modelling - Practices and Tools
Security Training: #3 Threat Modelling - Practices and ToolsYulian Slobodyan
 
Threat Modeling Everything
Threat Modeling EverythingThreat Modeling Everything
Threat Modeling EverythingAnne Oikarinen
 
Threat modelling with_sample_application
Threat modelling with_sample_applicationThreat modelling with_sample_application
Threat modelling with_sample_applicationUmut IŞIK
 
Classification of vulnerabilities
Classification of vulnerabilitiesClassification of vulnerabilities
Classification of vulnerabilitiesMayur Mehta
 
OWASP Top 10 2021 What's New
OWASP Top 10 2021 What's NewOWASP Top 10 2021 What's New
OWASP Top 10 2021 What's NewMichael Furman
 
Security Vulnerabilities
Security VulnerabilitiesSecurity Vulnerabilities
Security VulnerabilitiesMarius Vorster
 
Vulnerability Management
Vulnerability ManagementVulnerability Management
Vulnerability Managementasherad
 
Cyber Threat Modeling
Cyber Threat ModelingCyber Threat Modeling
Cyber Threat ModelingEC-Council
 
Cyber Threat Intelligence
Cyber Threat IntelligenceCyber Threat Intelligence
Cyber Threat IntelligencePrachi Mishra
 
PHDays 2018 Threat Hunting Hands-On Lab
PHDays 2018 Threat Hunting Hands-On LabPHDays 2018 Threat Hunting Hands-On Lab
PHDays 2018 Threat Hunting Hands-On LabTeymur Kheirkhabarov
 
Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)Brian Huff
 
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 ThreatsUlf Mattsson
 
How to Test for The OWASP Top Ten
 How to Test for The OWASP Top Ten How to Test for The OWASP Top Ten
How to Test for The OWASP Top TenSecurity Innovation
 
Session2-Application Threat Modeling
Session2-Application Threat ModelingSession2-Application Threat Modeling
Session2-Application Threat Modelingzakieh alizadeh
 
Threat Modeling workshop by Robert Hurlbut
Threat Modeling workshop by Robert HurlbutThreat Modeling workshop by Robert Hurlbut
Threat Modeling workshop by Robert HurlbutDevSecCon
 

Tendances (20)

Web Application Security Testing
Web Application Security TestingWeb Application Security Testing
Web Application Security Testing
 
Cyber Security and Cloud Computing
Cyber Security and Cloud ComputingCyber Security and Cloud Computing
Cyber Security and Cloud Computing
 
Application Security | Application Security Tutorial | Cyber Security Certifi...
Application Security | Application Security Tutorial | Cyber Security Certifi...Application Security | Application Security Tutorial | Cyber Security Certifi...
Application Security | Application Security Tutorial | Cyber Security Certifi...
 
Threat Modeling Using STRIDE
Threat Modeling Using STRIDEThreat Modeling Using STRIDE
Threat Modeling Using STRIDE
 
Security Training: #3 Threat Modelling - Practices and Tools
Security Training: #3 Threat Modelling - Practices and ToolsSecurity Training: #3 Threat Modelling - Practices and Tools
Security Training: #3 Threat Modelling - Practices and Tools
 
Threat Modeling Everything
Threat Modeling EverythingThreat Modeling Everything
Threat Modeling Everything
 
Threat modelling with_sample_application
Threat modelling with_sample_applicationThreat modelling with_sample_application
Threat modelling with_sample_application
 
Classification of vulnerabilities
Classification of vulnerabilitiesClassification of vulnerabilities
Classification of vulnerabilities
 
OWASP Top 10 2021 What's New
OWASP Top 10 2021 What's NewOWASP Top 10 2021 What's New
OWASP Top 10 2021 What's New
 
Security Vulnerabilities
Security VulnerabilitiesSecurity Vulnerabilities
Security Vulnerabilities
 
Vulnerability Management
Vulnerability ManagementVulnerability Management
Vulnerability Management
 
Cyber Threat Modeling
Cyber Threat ModelingCyber Threat Modeling
Cyber Threat Modeling
 
Cyber Threat Intelligence
Cyber Threat IntelligenceCyber Threat Intelligence
Cyber Threat Intelligence
 
PHDays 2018 Threat Hunting Hands-On Lab
PHDays 2018 Threat Hunting Hands-On LabPHDays 2018 Threat Hunting Hands-On Lab
PHDays 2018 Threat Hunting Hands-On Lab
 
Red7 Software Application Security Threat Modeling
Red7 Software Application Security Threat ModelingRed7 Software Application Security Threat Modeling
Red7 Software Application Security Threat Modeling
 
Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)
 
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
 
How to Test for The OWASP Top Ten
 How to Test for The OWASP Top Ten How to Test for The OWASP Top Ten
How to Test for The OWASP Top Ten
 
Session2-Application Threat Modeling
Session2-Application Threat ModelingSession2-Application Threat Modeling
Session2-Application Threat Modeling
 
Threat Modeling workshop by Robert Hurlbut
Threat Modeling workshop by Robert HurlbutThreat Modeling workshop by Robert Hurlbut
Threat Modeling workshop by Robert Hurlbut
 

Similaire à Introduction to threat_modeling

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 AppSecLalit Kale
 
STRIDE: Digging Vulnerability by Threat Modelling
STRIDE: Digging Vulnerability by Threat ModellingSTRIDE: Digging Vulnerability by Threat Modelling
STRIDE: Digging Vulnerability by Threat ModellingMohammad Febri
 
RIoT (Raiding Internet of Things) by Jacob Holcomb
RIoT  (Raiding Internet of Things)  by Jacob HolcombRIoT  (Raiding Internet of Things)  by Jacob Holcomb
RIoT (Raiding Internet of Things) by Jacob HolcombPriyanka Aash
 
ATT&CKing the Sentinel – deploying a threat hunting capability on Azure Senti...
ATT&CKing the Sentinel – deploying a threat hunting capability on Azure Senti...ATT&CKing the Sentinel – deploying a threat hunting capability on Azure Senti...
ATT&CKing the Sentinel – deploying a threat hunting capability on Azure Senti...CloudVillage
 
I got 99 trends and a # is all of them
I got 99 trends and a # is all of themI got 99 trends and a # is all of them
I got 99 trends and a # is all of themRoberto Suggi Liverani
 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsDicodingEvent
 
Fluturas presentation @ Big Data Conclave
Fluturas presentation @ Big Data ConclaveFluturas presentation @ Big Data Conclave
Fluturas presentation @ Big Data Conclavefluturads
 
Controlling Access to IBM i Systems and Data
Controlling Access to IBM i Systems and DataControlling Access to IBM i Systems and Data
Controlling Access to IBM i Systems and DataPrecisely
 
Make your Azure PaaS Deployment More Safe
Make your Azure PaaS Deployment More SafeMake your Azure PaaS Deployment More Safe
Make your Azure PaaS Deployment More SafeThuan Ng
 
Are we there Yet?? (The long journey of Migrating from close source to opens...
Are we there Yet?? (The long journey of Migrating from close source to opens...Are we there Yet?? (The long journey of Migrating from close source to opens...
Are we there Yet?? (The long journey of Migrating from close source to opens...Marco Tusa
 
Thick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseThick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseScott Sutherland
 
The Golden Rules - Detecting more with RSA Security Analytics
The Golden Rules  - Detecting more with RSA Security AnalyticsThe Golden Rules  - Detecting more with RSA Security Analytics
The Golden Rules - Detecting more with RSA Security AnalyticsDemetrio Milea
 
How to Destroy a Database
How to Destroy a DatabaseHow to Destroy a Database
How to Destroy a DatabaseJohn Ashmead
 
Protect your Database with Data Masking & Enforced Version Control
Protect your Database with Data Masking & Enforced Version Control	Protect your Database with Data Masking & Enforced Version Control
Protect your Database with Data Masking & Enforced Version Control DBmaestro - Database DevOps
 
201411203 goto night on graphs for fraud detection
201411203 goto night on graphs for fraud detection201411203 goto night on graphs for fraud detection
201411203 goto night on graphs for fraud detectionRik Van Bruggen
 
Annual OktCyberfest 2019
Annual OktCyberfest 2019Annual OktCyberfest 2019
Annual OktCyberfest 2019Fahad Al-Hasan
 
DevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first SecurityDevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first SecurityCoverity
 
IANS information security forum 2019 summary
IANS information security forum 2019 summaryIANS information security forum 2019 summary
IANS information security forum 2019 summaryKarun Chennuri
 
Security Testing: Myths, Challenges, and Opportunities - Experiences in Integ...
Security Testing: Myths, Challenges, and Opportunities - Experiences in Integ...Security Testing: Myths, Challenges, and Opportunities - Experiences in Integ...
Security Testing: Myths, Challenges, and Opportunities - Experiences in Integ...Achim D. Brucker
 

Similaire à Introduction to threat_modeling (20)

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
 
STRIDE: Digging Vulnerability by Threat Modelling
STRIDE: Digging Vulnerability by Threat ModellingSTRIDE: Digging Vulnerability by Threat Modelling
STRIDE: Digging Vulnerability by Threat Modelling
 
Null meet Code Review
Null meet Code ReviewNull meet Code Review
Null meet Code Review
 
RIoT (Raiding Internet of Things) by Jacob Holcomb
RIoT  (Raiding Internet of Things)  by Jacob HolcombRIoT  (Raiding Internet of Things)  by Jacob Holcomb
RIoT (Raiding Internet of Things) by Jacob Holcomb
 
ATT&CKing the Sentinel – deploying a threat hunting capability on Azure Senti...
ATT&CKing the Sentinel – deploying a threat hunting capability on Azure Senti...ATT&CKing the Sentinel – deploying a threat hunting capability on Azure Senti...
ATT&CKing the Sentinel – deploying a threat hunting capability on Azure Senti...
 
I got 99 trends and a # is all of them
I got 99 trends and a # is all of themI got 99 trends and a # is all of them
I got 99 trends and a # is all of them
 
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsTechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
 
Fluturas presentation @ Big Data Conclave
Fluturas presentation @ Big Data ConclaveFluturas presentation @ Big Data Conclave
Fluturas presentation @ Big Data Conclave
 
Controlling Access to IBM i Systems and Data
Controlling Access to IBM i Systems and DataControlling Access to IBM i Systems and Data
Controlling Access to IBM i Systems and Data
 
Make your Azure PaaS Deployment More Safe
Make your Azure PaaS Deployment More SafeMake your Azure PaaS Deployment More Safe
Make your Azure PaaS Deployment More Safe
 
Are we there Yet?? (The long journey of Migrating from close source to opens...
Are we there Yet?? (The long journey of Migrating from close source to opens...Are we there Yet?? (The long journey of Migrating from close source to opens...
Are we there Yet?? (The long journey of Migrating from close source to opens...
 
Thick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseThick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash Course
 
The Golden Rules - Detecting more with RSA Security Analytics
The Golden Rules  - Detecting more with RSA Security AnalyticsThe Golden Rules  - Detecting more with RSA Security Analytics
The Golden Rules - Detecting more with RSA Security Analytics
 
How to Destroy a Database
How to Destroy a DatabaseHow to Destroy a Database
How to Destroy a Database
 
Protect your Database with Data Masking & Enforced Version Control
Protect your Database with Data Masking & Enforced Version Control	Protect your Database with Data Masking & Enforced Version Control
Protect your Database with Data Masking & Enforced Version Control
 
201411203 goto night on graphs for fraud detection
201411203 goto night on graphs for fraud detection201411203 goto night on graphs for fraud detection
201411203 goto night on graphs for fraud detection
 
Annual OktCyberfest 2019
Annual OktCyberfest 2019Annual OktCyberfest 2019
Annual OktCyberfest 2019
 
DevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first SecurityDevBeat 2013 - Developer-first Security
DevBeat 2013 - Developer-first Security
 
IANS information security forum 2019 summary
IANS information security forum 2019 summaryIANS information security forum 2019 summary
IANS information security forum 2019 summary
 
Security Testing: Myths, Challenges, and Opportunities - Experiences in Integ...
Security Testing: Myths, Challenges, and Opportunities - Experiences in Integ...Security Testing: Myths, Challenges, and Opportunities - Experiences in Integ...
Security Testing: Myths, Challenges, and Opportunities - Experiences in Integ...
 

Plus de Prabath Siriwardena

Microservices Security Landscape
Microservices Security LandscapeMicroservices Security Landscape
Microservices Security LandscapePrabath Siriwardena
 
Cloud Native Identity with SPIFFE
Cloud Native Identity with SPIFFECloud Native Identity with SPIFFE
Cloud Native Identity with SPIFFEPrabath Siriwardena
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & GuidelinesPrabath Siriwardena
 
Microservices Security Landscape
Microservices Security LandscapeMicroservices Security Landscape
Microservices Security LandscapePrabath Siriwardena
 
Blockchain-based Solutions for Identity & Access Management
Blockchain-based Solutions for Identity & Access ManagementBlockchain-based Solutions for Identity & Access Management
Blockchain-based Solutions for Identity & Access ManagementPrabath Siriwardena
 
OAuth 2.0 for Web and Native (Mobile) App Developers
OAuth 2.0 for Web and Native (Mobile) App DevelopersOAuth 2.0 for Web and Native (Mobile) App Developers
OAuth 2.0 for Web and Native (Mobile) App DevelopersPrabath Siriwardena
 
Identity Management for Web Application Developers
Identity Management for Web Application DevelopersIdentity Management for Web Application Developers
Identity Management for Web Application DevelopersPrabath Siriwardena
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & GuidelinesPrabath Siriwardena
 
Open Standards in Identity Management
Open Standards  in  Identity ManagementOpen Standards  in  Identity Management
Open Standards in Identity ManagementPrabath Siriwardena
 
Securing Single-Page Applications with OAuth 2.0
Securing Single-Page Applications with OAuth 2.0Securing Single-Page Applications with OAuth 2.0
Securing Single-Page Applications with OAuth 2.0Prabath Siriwardena
 
API Security : Patterns and Practices
API Security : Patterns and PracticesAPI Security : Patterns and Practices
API Security : Patterns and PracticesPrabath Siriwardena
 
Best Practices in Building an API Security Ecosystem
Best Practices in Building an API Security EcosystemBest Practices in Building an API Security Ecosystem
Best Practices in Building an API Security EcosystemPrabath Siriwardena
 
Connected Identity : The Role of the Identity Bus
Connected Identity : The Role of the Identity BusConnected Identity : The Role of the Identity Bus
Connected Identity : The Role of the Identity BusPrabath Siriwardena
 
Connected Identity : Benefits, Risks & Challenges
Connected Identity : Benefits, Risks & ChallengesConnected Identity : Benefits, Risks & Challenges
Connected Identity : Benefits, Risks & ChallengesPrabath Siriwardena
 
The Evolution of Internet Identity
The Evolution of Internet IdentityThe Evolution of Internet Identity
The Evolution of Internet IdentityPrabath Siriwardena
 
Next-Gen Apps with IoT and Cloud
Next-Gen Apps with IoT and CloudNext-Gen Apps with IoT and Cloud
Next-Gen Apps with IoT and CloudPrabath Siriwardena
 

Plus de Prabath Siriwardena (20)

Microservices Security Landscape
Microservices Security LandscapeMicroservices Security Landscape
Microservices Security Landscape
 
Cloud Native Identity with SPIFFE
Cloud Native Identity with SPIFFECloud Native Identity with SPIFFE
Cloud Native Identity with SPIFFE
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & Guidelines
 
Identity is Eating the World!
Identity is Eating the World!Identity is Eating the World!
Identity is Eating the World!
 
Microservices Security Landscape
Microservices Security LandscapeMicroservices Security Landscape
Microservices Security Landscape
 
OAuth 2.0 Threat Landscape
OAuth 2.0 Threat LandscapeOAuth 2.0 Threat Landscape
OAuth 2.0 Threat Landscape
 
GDPR for Identity Architects
GDPR for Identity ArchitectsGDPR for Identity Architects
GDPR for Identity Architects
 
Blockchain-based Solutions for Identity & Access Management
Blockchain-based Solutions for Identity & Access ManagementBlockchain-based Solutions for Identity & Access Management
Blockchain-based Solutions for Identity & Access Management
 
OAuth 2.0 Threat Landscapes
OAuth 2.0 Threat LandscapesOAuth 2.0 Threat Landscapes
OAuth 2.0 Threat Landscapes
 
OAuth 2.0 for Web and Native (Mobile) App Developers
OAuth 2.0 for Web and Native (Mobile) App DevelopersOAuth 2.0 for Web and Native (Mobile) App Developers
OAuth 2.0 for Web and Native (Mobile) App Developers
 
Identity Management for Web Application Developers
Identity Management for Web Application DevelopersIdentity Management for Web Application Developers
Identity Management for Web Application Developers
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & Guidelines
 
Open Standards in Identity Management
Open Standards  in  Identity ManagementOpen Standards  in  Identity Management
Open Standards in Identity Management
 
Securing Single-Page Applications with OAuth 2.0
Securing Single-Page Applications with OAuth 2.0Securing Single-Page Applications with OAuth 2.0
Securing Single-Page Applications with OAuth 2.0
 
API Security : Patterns and Practices
API Security : Patterns and PracticesAPI Security : Patterns and Practices
API Security : Patterns and Practices
 
Best Practices in Building an API Security Ecosystem
Best Practices in Building an API Security EcosystemBest Practices in Building an API Security Ecosystem
Best Practices in Building an API Security Ecosystem
 
Connected Identity : The Role of the Identity Bus
Connected Identity : The Role of the Identity BusConnected Identity : The Role of the Identity Bus
Connected Identity : The Role of the Identity Bus
 
Connected Identity : Benefits, Risks & Challenges
Connected Identity : Benefits, Risks & ChallengesConnected Identity : Benefits, Risks & Challenges
Connected Identity : Benefits, Risks & Challenges
 
The Evolution of Internet Identity
The Evolution of Internet IdentityThe Evolution of Internet Identity
The Evolution of Internet Identity
 
Next-Gen Apps with IoT and Cloud
Next-Gen Apps with IoT and CloudNext-Gen Apps with IoT and Cloud
Next-Gen Apps with IoT and Cloud
 

Dernier

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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 productivityPrincipled Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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 AutomationSafe Software
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Dernier (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Introduction to threat_modeling

  • 1. Presenter Name Date Introduction to Microsoft® Security Development Lifecycle (SDL) Threat Modeling Secure software made easier
  • 2. Course Overview • Introduction and Goals • How to Threat Model • The STRIDE per Element Approach to Threat Modeling • Diagram Validation Rules of Thumb • Exercise • Demo
  • 3.
  • 4. Terminology and Context Requirements Design Design analysis Security Experts All engineers SDL Threat Modeling “Internet Engineering Task Force” (IETF) Threat Modeling Development stage Core People involved
  • 5. 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?
  • 6. 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
  • 7. 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
  • 8. 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
  • 9.
  • 10. SSDP 10 Remote Castle Service 9 SSDP 8 Castle Service 8 Explorer (orrundl132) 2 Local User 1 Shacct 4 Setacct info Getacct info Getacct info Setacctinfo Feedback Manage Castle Read Castle info Cache Castle info Getversion info Setversion info Queryother Castle info Publishthis Castle info Join,leave, Setusersprops Queryusersprops Getmachine password Setpsswd Manage Castle Feedback
  • 11. SSDP 10 Remote Castle Service 9 SSDP 8 Castle Service 8 Explorer (orrundl132) 2 Local User 1 Shacct 4 Setacct info Getacct info Getacct info Setacctinfo Feedback Manage Castle Read Castle info Cache Castle info Getversion info Setversion info Queryother Castle info Publishthis Castle info Join,leave, Setusersprops Queryusersprops Getmachine password Setpsswd
  • 12. Any Questions? • Everyone understands that? • Spotted the several serious bugs? • Let‟s step back and build up to that
  • 13.
  • 14. The Process in a Nutshell Diagram Identify Threats Mitigate Validate
  • 16. 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?
  • 17. 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)
  • 18. Diagram Elements: Examples • People • Other systems • Microsoft.com • Function call • Network traffic • Remote Procedure Call (RPC) • DLLs • EXEs • COM object • Components • Services • Web Services • Assemblies • Database • File • Registry • Shared Memory • Queue / Stack External Entity Process Data Flow Data Store Trust Boundary • Process boundary • File system
  • 19. Diagrams: Trust Boundaries • Add trust boundaries that intersect data flows • 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 • 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 19
  • 20. 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
  • 21. Context Diagram iNTegrity App Resource integrity information Analysis Instructions Administrator
  • 23. 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
  • 24. 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
  • 25.
  • 26. Diagram Validation Rules of Thumb Does data magically appear? Data comes from external entities or data stores SQL DatabaseWeb ServerCustomer Order Confirmation
  • 27. Diagram Validation Rules of Thumb Are there data sinks? You write to a store for a reason: Someone uses it. SQL Server DatabaseWeb Server Transaction Analytics
  • 28. Diagram Validation Rules of Thumb Data doesn’t flow magically Order Database Returns Database
  • 29. Order Database Returns Database RMA Diagram Validation Rules of Thumb It goes through a process
  • 30. Diagrams Should Not Resemble • Flow charts • Class diagrams • Call graphs
  • 31. Real Context Diagram (“Castle”) Castle Service Local User Castle Config Feedback Join/Leave Castle Remote Castle Castle Config Feedback
  • 32. Castle Level 1 Diagram SSDP 10 Remote Castle Service 9 SSDP 8 Castle Service 8 Explorer (orrundl132) 2 Shacct 4 Setacct Info Getacctinfo Getacctinfo Setacctinfo Feedback Manage Castle Read Castleinfo CacheCastle info Getversion info Setversion info Queryother Castleinfo Publishthis Castleinfo Join,leave, Setusersprops Queryusersprops Getmachine password Setpsswd Manage Castle Feedback Local User 1
  • 33. The Process: Identifying Threats Diagram Identify Threats Mitigate Validate
  • 34. 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
  • 35. Threat: Spoofing Threat Spoofing Property Authentication Definition Impersonating something or someone else Example Pretending to be any of billg, microsoft.com, or ntdll.dll
  • 36. 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
  • 37. 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!”
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. Process Data Store S T R I D E              ELEMENT ? Data Flow External Entity Different Threats Affect Each Element Type
  • 42. 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
  • 43. 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
  • 44. 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)
  • 46. 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
  • 47. Mitigate • Address each threat • Four ways to address threats 1. Redesign to eliminate 2. Apply standard mitigations • What have similar software packages done and how has that worked out for them? 3. Invent new mitigations (riskier) 4. Accept vulnerability in design • SDL rules about what you can accept • Address each threat
  • 48. 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
  • 49. 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
  • 50. Sample Mitigation • Mitigation #54, Rasterization Service performs the following mitigation strategies: 1. OM is validated and checked by (component) before being handed over to Rasterization Service 2. The resources are decoded and validated by interacting subsystems, such as [foo], [bar], and [boop] 3. Rasterization ensures that if there are any resource problems while loading and converting OM to raster data, it returns a proper error code 4. Rasterization Service will be thoroughly fuzz tested (Comment: Fuzzing isn‟t a mitigation, but it‟s a great thing to plan as part 4)
  • 51. 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)
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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.
  • 57. 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
  • 58.
  • 59.
  • 60. 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
  • 61. File System 6.0 iNTegrity Host Software 3.0 Admin 1.0 iNTegrity Admin Console 2.0 Raw FS Data Config Data 4.0 Integrity Files 5.0 Read Settings Read Update Registry 7.0 Raw Registry Data Commands Resource Integrity Data Instructions Integrity Change Information …and two trust boundaries, which don‟t have threats against them 5 8 9 10 14 11 16 1513 12 7 2 1 3 4 6 Identify All Elements (16 Elements)
  • 62. Administrator (1) Admin console (2) , Host SW (3) Threats Elements Config data (4), Integrity data (5), Filesystem data (6), registry (7) 8. raw reg data 9. raw filesystem data 10. commands .... 16 Process Data Store S T R I D E         ELEMENT  Data Flow External Entity Identify STRIDE threats by element type Identify Threat Types to Each Element
  • 63. Identify Threats! • Be specific • Understand threat and impact • Identify first order mitigations
  • 64.
  • 65. 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
  • 66. Threat Modeling Learning Resources MSDN Magazine Reinvigorate your Threat Modeling Process http://msdn.microsoft.com/en- us/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-9F1A- 8EA2720EE92A/Shostack-ModSec08- Experiences-Threat-Modeling-At- Microsoft.pdf SDL Blog All threat modeling posts 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
  • 67. SDL Portal http://www.microsoft.com/sdl SDL Blog http://blogs.msdn.com/sdl/ SDL Process on MSDN (Web) http://msdn.microsoft.com/en- us/library/cc307748.aspx SDL Process on MSDN (MS Word) http://go.microsoft.com/?linkid=969 4872 Resources
  • 69. © 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.
  • 70.
  • 71. Threat Property we want Spoofing Authentication Tampering Integrity Repudiation Nonrepudiation Information Disclosure Confidentiality Denial of Service Availability Elevation of Privilege Authorization S T R I D E Standard Mitigations
  • 72. S T R I D E 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
  • 73. S T R I D E Threat Property Tampering Integrity • Windows Vista mandatory integrity controls • ACLs • Digital signatures • Message authentication codes Standard Mitigations
  • 74. S T R I D E Threat Property Repudiation Nonrepudiation • Strong authentication • Secure logging and auditing • Digital signatures • Secure time stamps • Trusted third parties Standard Mitigations
  • 75. S T R I D E Threat Property Information Disclosure Confidentiality • Encryption • ACLs Standard Mitigations
  • 76. S T R I D E Threat Property Denial of Service Availability • ACLs • Filtering • Quotas • Authorization • High-availability designs Standard Mitigations
  • 77. S T R I D E Threat Property Elevation of Privilege Authorization • ACLs • Group or role membership • Privilege ownership • Permissions • Input validation Standard Mitigations

Notes de l'éditeur

  1. Hi, I’m ___ and I’m here today to talk to you about the approach to threat modeling used in the Microsoft Security Development Lifecycle (SDL).
  2. This course takes roughly 2 hours, and includes an exercise and a tool demo. The agenda is we’ll start out by discussing the goals of threat modeling, explain exactly how to do it—even if you’re not an expert– and then go to an exercise to make things concrete, as well as a demo of the SDL Threat Modeling tool to show you how to make this easy.
  3. Let’s go through the goals of threat modeling.
  4. To get started, let’s understand that threat modeling means a lot of different things to different people. I want to be clear about what we mean when we say SDL threat modeling. We mean a design analysis technique that’s been designed to ensure that all engineers can participate, not only security experts. This is in contrast to (for example) the IETF. There, it’s a perfectly reasonable question to ask “What’s your threat model?” and hear the complete answer be “someone with control over a top level domain.”That approach isn’t wrong, but it doesn’t work for everyone, and so Microsoft has developed a new approach, centered on analyzing designs, and that’s what we’re going to talk about today.
  5. Let’s go through the who/what/why/when/how of integrating threat modeling into your development process.Who will threat model? The bad guys will look at your designs and find flaws in them. You can if you want to, and if you do, you have time to plan to address those issues.(walk through when & why)How? That’s the subject of the rest of this presentation
  6. So who’s involved in creating the threat model? “You” isn’t a very precise answer. There’s two groups involved: first are the team that builds it, and second are the teams that consume it.The folks that build it are dev, test and PM. At Microsoft, program managers are a mix of project manager, product manager and architect who define what the overall product will be. All three have a role in the creation of threat models. Some teams have their testers own the threat model—the tester’s approach to the world is often a good one for finding issues with designs.Creating great threat models is going to require that the threat models be part of your development process, not just documents that sit on a shelf. Working to ensure that threat models are widely consumed is important. So let’s look at some of the customers for threat models: Your team, when new people come on board, or when you hit major development milestones. If you’re working on a large project, talk to other feature teams. Review your threat models together to make sure you understand the security expectations of each side. If there are external security notes in your threat model, some of that data may go to your customers.If you hire pen testers or other security QA, showing them your threat models will save you time and money.
  7. What is threat modeling? What benefits does it bring? There’s three things:Consider, document, and discuss security in a structured way. Structure is important for consistency and cross-group collaboration.You want to threat model your entire product. It doesn’t make sense to threat model, say, the Bold button in Word. You want to threat model Word.You want to think about the security features, like logging or cryptography in detail.You also want to think about the parts of the code which are most exposed – the attack surfaces.The final thing you get from threat modeling documents is assurance that the work has been done. It’s no good to have the world’s best security experts sit around and think about the problem if they don’t share their results.
  8. We’ve done a lot to improve code in the SDL. From effective training to compiler improvements to banned APIs , the code has gotten a lot better. We need to improve our designs as well.It’s hard to get a clean perspective on your own code. You spend a lot of time and effort to get it right, it’s hard to get a fresh look at it. The approach we’re teaching you today helps you do that.
  9. Is the subject of the remainder of the slides.(Run through these next few slides quickly)
  10. Zip through this – so you draw a diagram like this one … (next slide)
  11. “apply stride threats per element, document it all, and you’re done!” (next slide)
  12. Read the slide. Then ”threat modeling is intimidating, and can feel like that.”
  13. So this is the general approach. It looks like most software processes you’ve seen. Two things: The vision stage is optional, and so is the loop. You really only need to loop if you make design changes.
  14. Now to put this all together, we’re going to look at a simple system for change detection in an enterprise.
  15. We have an admin console that gathers filesystem & registry data from one or more monitored hosts in the field. We’ll come back to this in the exercise.
  16. FINDME: If your team has made a call on this, you can eliminate this slide
  17. These rules of thumb are derived from Microsoft’s analysis of threat models and are designed to make it easier to know if you’re doing the right thing. Even if you’re using the tool—which automates these– its important to know where they come from.
  18. I usually ask people in the class to improve this diagram. Where should there be trust boundaries? What’s the wrong shape? What happens in what order?Do point out that none of the data flows are labeled “read” or “write,” and that’s a good thing. You get read/write from the direction of the arrow.
  19. The next phase of the process is to identify threats. How do you do this without being an expert?
  20. Self explanatory. The next slides go into more detail, with examples
  21. These are the threats which affect each type of element. For example, data flows are subject to tampering, information disclosure and denial of service. Data stores are subject to tampering, information disclosure and denial of service, and if they’re logs, impact repudiation:Data stores which are logs come under special attack because they’re logs.Logs can act as a pass through—lots of security software looks at logs. Be careful about what you write.If a system has no logs, repudiation is easy.
  22. A list of STRIDE Standard Mitigations is included at the end of the presentation
  23. Mitigations not /gs
  24. This is one of the only mentions of assets, because many software developers can’t identify them effectively.
  25. I leave this slide up during the exercise.Working in teams is important—it draws people in and gets the energy level in the room way up. I usually announce 10 minutes for this, and end up giving people 15. You can adjust this time to fit how quickly or slowly you’ve gone through the material. You need to plan for a discussion (see the “Identify threats” slide) and also a tool demo and wrap-up.
  26. Sometimes people don’t count data flows; other times they count trust boundaries. Everyone should understand why there are 16 elements.
  27. I prep a chart like this to help me make sure I consider each element.For administrator, I can walk across, looking for S, RFor admin console, I look for STRIDE. (etc)
  28. For each element of the chart starting with spoofing against external entities I ask “Who found X?” You may want a printout of the chart handy for your own use for this.I ask whoever pops up to identify the threat, explain it, and its impact, and then how they’d mitigate it. Plan for 15 minutes here, feel free to cut to no less than 10.
  29. http://www.microsoft.com/sdlDemo script provided seperately.
  30. Note that the advice in the book is somewhat dated. In fact, all of the books are a little dated, and the advice here is current as of 2008.
  31. Version 2.06, Feb 25 2007
  32. http://www.microsoft.com/sdlDemo script provided separately.
  33. This approach strikes me as tremendously tedious to teach through.