SlideShare a Scribd company logo
Using Threat Models as a way to
control the project brief/scope
Dinis Cruz,
London, 22 March 2017
THREAT MODELING
What
https://www.owasp.org/index.php/Category:Threat_Modeling
Why
https://www.slideshare.net/DinisCruz/making-threat-modeling-so-easy
Why
https://www.slideshare.net/DinisCruz/making-threat-modeling-so-easy
How
https://www.owasp.org/index.php/Category:Threat_Modeling
How
https://www.owasp.org/index.php/Category:Threat_Modeling
DFT + STRIDE
DFT + STRIDE
Ask the STRIDE Questions
https://www.slideshare.net/chinwhei/7-steps-to-threat-modeling
Start with paper
‘LOCK’ THE BRIEF
• Key challenge for developers (and project managers) is
the constant flow of business changes/requests
Use Threat Models to control business
• Key challenge for developers (and project managers) is
the constant flow of business changes/requests
• Some look simple, but have major implications
Use Threat Models to control business
• Key challenge for developers (and project managers) is
the constant flow of business changes/requests
• Some look simple, but have major implications
– usually because they don’t fit in the current architecture
Use Threat Models to control business
• Key challenge for developers (and project managers) is
the constant flow of business changes/requests
• Some look simple, but have major implications
– usually because they don’t fit in the current architecture
• this is where Threat Models help since those ‘new
features’ will require an revisit of existing Threat
Models
Use Threat Models to control business
• Key challenge for developers (and project managers) is
the constant flow of business changes/requests
• Some look simple, but have major implications
– usually because they don’t fit in the current architecture
• this is where Threat Models help since those ‘new
features’ will require an revisit of existing Threat
Models
– Putting a gentle (positive) ’break’ in the current business
requests
Use Threat Models to control business
• Key challenge for developers (and project managers) is
the constant flow of business changes/requests
• Some look simple, but have major implications
– usually because they don’t fit in the current architecture
• this is where Threat Models help since those ‘new
features’ will require an revisit of existing Threat
Models
– Putting a gentle (positive) ’break’ in the current business
requests
– Which means that the original brief is ‘locked’
Use Threat Models to control business
• Threat models should be set-up as sources of truth
Sources of truth
• Threat models should be set-up as sources of truth
• There should be a requirement to do a Threat
Model for every app and feature
Sources of truth
• Threat models should be set-up as sources of truth
• There should be a requirement to do a Threat
Model for every app and feature
• Not doing Threat Models means that the security
implications of the ‘new feature’ have not be
considered and documented
Sources of truth
• Threat models should be set-up as sources of truth
• There should be a requirement to do a Threat
Model for every app and feature
• Not doing Threat Models means that the security
implications of the ‘new feature’ have not be
considered and documented
• This is easier to put in place than a requirement to
have ‘up-to-date documentation’ and ‘diagrams
that represent the real world’
Sources of truth
• Creating and following a threat model for a feature is a great
way to understand a threat model journey:
Threat Model per Feature
• Creating and following a threat model for a feature is a great
way to understand a threat model journey:
– First, take a very specific path, a very specific new feature that you are
adding, or take a property, such as a new field, or a new functionality.
Threat Model per Feature
• Creating and following a threat model for a feature is a great
way to understand a threat model journey:
– First, take a very specific path, a very specific new feature that you are
adding, or take a property, such as a new field, or a new functionality.
– Next, you want to create a full flow of that feature. Look at the entry
point and the assets, and look at what is being used in that feature.
Threat Model per Feature
• Creating and following a threat model for a feature is a great
way to understand a threat model journey:
– First, take a very specific path, a very specific new feature that you are
adding, or take a property, such as a new field, or a new functionality.
– Next, you want to create a full flow of that feature. Look at the entry
point and the assets, and look at what is being used in that feature.
– Now, you can map the inputs of the feature; you can map the data
paths given by the data schema, and then you follow the data.
Threat Model per Feature
• Creating and following a threat model for a feature is a great
way to understand a threat model journey:
– First, take a very specific path, a very specific new feature that you are
adding, or take a property, such as a new field, or a new functionality.
– Next, you want to create a full flow of that feature. Look at the entry
point and the assets, and look at what is being used in that feature.
– Now, you can map the inputs of the feature; you can map the data
paths given by the data schema, and then you follow the data.
• You can see for example how the data go into the application,
what it ends up with, who calls who.
Threat Model per Feature
• Creating and following a threat model for a feature is a great
way to understand a threat model journey:
– First, take a very specific path, a very specific new feature that you are
adding, or take a property, such as a new field, or a new functionality.
– Next, you want to create a full flow of that feature. Look at the entry
point and the assets, and look at what is being used in that feature.
– Now, you can map the inputs of the feature; you can map the data
paths given by the data schema, and then you follow the data.
• You can see for example how the data go into the application,
what it ends up with, who calls who.
• This means you have a much tighter brief, and a much better
view of the situation.
Threat Model per Feature
• When you create threat models per feature or per component, a key element
is to start to chain them (i.e. map the connections between them)
Chained threat models
• When you create threat models per feature or per component, a key element
is to start to chain them (i.e. map the connections between them)
– You will be able to identify uber-vulnerabilities, or uber-threats, that are created by
paths that exist from threat model, A to threat model B, to threat model C.
Chained threat models
• When you create threat models per feature or per component, a key element
is to start to chain them (i.e. map the connections between them)
– You will be able to identify uber-vulnerabilities, or uber-threats, that are created by
paths that exist from threat model, A to threat model B, to threat model C.
• For example, I have seen threat models where one will say, "Oh, we get data
from that over there. We trust their system, and they are supposed to have
DOS protections, and they rate limit their requests".
Chained threat models
• When you create threat models per feature or per component, a key element
is to start to chain them (i.e. map the connections between them)
– You will be able to identify uber-vulnerabilities, or uber-threats, that are created by
paths that exist from threat model, A to threat model B, to threat model C.
• For example, I have seen threat models where one will say, "Oh, we get data
from that over there. We trust their system, and they are supposed to have
DOS protections, and they rate limit their requests".
• However, after doing a threat model of that system, we find that it does not
have any DOS protections, even worse, it doesn't do any data validation/
sanitisation.
Chained threat models
• When you create threat models per feature or per component, a key element
is to start to chain them (i.e. map the connections between them)
– You will be able to identify uber-vulnerabilities, or uber-threats, that are created by
paths that exist from threat model, A to threat model B, to threat model C.
• For example, I have seen threat models where one will say, "Oh, we get data
from that over there. We trust their system, and they are supposed to have
DOS protections, and they rate limit their requests".
• However, after doing a threat model of that system, we find that it does not
have any DOS protections, even worse, it doesn't do any data validation/
sanitisation.
• This means that the upstream service (which is 'trusted') is just glorified proxy,:
Chained threat models
• When you create threat models per feature or per component, a key element
is to start to chain them (i.e. map the connections between them)
– You will be able to identify uber-vulnerabilities, or uber-threats, that are created by
paths that exist from threat model, A to threat model B, to threat model C.
• For example, I have seen threat models where one will say, "Oh, we get data
from that over there. We trust their system, and they are supposed to have
DOS protections, and they rate limit their requests".
• However, after doing a threat model of that system, we find that it does not
have any DOS protections, even worse, it doesn't do any data validation/
sanitisation.
• This means that the upstream service (which is 'trusted') is just glorified proxy,:
– meaning that for all practices purposes, the 'internal' APIs and endpoints are directly
connected to the upstream service callers (which is usually the internet, or other
'glorified proxies' services).
Chained threat models
• A key objective of pentest should be to validate the threat
model. Pentests should confirm whether the expectations and
the logic defined in the threat model are true.
Pentest Confirms Threat Model
• A key objective of pentest should be to validate the threat
model. Pentests should confirm whether the expectations and
the logic defined in the threat model are true.
• Any variation identified is itself an important finding because it
means there is a gap in the company's understanding of how
the application behaves.
Pentest Confirms Threat Model
• A key objective of pentest should be to validate the threat
model. Pentests should confirm whether the expectations and
the logic defined in the threat model are true.
• Any variation identified is itself an important finding because it
means there is a gap in the company's understanding of how
the application behaves.
• There are three important steps to follow:
Pentest Confirms Threat Model
• A key objective of pentest should be to validate the threat
model. Pentests should confirm whether the expectations and
the logic defined in the threat model are true.
• Any variation identified is itself an important finding because it
means there is a gap in the company's understanding of how
the application behaves.
• There are three important steps to follow:
– Take the threat models per feature, per layer and confirm that there
is no blind spots or variations on the expectation
Pentest Confirms Threat Model
• A key objective of pentest should be to validate the threat
model. Pentests should confirm whether the expectations and
the logic defined in the threat model are true.
• Any variation identified is itself an important finding because it
means there is a gap in the company's understanding of how
the application behaves.
• There are three important steps to follow:
– Take the threat models per feature, per layer and confirm that there
is no blind spots or variations on the expectation
– Check the code path to improve the understanding of the code path
and what is happening in the threat model
Pentest Confirms Threat Model
• A key objective of pentest should be to validate the threat
model. Pentests should confirm whether the expectations and
the logic defined in the threat model are true.
• Any variation identified is itself an important finding because it
means there is a gap in the company's understanding of how
the application behaves.
• There are three important steps to follow:
– Take the threat models per feature, per layer and confirm that there
is no blind spots or variations on the expectation
– Check the code path to improve the understanding of the code path
and what is happening in the threat model
– Confirm that there are no extra behaviours
Pentest Confirms Threat Model
• One of the key elements of threat modeling is it's ability
to highlight a variety of interesting issues and blind spots,
in particular within the architecture of the threat model.
Capture the success stories of your threat models
• One of the key elements of threat modeling is it's ability
to highlight a variety of interesting issues and blind spots,
in particular within the architecture of the threat model.
• One of my favourite moments occurs when the
developers and the architects working on a threat model
realise something that they hadn't noticed before.
Capture the success stories of your threat models
• One of the key elements of threat modeling is it's ability
to highlight a variety of interesting issues and blind spots,
in particular within the architecture of the threat model.
• One of my favourite moments occurs when the
developers and the architects working on a threat model
realise something that they hadn't noticed before.
– In such cases, sometimes it is the developer who says, "Oh, I
never realised that is how it worked!".
Capture the success stories of your threat models
• One of the key elements of threat modeling is it's ability
to highlight a variety of interesting issues and blind spots,
in particular within the architecture of the threat model.
• One of my favourite moments occurs when the
developers and the architects working on a threat model
realise something that they hadn't noticed before.
– In such cases, sometimes it is the developer who says, "Oh, I
never realised that is how it worked!".
– Other times when the architect says, "Well, this is how app was
designed", and the developer responds "Yeah, but that didn't
work, so we did it like this."
Capture the success stories of your threat models
RISK ACCEPTANCE
• All threats identified in Threat Models (not
matter how small) need to be risk accepted
Risk accepting all threats
• All threats identified in Threat Models (not
matter how small) need to be risk accepted
• Use the JIRA Risk Workflow
Risk accepting all threats
• All threats identified in Threat Models (not
matter how small) need to be risk accepted
• Use the JIRA Risk Workflow
Risk accepting all threats
https://www.slideshare.net/DinisCruz/secdevops-risk-workflow-v06
More details on book (available for free)
https://leanpub.com/secdevops
Thanks
dinis.cruz@owasp.org
@diniscruz

More Related Content

PDF
Legacy-SecDevOps (AppSec Management Debrief)
PDF
Security champions v1.0
PDF
SecDevOps Risk Workflow - v0.6
PDF
Using jira to manage risks v1.0 - owasp app sec eu - june 2016
PDF
Map camp - Why context is your crown jewels (Wardley Maps and Threat Modeling)
PDF
Veracode Automation CLI (using Jenkins for SDL integration)
PDF
SC conference - Building AppSec Teams
PDF
Security in a Continuous Delivery World
Legacy-SecDevOps (AppSec Management Debrief)
Security champions v1.0
SecDevOps Risk Workflow - v0.6
Using jira to manage risks v1.0 - owasp app sec eu - june 2016
Map camp - Why context is your crown jewels (Wardley Maps and Threat Modeling)
Veracode Automation CLI (using Jenkins for SDL integration)
SC conference - Building AppSec Teams
Security in a Continuous Delivery World

What's hot (20)

PDF
New Era of Software with modern Application Security (v0.6)
PDF
Scaling security in a cloud environment v0.5 (Sep 2017)
PPTX
Security Champions - Introduce them in your Organisation
PDF
App sec and quality london - may 2016 - v0.5
PDF
Threat-Modeling-as-Code: ThreatPlaybook AppSecUSA 2018 Presentation
PDF
DevSecCon London 2017: Threat modeling in a CI environment by Steven Wierckx
PDF
Bringing Security Testing to Development: How to Enable Developers to Act as ...
PPTX
Making Security Agile
PPTX
Introduction to DevSecOps
PPTX
Simplify Dev with Complicated Security Tools
PDF
DevOps and DevSecOps, Incident Management
PPTX
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
PDF
Owasp summit 2017
PDF
Blending Automated and Manual Testing
PDF
New Era of Software with modern Application Security v1.0
PDF
2019 DevSecOps Reference Architectures
PDF
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
PDF
Threat modeling with architectural risk patterns
PDF
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
PPTX
AppSec California 2016 - Making Security Agile
New Era of Software with modern Application Security (v0.6)
Scaling security in a cloud environment v0.5 (Sep 2017)
Security Champions - Introduce them in your Organisation
App sec and quality london - may 2016 - v0.5
Threat-Modeling-as-Code: ThreatPlaybook AppSecUSA 2018 Presentation
DevSecCon London 2017: Threat modeling in a CI environment by Steven Wierckx
Bringing Security Testing to Development: How to Enable Developers to Act as ...
Making Security Agile
Introduction to DevSecOps
Simplify Dev with Complicated Security Tools
DevOps and DevSecOps, Incident Management
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
Owasp summit 2017
Blending Automated and Manual Testing
New Era of Software with modern Application Security v1.0
2019 DevSecOps Reference Architectures
Start with passing tests (tdd for bugs) v0.5 (22 sep 2016)
Threat modeling with architectural risk patterns
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
AppSec California 2016 - Making Security Agile
Ad

Similar to Using threat models to control project brief (20)

PPTX
Threat modelling(system + enterprise)
PPTX
"Threat Model Every Story": Practical Continuous Threat Modeling Work for You...
PPT
Lecture 3 - Misuse Cases Final.ppt
PPTX
Threat Modeling Lessons From Star Wars
PPTX
Threat Modeling: Applied on a Publish-Subscribe Architectural Style
PPTX
O'Reilly SACon 2019 - (Continuous) Threat Modeling - What works?
PDF
1.Review news reports from a specific data breach. Choose a breach f.pdf
PPTX
A data analyistic approach to cybercrime underground economy.pptx
PPTX
High time to add machine learning to your information security stack
DOCX
modeling and predicting cyber hacking breaches
PDF
Threat Modeling workshop by Robert Hurlbut
PDF
System Security on Cloud
PDF
Building a Modern Security Engineering Organization
PPTX
The security mindset securing social media integrations and social learning...
PPTX
OWASP Québec: Threat Modeling Toolkit - Jonathan Marcil
PDF
8 Patterns For Continuous Code Security by Veracode CTO Chris Wysopal
PPTX
BsidesLVPresso2016_JZeditsv6
PDF
Threat_Modelling.pdf
PPTX
Presentation infra and_datacentrre_dialogue_v2
PPTX
Week 6 Secure SW Requirements -Abuse case.pptx
Threat modelling(system + enterprise)
"Threat Model Every Story": Practical Continuous Threat Modeling Work for You...
Lecture 3 - Misuse Cases Final.ppt
Threat Modeling Lessons From Star Wars
Threat Modeling: Applied on a Publish-Subscribe Architectural Style
O'Reilly SACon 2019 - (Continuous) Threat Modeling - What works?
1.Review news reports from a specific data breach. Choose a breach f.pdf
A data analyistic approach to cybercrime underground economy.pptx
High time to add machine learning to your information security stack
modeling and predicting cyber hacking breaches
Threat Modeling workshop by Robert Hurlbut
System Security on Cloud
Building a Modern Security Engineering Organization
The security mindset securing social media integrations and social learning...
OWASP Québec: Threat Modeling Toolkit - Jonathan Marcil
8 Patterns For Continuous Code Security by Veracode CTO Chris Wysopal
BsidesLVPresso2016_JZeditsv6
Threat_Modelling.pdf
Presentation infra and_datacentrre_dialogue_v2
Week 6 Secure SW Requirements -Abuse case.pptx
Ad

More from Dinis Cruz (20)

PDF
Glasswall - Safety and Integrity Through Trusted Files
PDF
Glasswall - How to Prevent, Detect and React to Ransomware incidents
PDF
The benefits of police and industry investigation - NPCC Conference
PDF
Serverless Security Workflows - cyber talks - 19th nov 2019
PDF
Modern security using graphs, automation and data science
PDF
Using Wardley Maps to Understand Security's Landscape and Strategy
PDF
Dinis Cruz (CV) - CISO and Transformation Agent v1.2
PDF
Making fact based decisions and 4 board decisions (Oct 2019)
PDF
CISO Application presentation - Babylon health security
PDF
Using OWASP Security Bot (OSBot) to make Fact Based Security Decisions
PDF
GSBot Commands (Slack Bot used to access Jira data)
PDF
(OLD VERSION) Dinis Cruz (CV) - CISO and Transformation Agent v0.6
PDF
OSBot - Data transformation workflow (from GSheet to Jupyter)
PDF
Jira schemas - Open Security Summit (Working Session 21th May 2019)
PDF
Template for "Sharing anonymised risk theme dashboards v0.8"
PDF
Owasp and summits (may 2019)
PDF
Creating a graph based security organisation - Apr 2019 (OWASP London chapter...
PDF
Open security summit 2019 owasp london 25th feb
PDF
Owasp summit 2019 - OWASP London 25th feb
PDF
Evolving challenges for modern enterprise architectures in the age of APIs
Glasswall - Safety and Integrity Through Trusted Files
Glasswall - How to Prevent, Detect and React to Ransomware incidents
The benefits of police and industry investigation - NPCC Conference
Serverless Security Workflows - cyber talks - 19th nov 2019
Modern security using graphs, automation and data science
Using Wardley Maps to Understand Security's Landscape and Strategy
Dinis Cruz (CV) - CISO and Transformation Agent v1.2
Making fact based decisions and 4 board decisions (Oct 2019)
CISO Application presentation - Babylon health security
Using OWASP Security Bot (OSBot) to make Fact Based Security Decisions
GSBot Commands (Slack Bot used to access Jira data)
(OLD VERSION) Dinis Cruz (CV) - CISO and Transformation Agent v0.6
OSBot - Data transformation workflow (from GSheet to Jupyter)
Jira schemas - Open Security Summit (Working Session 21th May 2019)
Template for "Sharing anonymised risk theme dashboards v0.8"
Owasp and summits (may 2019)
Creating a graph based security organisation - Apr 2019 (OWASP London chapter...
Open security summit 2019 owasp london 25th feb
Owasp summit 2019 - OWASP London 25th feb
Evolving challenges for modern enterprise architectures in the age of APIs

Recently uploaded (20)

PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Introduction to Artificial Intelligence
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Transform Your Business with a Software ERP System
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
assetexplorer- product-overview - presentation
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
ai tools demonstartion for schools and inter college
PDF
top salesforce developer skills in 2025.pdf
PPTX
L1 - Introduction to python Backend.pptx
How to Migrate SBCGlobal Email to Yahoo Easily
2025 Textile ERP Trends: SAP, Odoo & Oracle
Introduction to Artificial Intelligence
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
wealthsignaloriginal-com-DS-text-... (1).pdf
Computer Software and OS of computer science of grade 11.pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Transform Your Business with a Software ERP System
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Understanding Forklifts - TECH EHS Solution
Design an Analysis of Algorithms II-SECS-1021-03
Softaken Excel to vCard Converter Software.pdf
assetexplorer- product-overview - presentation
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Operating system designcfffgfgggggggvggggggggg
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
ai tools demonstartion for schools and inter college
top salesforce developer skills in 2025.pdf
L1 - Introduction to python Backend.pptx

Using threat models to control project brief

  • 1. Using Threat Models as a way to control the project brief/scope Dinis Cruz, London, 22 March 2017
  • 10. Ask the STRIDE Questions https://www.slideshare.net/chinwhei/7-steps-to-threat-modeling
  • 13. • Key challenge for developers (and project managers) is the constant flow of business changes/requests Use Threat Models to control business
  • 14. • Key challenge for developers (and project managers) is the constant flow of business changes/requests • Some look simple, but have major implications Use Threat Models to control business
  • 15. • Key challenge for developers (and project managers) is the constant flow of business changes/requests • Some look simple, but have major implications – usually because they don’t fit in the current architecture Use Threat Models to control business
  • 16. • Key challenge for developers (and project managers) is the constant flow of business changes/requests • Some look simple, but have major implications – usually because they don’t fit in the current architecture • this is where Threat Models help since those ‘new features’ will require an revisit of existing Threat Models Use Threat Models to control business
  • 17. • Key challenge for developers (and project managers) is the constant flow of business changes/requests • Some look simple, but have major implications – usually because they don’t fit in the current architecture • this is where Threat Models help since those ‘new features’ will require an revisit of existing Threat Models – Putting a gentle (positive) ’break’ in the current business requests Use Threat Models to control business
  • 18. • Key challenge for developers (and project managers) is the constant flow of business changes/requests • Some look simple, but have major implications – usually because they don’t fit in the current architecture • this is where Threat Models help since those ‘new features’ will require an revisit of existing Threat Models – Putting a gentle (positive) ’break’ in the current business requests – Which means that the original brief is ‘locked’ Use Threat Models to control business
  • 19. • Threat models should be set-up as sources of truth Sources of truth
  • 20. • Threat models should be set-up as sources of truth • There should be a requirement to do a Threat Model for every app and feature Sources of truth
  • 21. • Threat models should be set-up as sources of truth • There should be a requirement to do a Threat Model for every app and feature • Not doing Threat Models means that the security implications of the ‘new feature’ have not be considered and documented Sources of truth
  • 22. • Threat models should be set-up as sources of truth • There should be a requirement to do a Threat Model for every app and feature • Not doing Threat Models means that the security implications of the ‘new feature’ have not be considered and documented • This is easier to put in place than a requirement to have ‘up-to-date documentation’ and ‘diagrams that represent the real world’ Sources of truth
  • 23. • Creating and following a threat model for a feature is a great way to understand a threat model journey: Threat Model per Feature
  • 24. • Creating and following a threat model for a feature is a great way to understand a threat model journey: – First, take a very specific path, a very specific new feature that you are adding, or take a property, such as a new field, or a new functionality. Threat Model per Feature
  • 25. • Creating and following a threat model for a feature is a great way to understand a threat model journey: – First, take a very specific path, a very specific new feature that you are adding, or take a property, such as a new field, or a new functionality. – Next, you want to create a full flow of that feature. Look at the entry point and the assets, and look at what is being used in that feature. Threat Model per Feature
  • 26. • Creating and following a threat model for a feature is a great way to understand a threat model journey: – First, take a very specific path, a very specific new feature that you are adding, or take a property, such as a new field, or a new functionality. – Next, you want to create a full flow of that feature. Look at the entry point and the assets, and look at what is being used in that feature. – Now, you can map the inputs of the feature; you can map the data paths given by the data schema, and then you follow the data. Threat Model per Feature
  • 27. • Creating and following a threat model for a feature is a great way to understand a threat model journey: – First, take a very specific path, a very specific new feature that you are adding, or take a property, such as a new field, or a new functionality. – Next, you want to create a full flow of that feature. Look at the entry point and the assets, and look at what is being used in that feature. – Now, you can map the inputs of the feature; you can map the data paths given by the data schema, and then you follow the data. • You can see for example how the data go into the application, what it ends up with, who calls who. Threat Model per Feature
  • 28. • Creating and following a threat model for a feature is a great way to understand a threat model journey: – First, take a very specific path, a very specific new feature that you are adding, or take a property, such as a new field, or a new functionality. – Next, you want to create a full flow of that feature. Look at the entry point and the assets, and look at what is being used in that feature. – Now, you can map the inputs of the feature; you can map the data paths given by the data schema, and then you follow the data. • You can see for example how the data go into the application, what it ends up with, who calls who. • This means you have a much tighter brief, and a much better view of the situation. Threat Model per Feature
  • 29. • When you create threat models per feature or per component, a key element is to start to chain them (i.e. map the connections between them) Chained threat models
  • 30. • When you create threat models per feature or per component, a key element is to start to chain them (i.e. map the connections between them) – You will be able to identify uber-vulnerabilities, or uber-threats, that are created by paths that exist from threat model, A to threat model B, to threat model C. Chained threat models
  • 31. • When you create threat models per feature or per component, a key element is to start to chain them (i.e. map the connections between them) – You will be able to identify uber-vulnerabilities, or uber-threats, that are created by paths that exist from threat model, A to threat model B, to threat model C. • For example, I have seen threat models where one will say, "Oh, we get data from that over there. We trust their system, and they are supposed to have DOS protections, and they rate limit their requests". Chained threat models
  • 32. • When you create threat models per feature or per component, a key element is to start to chain them (i.e. map the connections between them) – You will be able to identify uber-vulnerabilities, or uber-threats, that are created by paths that exist from threat model, A to threat model B, to threat model C. • For example, I have seen threat models where one will say, "Oh, we get data from that over there. We trust their system, and they are supposed to have DOS protections, and they rate limit their requests". • However, after doing a threat model of that system, we find that it does not have any DOS protections, even worse, it doesn't do any data validation/ sanitisation. Chained threat models
  • 33. • When you create threat models per feature or per component, a key element is to start to chain them (i.e. map the connections between them) – You will be able to identify uber-vulnerabilities, or uber-threats, that are created by paths that exist from threat model, A to threat model B, to threat model C. • For example, I have seen threat models where one will say, "Oh, we get data from that over there. We trust their system, and they are supposed to have DOS protections, and they rate limit their requests". • However, after doing a threat model of that system, we find that it does not have any DOS protections, even worse, it doesn't do any data validation/ sanitisation. • This means that the upstream service (which is 'trusted') is just glorified proxy,: Chained threat models
  • 34. • When you create threat models per feature or per component, a key element is to start to chain them (i.e. map the connections between them) – You will be able to identify uber-vulnerabilities, or uber-threats, that are created by paths that exist from threat model, A to threat model B, to threat model C. • For example, I have seen threat models where one will say, "Oh, we get data from that over there. We trust their system, and they are supposed to have DOS protections, and they rate limit their requests". • However, after doing a threat model of that system, we find that it does not have any DOS protections, even worse, it doesn't do any data validation/ sanitisation. • This means that the upstream service (which is 'trusted') is just glorified proxy,: – meaning that for all practices purposes, the 'internal' APIs and endpoints are directly connected to the upstream service callers (which is usually the internet, or other 'glorified proxies' services). Chained threat models
  • 35. • A key objective of pentest should be to validate the threat model. Pentests should confirm whether the expectations and the logic defined in the threat model are true. Pentest Confirms Threat Model
  • 36. • A key objective of pentest should be to validate the threat model. Pentests should confirm whether the expectations and the logic defined in the threat model are true. • Any variation identified is itself an important finding because it means there is a gap in the company's understanding of how the application behaves. Pentest Confirms Threat Model
  • 37. • A key objective of pentest should be to validate the threat model. Pentests should confirm whether the expectations and the logic defined in the threat model are true. • Any variation identified is itself an important finding because it means there is a gap in the company's understanding of how the application behaves. • There are three important steps to follow: Pentest Confirms Threat Model
  • 38. • A key objective of pentest should be to validate the threat model. Pentests should confirm whether the expectations and the logic defined in the threat model are true. • Any variation identified is itself an important finding because it means there is a gap in the company's understanding of how the application behaves. • There are three important steps to follow: – Take the threat models per feature, per layer and confirm that there is no blind spots or variations on the expectation Pentest Confirms Threat Model
  • 39. • A key objective of pentest should be to validate the threat model. Pentests should confirm whether the expectations and the logic defined in the threat model are true. • Any variation identified is itself an important finding because it means there is a gap in the company's understanding of how the application behaves. • There are three important steps to follow: – Take the threat models per feature, per layer and confirm that there is no blind spots or variations on the expectation – Check the code path to improve the understanding of the code path and what is happening in the threat model Pentest Confirms Threat Model
  • 40. • A key objective of pentest should be to validate the threat model. Pentests should confirm whether the expectations and the logic defined in the threat model are true. • Any variation identified is itself an important finding because it means there is a gap in the company's understanding of how the application behaves. • There are three important steps to follow: – Take the threat models per feature, per layer and confirm that there is no blind spots or variations on the expectation – Check the code path to improve the understanding of the code path and what is happening in the threat model – Confirm that there are no extra behaviours Pentest Confirms Threat Model
  • 41. • One of the key elements of threat modeling is it's ability to highlight a variety of interesting issues and blind spots, in particular within the architecture of the threat model. Capture the success stories of your threat models
  • 42. • One of the key elements of threat modeling is it's ability to highlight a variety of interesting issues and blind spots, in particular within the architecture of the threat model. • One of my favourite moments occurs when the developers and the architects working on a threat model realise something that they hadn't noticed before. Capture the success stories of your threat models
  • 43. • One of the key elements of threat modeling is it's ability to highlight a variety of interesting issues and blind spots, in particular within the architecture of the threat model. • One of my favourite moments occurs when the developers and the architects working on a threat model realise something that they hadn't noticed before. – In such cases, sometimes it is the developer who says, "Oh, I never realised that is how it worked!". Capture the success stories of your threat models
  • 44. • One of the key elements of threat modeling is it's ability to highlight a variety of interesting issues and blind spots, in particular within the architecture of the threat model. • One of my favourite moments occurs when the developers and the architects working on a threat model realise something that they hadn't noticed before. – In such cases, sometimes it is the developer who says, "Oh, I never realised that is how it worked!". – Other times when the architect says, "Well, this is how app was designed", and the developer responds "Yeah, but that didn't work, so we did it like this." Capture the success stories of your threat models
  • 46. • All threats identified in Threat Models (not matter how small) need to be risk accepted Risk accepting all threats
  • 47. • All threats identified in Threat Models (not matter how small) need to be risk accepted • Use the JIRA Risk Workflow Risk accepting all threats
  • 48. • All threats identified in Threat Models (not matter how small) need to be risk accepted • Use the JIRA Risk Workflow Risk accepting all threats https://www.slideshare.net/DinisCruz/secdevops-risk-workflow-v06
  • 49. More details on book (available for free) https://leanpub.com/secdevops