Important
If you are into Product security or application security or security engineering, you would need this study plan more than any other security professionals. However, it is advised for every security professional to have a fair understanding of Threat Modeling fundamentals.
Note
It should take 1-2 months for good understanding of Threat Modeling with some hands-on experiences.
Threat modelling is a structured approach for analysing the security of an application and enables to identify, quantify, and address the security risks associated with an application. From details about threats and likely attacks against each application, the organization operates more effectively through better decisions about prioritization of initiatives for security. Additionally, decisions for risk acceptance are more informed, therefore better aligned to the business.
Tip
You must go through OWASP Threat Modeling Cheat Sheet for basic understanding.
In short,
- Threat modeling is the process of identifying, analyzing, and mitigating potential security threats to a system or organization.
- It involves identifying the assets that need to be protected, analyzing the potential threats to those assets, and developing strategies to mitigate or eliminate those threats.
- The early you perform Threat Modeling the better result you would get.
- The trust boundaries to and within the application
- The actors that interact within and outside of the trust boundaries
- Information flows within and to and from the trust boundaries
- Information persistence within and out of trust boundaries
- Threats to transgression of trust boundaries by actors and for information flow and persistence
- Vulnerabilities at trust boundaries as accessed by actors and for information flow and persistence
- Threat agents that can exploit the vulnerabilities
- Impact of exploitation of vulnerability by a threat agent
- Decision tree to treat the risk
As benefits of threat modeling, we can say:
- Proactive Threat Identification: Early detection of possible security problems.
- Cost Efficiency: Addressing threats early lowers remediation expenses.
- Prioritization: Concentration on the most significant vulnerabilities.
- System Understanding: Enhanced insight into system interactions and data flows.
There are many, but these are famous ones and the ones you would be using in your work:
- STRIDE (the most common and famous one)
- CVSS
- Attack Tree (Pentesters would love your threat model)
- PASTA
- Octave
- Lindunn (Privacy threat modeling framework)
- While both threat modeling and VAPT are important tools for ensuring the security of a system or organization, they are used for different purposes and at different stages of the development process.
- Threat modeling is typically done as a proactive measure, while VAPT is done as a reactive measure.
- Some organizations may choose to use both approaches as part of a comprehensive security program.
- Threat Model helps developers, pentesters and others to narrow down the scope and yields a better code or pentest outcome.
- System Diagrams: Comprehensive illustrations of the architecture and data flows.
- Security Requirements: Defined criteria for protecting the system.
- Threat List: Inventory of potential threats along with mitigation strategies.
The first step in threat modeling is to identify the assets that need to be protected. These assets can include data, hardware, software, and people.
The next step is to identify the potential threats to the identified assets. This can be done through a variety of methods, such as brainstorming sessions, reviewing industry reports and research, and consulting with subject matter experts.
Once potential threats have been identified, the next step is to assess the likelihood and impact of each threat. This helps prioritize the threats and determine which ones need to be addressed first.
Based on the likelihood and impact of the identified threats, develop strategies to mitigate or eliminate those threats. These strategies can include implementing technical controls, such as firewalls and intrusion detection systems, as well as non-technical controls, such as security awareness training and incident response plans.
After the threat mitigation strategies have been implemented, it is important to test and validate their effectiveness to ensure that they are effective in mitigating or eliminating the identified threats.
Threat models should be reviewed and updated regularly to ensure that they remain current and relevant. This includes identifying new threats, reassessing the likelihood and impact of existing threats, and updating the threat mitigation strategies as needed.
- Define the scope of the threat modeling study: This includes identifying the system or organization that needs to be protected and the assets that need to be considered in the threat modeling process.
- Identify potential threats: This involves identifying potential threats to the assets identified in Step 1. This can be done through various methods, such as brainstorming sessions, reviewing industry reports and research, and consulting with subject matter experts.
- Analyze the likelihood and impact of identified threats: Once potential threats have been identified, the next step is to assess the likelihood and impact of each threat. This helps prioritize the threats and determine which ones must be addressed first.
- Develop strategies to mitigate or eliminate identified threats: Based on the likelihood and impact of the identified threats, develop strategies to mitigate or eliminate those threats. These strategies can include implementing technical controls, such as firewalls and intrusion detection systems, and non-technical controls, such as security awareness training and incident response plans.
- Test and validate the effectiveness of the threat mitigation strategies: After the threat mitigation strategies have been implemented, it is essential to test and validate their effectiveness to ensure that they are effective in mitigating or eliminating the identified threats.
- Review and update the threat model: Threat models should be reviewed and updated regularly to ensure that they remain current and relevant. This includes identifying new threats, reassessing the likelihood and impact of existing threats, and updating the threat mitigation strategies as needed.
Tip
Try to practice building a threat model diagram as much as possible. Such as making a threat model diagram for a personal website, a WordPress site hosted in AWS, or an application using API and third-party integration.
Try to understand the diagram as much as possible and practice making something like this independently. This diagram might need an update or modification. The more practice you practice, the easier it will be for you.
Once you gain the fair knowledge of threat modeling and already practiced a few. Now try to answer these questions that may help you in real time and also in interview
- How can we onboard Threat Modeling process in our existing SDLC
- What are the technical challenges you would face while dealing with threat modeling
- How can you make it scalable and iterable throughout the software cycle
- It can be different for different application or system. How to handle all those?
- Which TM process we must promote in our organisation?
- How are you going to validate the issues you found during Threat Modeling?
- Learn what's these and how to achieve: 7.1 agile threat modeling, 7.2 automated threat modeling, 7.3 rapid threat modeling, 7.4 advanced threat modeling
- OWASP Threat Dragon
- Microsoft Threat Modeling Tool
- STRIDE GPT
- Threagile - run agile threat modeling
- PyTM - a Pythonic Framework for Threat Modeling
- draw.io is also a good tool to draw threat model diagram
- https://owasp.org/www-project-threat-dragon/
- https://owasp.org/www-community/Threat_Modeling
- https://www.simplilearn.com/what-is-threat-modeling-article
- https://www.synopsys.com/glossary/what-is-threat-modeling.html
- https://www.eccouncil.org/threat-modeling/
- https://komsr3ll.medium.com/threat-modelling-attack-vectors-4f4989336588
- Mindmap of a threat model used by Red Team
- Cyber Threat Modeling by MITRE
- https://redcanary.com/blog/threat-modeling/
- https://www.jemurai.com/2020/11/10/risk-and-threat-modeling-with-mind-maps/
- https://shellsharks.com/threat-modeling
- Clone this repo for more resources: Awesome Threat Modeling by @secfigo
- Threat Modeling Podcast by Chris Romeo
- Threat Modeling learning resources: Linkedin Post
- Certified Threat Modeling Professional by Practical DevSecOps
- Kubernetes Threat Modeling
- AWS S3 Threat Modeling - One you think you are ready for real time projects