Threat Modeling in Practice: A Team Sport

Threat modeling is a systems engineering practice where teams examine how data flows through systems to identify what can go wrong. It is a deceptively simple act that reveals security risks that automated tools cannot anticipate. Rather than conducting security analysis as a separate or upfront activity, teams should integrate threat modeling into their development process through small, regular activities. This article helps teams get started and develop their practice using different approaches across application development and infrastructure.

Start With Dataflows, Not Fear

Today’s cyber threats can seem overwhelming. Ransomware, supply chain attacks, backdoors, and social engineering dominate the headlines. The key to cutting through this complexity is tracing how data moves through your technology stack. Begin by following where data enters your boundary, whether through user interfaces, APIs, message queues, or model endpoints. Then understand how it flows between services, through data stores, and across trust boundaries into integrated systems.

Mapping these flows transforms vague worries like “Should we worry about hackers?” into specific, actionable questions. For example, “What happens if this API response is tampered with?” or “What if this model input is poisoned?”

From there, identifying threats is deceptively simple: follow each data flow and ask, “What can go wrong?” This question will lead to complex technical and socio-behavioural analysis that challenges unconscious assumptions. It forces teams to shift from thinking about how a system works to how it fails. Even a simple dataflow — for example, a messaging API that accepts a message and a recipient ID, then delivers to all internal staff — can warrant serious threats when examined this way. Layering the question of what can go wrong exposes perspectives that would otherwise remain hidden, allowing teams to add defense mechanisms incrementally within each flow.

Use STRIDE as a Structured Prompt

Brainstorming threats can become open-ended without structured frameworks. As you follow key data flows, use STRIDE, a mnemonic for six key information security properties, to methodically identify common vulnerabilities:

  • Spoofed identity: Is there authentication? Should there be? Attackers pretending to be legitimate users through stolen credentials, phishing, or social engineering.
  • Tampering with input: Attackers modifying data, code, or memory maliciously to break trust boundaries.
  • Repudiation: Can you prove which user performed an action when something goes wrong, or could they deny responsibility due to insufficient audit trails?
  • Information disclosure: Sensitive data exposed through poor access controls, cleartext transmission, or insufficient data protection.
  • Denial of service: Attacks making the system unavailable to legitimate users by flooding or breaking critical components.
  • Elevation of privilege: Attackers gaining unauthorized access levels or moving laterally through the system.

Teams can use printed STRIDE cards or keep them on screen during sessions. Another useful technique is prompting a GenAI chat interface with context about the dataflow, asking it to apply STRIDE — most often this yields a helpful list of threats to consider.

Work Little and Often

Once the basics click, it is tempting to organize a full-day workshop to threat model every dataflow at once. This big-bang approach overwhelms teams and rarely sticks. Instead, integrate threat modeling regularly into your workflows, like continuous integration for security.

The most effective threat modeling happens in bite-sized chunks tied to what the team is currently working on. Fifteen minutes examining the security implications of a new feature can yield more practical value than hours analyzing hypothetical scenarios for code that does not exist yet. These small sessions fit naturally into sprint planning, design discussions, or daily standups.

This “little and often” approach builds confidence gradually, focuses attention on immediate actionable concerns, and makes threat modeling a natural part of how the team thinks about software delivery.

Build Shared Understanding, Not Just a Checklist

Effective threat modeling draws strength from diverse perspectives. A security specialist spots technical vulnerabilities, a product owner identifies business risks, and a developer sees implementation challenges. A quick conversation by the team whiteboard is as valuable as a structured session, whether in person or collaborating remotely.

The goal is not just to find threats, it is to build a common language for discussing security. Developers learn to think like attackers, product owners understand security trade-offs, and security specialists gain insight into the system’s inner workings. No security expertise is required to start — fresh eyes often spot risks that experts miss. The key is creating an environment where everyone feels comfortable contributing ideas.

Structured Activities to Move Forward

Like any skill, threat modeling is not something you can grasp through explanation alone — it requires hands-on practice. Every threat modeling exercise follows the same basic pattern: a set of structured activities, each leading to an outcome, conducted within a team. Various formats exist, from quick whiteboard sessions to longer structured workshops. As with all agile ways of working, the key is finding what works in your team’s context.

ActivityQuestionOutcome
Explain and exploreWhat are you building?A technical diagram
Identify threatsWhat can go wrong?A list of threats
Prioritize and fixWhat are you going to do?Prioritized fixes added to backlog

The examples in this article are independent from each other, so you can pick and choose the one that best suits your current needs, or work through all of them to gain varied perspectives. Once you have grasped the gist, pick a suitable format that fits your team’s ways of working and give it a headstart immediately — nothing beats learning from hands-on practice.

Whiteboard Sessions: A Fast Path to Threat Modeling

A 15-30 minute whiteboard session is a practical entry point for teams new to threat modeling, or for those wanting a quick security check on a feature in active development. The goal isn't exhaustive analysis; it's to examine the immediate security implications of what the team is building right now.

Scoping and Preparation

Choose a feature with clear boundaries. For example, an order management epic where store assistants can create and modify customer orders is ideal scope — it's a single feature with a well-defined flow.

The session needs the development team. Product owners bring the business context and security specialists offer valuable input, but their absence shouldn't block the session. Encourage testers, business analysts, and anyone else building or supporting the feature to contribute. All you need are markers, a whiteboard (physical or digital), and sticky notes for capturing threats.

Step One: Explain and Explore

The first goal is a shared understanding of the system. Let the product owner describe the functional flows and identify the users. Then have developers walk through the technical implementation, capturing a low-level diagram on the whiteboard. Use different marker colors to distinguish internal systems, external services, and trust boundaries — this pays off when you start hunting for threats. As the diagram takes shape, explicitly mark the entities that could cause financial loss, reputation damage, or legal disputes as "assets."

For the order management example, the product owner outlined the flow: a customer service executive or store assistant logs in to the web UI, searches by order ID to modify an order, or navigates to a create-order page for new orders. The owner flagged customer data and order information as critical business assets, protected by GDPR.

Developers then detailed the technical stack: a UI component, an authentication service, a customer database, an order service, and an orders database. Data flows were traced — the UI sends credentials to the authentication service, then calls the order service with /GET, /POST, and /DELETE operations. The UI was noted as the least trusted component since it's exposed to external access. Throughout, encourage the team to correct or add missing elements until everyone agrees the diagram reflects reality.

From that picture, the team identified the assets worth protecting:

  • Order information — tampering could mean lost sales and a damaged reputation.
  • Customer details — exposure of sensitive data could trigger legal issues under privacy laws.

Step Two: Identify Threats

With the system mapped, shift to black-hat thinking. The exercise is structured but open:

  1. Hand out sticky notes and pens to everyone.
  2. Pick a single data flow from the diagram.
  3. Ask the question — “what could go wrong?” — and prompt with the STRIDE threat categories.
  4. Write one specific threat per sticky, e.g., "SQL injection from Internet" or "No encryption of customer data."
  5. Place each sticky visibly on the data flow where the threat would manifest.
  6. Keep going until ideas run out.

Remember that attackers will use the same data flows as legitimate users, but in unexpected ways. Even a simple flow from an untrusted source can cause havoc, so cover all data flows before wrapping up.

In the order management session, the team flushed the board with ideas without debating whether each was valid — that filtering happens later. Comparing your own brainstorming against the team's results can reveal both overlaps and gaps.

Note: This exercise is meant only to familiarize you with the threat modeling steps, not to serve as an accurate threat model for an order management system.

Reviewing the brainstormed threats one by one surfaced design flaws and nuanced permission issues. The team also noted that production privileges for team members needed discussion. As the conversation deepened, it became clear that most threats felt critical — prioritization was necessary to focus defensive efforts.

Step Three: Prioritize and Fix

Turn threats into action by evaluating each one's risk. Consider likelihood, exposure, and impact — even a rough dollar value for losing the asset. Ask whether you've seen this threat before, whether it's a common pattern like those in the OWASP Top 10, and how exposed your system is. Don't overlook the worst case, especially when multiple threats could combine into a larger problem.

Threat modeling exists to drive improvement, not paranoia. Once top threats are identified, embed the fixes into daily workflow with concrete practices:

  • Add security-related acceptance criteria to existing user stories.
  • Create focused user stories for new security features.
  • Plan spikes for investigating solutions through a security lens.
  • Update the Definition of Done with security requirements.
  • Create epics for major security architecture changes.

Capture or photograph the threat model diagram and tag action items as "security-related." Assign them via your normal planning process rather than creating a parallel tracking system.

Running a Cross-Team Platform Threat Model

Some threat modeling efforts need to span multiple teams or entire platforms. Security weaknesses frequently appear at the boundaries between systems—infrastructure and deployment pipelines are prime examples because they hold high privilege and control over the deployment environment. When several teams own different parts of that chain, getting a complete picture of vulnerabilities becomes difficult.

The answer is to bring the right mix of people together. Platform engineers, application developers, and security specialists are essential. Adding others from the product development cycle, such as business analysts and testers, ensures the risk view stays holistic.

Preparation Checklist

For remote or hybrid sessions, preparation matters more than usual. A practical kit includes:

  • Collaborative tools: Use Mural, Miro, or Google Docs for diagramming and collaboration, but only if they are security-approved for the sensitivity of the data being discussed.
  • Manageable scope: Focus on critical components like the CI/CD pipeline, AWS infrastructure, and deployment artifacts. Do not try to cover the whole system in one session; timebox the scope.
  • Pre-built diagrams: Create basic diagrams asynchronously before the session to preserve working time. Make sure participants understand the symbols and conventions in advance.
  • Short sessions: Start with 90 minutes. This allows for discussion and learning without fatigue. As the team gains confidence, run shorter and more frequent sessions within regular sprints.
  • Active facilitation: Keep everyone contributing, especially remotely where disengagement is easy. Open with a simple security exercise or icebreaker.
  • Outcome focus: Keep discussions pointed toward concrete, actionable security stories. Prepare how to document them and identify owners to take them into respective backlogs.
  • Breaks: Plan extra breaks for remote sessions and finish on time with clear outcomes.

Workshop Example: AWS-Hosted Order Management

To illustrate, consider a worked example on an order management system hosted on AWS. A cross-functional team of platform engineers, application developers, and security specialists meets to uncover both localized and systemic vulnerabilities.

The session opens with a clear statement of scope. The team identifies the relevant users:

  • Platform engineers manage infrastructure and have privileged access to the AWS Management Console.
  • Application developers and testers interact with CI/CD pipelines and the application code.
  • End users interact with the application UI, providing personal and order information.

Next, the team draws a technical diagram mapping the CI/CD pipelines, AWS infrastructure components, data flows, and users. With that diagram in place, they identify the key assets in the delivery pipeline:

  • AWS Management Console access, which allows IAM configuration and other infrastructure changes—unauthorized changes could create system-wide vulnerabilities and outages.
  • CI/CD pipeline configurations for both the application and infrastructure pipelines; tampering here could move malicious code into production.
  • Deployment artifacts, namely the application code and infrastructure as code for S3 (hosting the UI), Lambda (Order service), and Aurora DB. These represent the organization's intellectual property and could be stolen, destroyed, or tampered with.
  • The authentication service, linking to the core identity service, could be abused to gain illegitimate access to the system.
  • Order data in Aurora, which stores sensitive business and customer information and could damage reputation if breached.
  • Access credentials, including AWS access keys and database passwords, which could be exploited for activities like crypto mining and cause financial loss.

Identifying Threats

With these assets placed on the diagram, the team switches to “black hat” thinking and explores how an attacker might target privileged access points and application-level components. They apply the STRIDE framework to structure the discussion, capturing ideas as sticky notes.

CategoryThreats

Spoofed identity

1. An attacker could use stolen platform engineer credentials to access the AWS Management Console and make unauthorized changes to infrastructure.

2. Someone could impersonate an application developer in GitHub to inject malicious code into the CI/CD pipeline.

Tampering with inputs

3. An attacker might modify infrastructure-as-code files in the GitHub repository to disable security protections.

4. Someone could tamper with source code for the app to include malicious code.

Repudiation of actions

5. A platform engineer could make unauthorized changes to AWS configurations and later deny their actions due to lack of proper logging in CloudTrail.

6. An application developer could deploy ill-intended code, if there's no audit trail in the CI/CD pipeline.

Information disclosure

7. Misconfigured S3 bucket permissions could expose the UI files and potentially sensitive information.

8. Improperly written Lambda functions might leak sensitive order data through verbose error messages.

Denial of service

9. An attacker could exploit the autoscaling configuration to trigger unnecessary scaling, causing financial damage.

10. Someone could flood the authentication service with requests, preventing legitimate users from accessing the system.

Elevation of privilege

11. An application developer could exploit a misconfigured IAM role to gain platform engineer level access.

12. An attacker might use a vulnerability in the Lambda function to gain broader access to the AWS environment.

Prioritization and Remediation

With a list of threats assembled, the team votes based on likely impact to select which ones to address first. For the top items, they discuss defense measures—these may include secret vaults, secret scanners integrated into pipelines, two-factor authentication, and specialized off-the-shelf security products.

Tools alone will not suffice. The team also identifies stricter operational practices, such as the principle of least privilege even within the platform team itself, and the need to design infrastructure components with well-thought-out security policies. Translating these measures into security stories allows the team to estimate the budget for tool purchases and plan internal approvals. That visibility enabled smoother cross-team collaboration.

Making Threat Modeling Stick

Threat modeling is not a one-off security gate. Automated checks and penetration tests only catch known issues; threat modeling helps a team understand and manage evolving risks by making security a shared responsibility.

Start simply and refine. After a few sessions, run a retrospective: ask what worked, what did not, and adapt. Experiment with diagram styles, try domain-specific threat libraries, and connect with the wider practice community. Approached step by step, threat modeling is never too hard.

The first session alone will add concrete security stories to the backlog. Over time, though, the real return is a team that thinks about security continuously, not as an afterthought. Set aside the first half hour, assemble the team, and start drawing.