Threat Modelling

Threat modeling with STRIDE, DREAD and PASTA

Frameworks

There are various frameworks for a conducting a good threat model for an application but the most commonly used Threat Modelling Frameworks are STRIDE, DREAD and PASTA.

To explain it briefly:

STRIDE is used to identify

DREAD is used to evaluate

PASTA is used to identify and evaluate

5 Benefits of Threat Modeling

  1. Unveiling Vulnerabilities: Expose hidden weaknesses in your applications and fortify your defenses.

  2. Proactive Defense: Stay one step ahead by identifying potential attack vectors and crafting preemptive strategies.

  3. Cost-Saving Superpower: Save big on post-breach remediation costs by preventing security flaws early on.

  4. Collaborative Culture: Foster teamwork and break down silos as diverse teams work together to identify risks.

  5. Regulatory Resilience: Navigate the compliance landscape confidently with security considerations from the start.

In general, a good threat modeling assessment should provide answers to the following questions: What is being built? What could go wrong? Where are the most vulnerable interactions with the application? What threats are relevant to the application? What are we going to to do about those threats? How can we protect against those threats?


STRIDE Threat Modeling Framework

When it comes to securing your systems, understanding potential threats is key. One of the most effective ways to do this is through the STRIDE threat modeling framework. STRIDE is like a checklist that helps you think about different kinds of security risks. Here’s a breakdown of what STRIDE stands for and how you can use it to make your systems safer:

What Does STRIDE Stand For?

  • Spoofing: This is all about pretending to be someone you’re not. Imagine a hacker impersonating a legitimate user to gain unauthorized access. Spoofing is a big deal because it can let attackers sneak into systems without permission.

  • Tampering: Tampering means messing with data or system components. Think of it like someone sneaking into your database and changing information. This can lead to corrupted data and other serious issues.

  • Repudiation: This involves users denying they did something. Without proper tracking, someone might claim they didn’t perform certain actions, which can be problematic if those actions are malicious.

  • Information Disclosure: This is about unauthorized access to sensitive data. If your system leaks confidential information, it could lead to data breaches and privacy issues.

  • Denial of Service (DoS): A DoS attack overloads your system, making it unavailable to legitimate users. It’s like someone clogging up the highway so no one else can drive.

  • Elevation of Privilege: This is when someone gains more access or control than they’re supposed to. For example, a regular user might find a way to get admin-level permissions.

How to Use STRIDE

  1. Understand Your Assets: Start by figuring out what’s valuable in your system—whether it’s data, applications, or other components. Know what needs protection.

  2. Identify Potential Threats: For each part of your system, think about how the different STRIDE categories could apply. Ask yourself questions like:

    • Could someone impersonate a user or system (spoofing)?

    • Is there a risk of tampering with data or settings?

    • Are there ways users might deny their actions (repudiation)?

    • Is there sensitive info that could be exposed (information disclosure)?

    • Could the system be overwhelmed and become unavailable (DoS)?

    • Are there ways to gain unauthorized access or permissions (elevation of privilege)?

  3. Analyze and Prioritize: Once you’ve identified potential threats, assess how likely they are and how severe their impact would be. Focus on the biggest risks first.

  4. Mitigate Threats: Create strategies to counteract these threats. This might include:

    • Implementing strong authentication to prevent spoofing.

    • Using data integrity checks to prevent tampering.

    • Setting up comprehensive logging to handle repudiation.

    • Encrypting sensitive data to prevent information disclosure.

    • Applying rate limits and having backup systems to handle DoS attacks.

    • Ensuring proper authorization checks to prevent privilege escalation.

  5. Review Regularly: Threat modeling isn’t a one-time task. Regularly revisit your threat model to adapt to new threats and changes in your system.

The value of STRIDE

STRIDE gives you a structured way to think about and address security threats. It ensures you consider a wide range of risks, helping you build a more robust security posture.

STRIDE Example

Working on an online banking app:

  • Spoofing: An attacker might set up a fake login page to steal user credentials.

  • Tampering: They could alter transaction records to steal money.

  • Repudiation: Without proper logs, users might deny making unauthorized transactions.

  • Information Disclosure: Sensitive financial data could be leaked if not properly protected.

  • Denial of Service: Attackers could flood the system with requests, causing it to crash.

  • Elevation of Privilege: A user might exploit a bug to gain admin access.


DREAD Threat Modeling Framework

When you’re working on securing your systems, it’s crucial to understand how different threats might impact your project. The DREAD framework is a handy tool for evaluating and prioritizing these threats. It helps you figure out which risks are worth your attention and resources. Here’s a simple breakdown of DREAD and how to use it:

What Does DREAD Stand For?

  • Damage Potential: This is about how much harm an attack could cause if it succeeds. For example, if a security breach could lead to a massive data leak, that’s high damage potential.

  • Reproducibility: This measures how easily an attacker can repeat the attack. If an exploit is easy to reproduce, it’s more dangerous because it can be used over and over.

  • Exploitability: This looks at how easy it is to carry out the attack. If an attacker needs only basic skills or tools to exploit a vulnerability, it’s highly exploitable.

  • Affected Users: This assesses how many users are impacted by the threat. If an attack affects a large number of users, it’s a bigger concern.

  • Discoverability: This measures how easy it is for an attacker to find the vulnerability. If it’s something that’s hard to discover, it’s less of an immediate risk.

Using DREAD effectively

DREAD helps you evaluate threats in a structured way, making it easier to decide where to allocate your security resources. It’s a practical method for turning abstract threats into concrete priorities.

How to Use DREAD

  1. Identify Threats: Start by listing out potential threats to your system. Think about what could go wrong and what kinds of attacks could be a problem.

  2. Evaluate Each Threat Using DREAD: For each threat, assess it based on the five DREAD categories:

    • Damage Potential: How severe would the damage be if this threat were exploited?

    • Reproducibility: Can the attack be repeated easily? If yes, this makes the threat more critical.

    • Exploitability: How easy is it for an attacker to carry out the attack? The easier it is, the higher the risk.

    • Affected Users: How many people would be impacted? More affected users mean a higher priority.

    • Discoverability: How easy is it for someone to discover this vulnerability? If it’s easy to find, it’s a bigger threat.

  3. Score and Prioritize: Assign scores to each threat based on your evaluation. For example, you might rate each category from 1 (low) to 10 (high). Add up the scores to get a sense of which threats are the most critical.

  4. Address the Top Threats: Focus on the threats with the highest scores. These are the ones that pose the greatest risk to your system and should be prioritized in your security plan.

  5. Review and Update: Like with any threat model, keep revisiting your DREAD assessments. New threats can emerge, and your system can change, so regular updates are essential.

DREAD Example

Securing a new e-commerce platform:

  • Damage Potential: A vulnerability that exposes customer credit card information has high damage potential because of the potential financial and reputational damage.

  • Reproducibility: If the vulnerability is easily repeatable, like a SQL injection that works with a simple script, it’s more dangerous.

  • Exploitability: If the exploit requires just a basic understanding of SQL, it’s highly exploitable.

  • Affected Users: If the vulnerability could impact all users of the platform, it’s a major concern.

  • Discoverability: If this vulnerability is easy to find, like a missing input validation field, it needs urgent attention.


PASTA Threat Modeling Framework

When it comes to understanding and managing security threats, the PASTA (Process for Attack Simulation and Threat Analysis) framework is a powerful tool. It’s a structured approach that helps you analyze threats in a comprehensive way. Here’s a friendly guide to what PASTA is all about and how you can use it:

PASTA use case?

PASTA is valuable because it provides a structured way to think through security issues from multiple angles. It helps you understand not just what could go wrong, but also how to address it effectively. It’s like having a roadmap for both identifying and mitigating risks.

What is PASTA?

PASTA is an acronym for Process for Attack Simulation and Threat Analysis. It’s designed to simulate potential attacks and understand how they could affect your system. The goal is to help you identify, prioritize, and address threats in a systematic manner. Here’s a rundown of the seven stages involved:

The Seven Stages of PASTA

  1. Define the Objectives: Start by understanding what your system does and what it needs to protect. This includes identifying critical assets, such as sensitive data or key functionalities. Ask yourself: What are the system’s goals, and what are we trying to safeguard?

  2. Define the Technical Scope: In this stage, you dive into the technical details of your system. This includes mapping out the architecture, identifying components, and understanding how data flows through the system. It’s like drawing a detailed blueprint of your system’s infrastructure.

  3. Decompose the Application: Break down your application or system into its smaller components and understand how each part interacts. This helps in identifying potential attack vectors and areas of vulnerability. Think of it as taking apart a machine to see how each piece works and where it might fail.

  4. Identify Threat Agents and Their Goals: Consider who might want to attack your system and why. Different threat agents have different motivations and techniques. Are they insiders or outsiders? Do they want financial gain, data theft, or just to cause disruption?

  5. Identify and Analyze Threats: Based on the threat agents identified, list out potential threats. Analyze how these threats could exploit vulnerabilities in your system. This stage is about thinking like an attacker and understanding what they might target.

  6. Assess Vulnerabilities: Look at your system through the lens of the identified threats. Evaluate how vulnerable each part of your system is to these threats. This might involve reviewing security controls, access permissions, and other protective measures.

  7. Determine and Implement Mitigations: Finally, come up with strategies to address the vulnerabilities and threats you’ve identified. This could involve implementing new security controls, improving existing ones, or changing system designs. The goal is to reduce the risk to an acceptable level.

Example for PASTA

Cloud-based project management tool:

  • Define Objectives: Your goal is to protect project data, user information, and ensure the tool is available to authorized users.

  • Define Technical Scope: Map out how data moves through the tool, including storage, processing, and user interactions.

  • Decompose the Application: Break down the tool into components like user authentication, data storage, and communication channels.

  • Identify Threat Agents: Consider threats like disgruntled employees, hackers seeking data, or competitors looking to disrupt your service.

  • Identify and Analyze Threats: For example, an attacker could exploit weak authentication to gain unauthorized access.

  • Assess Vulnerabilities: Check if current authentication methods are strong enough or if they’re prone to brute force attacks.

  • Determine and Implement Mitigations: Strengthen authentication with multi-factor authentication, review and tighten access controls, and regularly update security protocols.


Use/Misuse/Abuse Cases

In a use case, we focus on defining the proper behavior or interaction with our software application.

In a misuse case, we adopt the perspective of a hacker or threat actor.

We then explore how such an adversary might exploit our system.

By developing and running misuse or abuse test cases, we can identify and mitigate potential attacks from malicious actors.

Misuse cases often involve creating test scenarios based on known attack vectors and vulnerabilities, then executing these scenarios to assess the software's security and resilience.

Last updated