Threat modeling is the process of mapping security weaknesses in a system and prioritizing how to respond to them. In this in-depth article, we will:
When we’re done, you should be able to confidently inject threat modeling to give your team the security upper-hand.
Threat modeling is the structured process of identifying and analyzing risks facing your technology systems. The practice of threat modeling informs decision-making and helps build and support your cyber threat intelligence (CTI). Done well, threat modeling is like a map: you can see your weaknesses, so you can take appropriate and prioritized action to mitigate them.
As the name implies, threat modeling produces a model, or multiple models. OWASP defines a threat model as:
“A structured representation of all the information that affects the security of an application. In essence, it is a view of the application and its environment through the lens of security.”
A threat model typically includes:
Threat modeling follows a well-defined framework and guidelines for a variety of activities, including:
Threat modeling is both flexible and software agnostic. You can apply threat modeling to software and applications, systems, networks, distributed systems, IoT devices, and business processes.
Threat modeling can take many forms, which we’ll dive into later. Typical threat modeling efforts also produce a prioritized list of security improvements to the concept, requirements, design, or implementation of a given application.
Threat modeling is not the same as attack surface analysis. OWASP defines the “recursive relationship” as such:
“Changes to the Attack Surface should trigger threat modeling, and threat modeling helps you to understand the Attack Surface of the application.”
(Read our attack surface management explainer.)
Threat modeling brings a few key benefits to your juggling act, ultimately meeting the goals of effectively managing security risks. Benefits include:
Threat modeling in traditional data centers is one thing. The traditional data center environment allows you to model the system behavior exactly, especially with regards to cybersecurity.
Your IT teams know exactly the network infrastructure design and configurations, software architecture, configurations and update cycles of the hardware endpoints, as well as network health and traffic parameters.
With this information, teams can understand how their IT systems behave — and also proactively predict risk in response to external network intrusion attempts and cyberattack incidents.
But modeling threats in cloud environments is a lot more complicated. In fact, threat modeling in today’s cloud age is taking a different approach entirely.
Modern cloud networks consist of large, distributed endpoints, known as distributed systems.
From a service model perspective — where the vendor is responsible for managing the infrastructure — organizations struggle to identify real-time security threats, especially around information that is stored and transmitted between third-party cloud services.
That’s because their view into the data is limited: cloud vendors may not share details on the design and architecture of network systems. Still, users can access a variety of metrics and parameters that describe network health and traffic flows. (This limitation is important in the context of decomposing the systems to identify trusted boundaries, actors and agents within your IT systems.)
Using advanced AI technologies, this information is used to train AI models that learn patterns in these metrics and log data that correspond to an acceptable security performance of their network. A trained model replicates the optimal behavior of a system and is able to read metrics and network log data in real-time to identify anomalies and deviations.
(Master the basics: how vulnerabilities lead to threats, then to risk.)
You should use threat modeling when you’re designing anything new. In a waterfall approach, you can make it an additional step after you flesh out functional requirements.
In an agile environment, you can threat model for a new system or new features, iterating over your models and data flow diagrams every few sprints.
The de factor threat modeling approach is focused on software. Software threat models use design and diagramming to visualize threats and attack services. Others include:
Now, let's look at what you need to develop an effective threat modeling system for your cloud-based technology systems, especially for public clouds where you don’t have access to hardware resources that run your IT infrastructure platform and apps.
It is important to develop a threat model that incorporates all the dependencies within your IT systems.
To start, identify your assets and application components. Asset discovery may be an ongoing effort, especially in microservices-based platforms where containers and the application components running on those systems remain in an ephemeral state. Though ephemeral, the vulnerabilities and threats facing these systems can have a lasting impact on the risk profile of your IT systems.
Secondly, consider the architectural design plans adopted in your IT environments. Many design choices may emerge as a tradeoff to business metrics. For instance, business units may choose to prioritize uptime and performance to security checks and instruments that compromise user experience.
(Read about data architecture.)
The goal of a threat model is to determine security risks and vulnerabilities by analyzing real-time information. The challenge here is not the scope of data — while vendors may share information on a limited set of parameters, the volume of data assets is large and complex.
To continuously train your AI models on new data assets, via continuous learning, you may require a large-scale data lake platform. Then, build a data pipeline around the data lake to:
The result is an efficient data pipeline that can inject large volumes of information at scale, across all formats of network logs and business metrics. Then, you can integrate external tools to process and analyze this information in real-time, which supports two essential threat modeling activities:
There are many threat modeling methodologies, but before picking one or more for your team, it can be worth starting at a simpler point. Adam Shostack in his book Threat Modeling: Designing for Security explain that threat modeling can be as straightforward as asking four key questions:
First, we must understand what we’re building: be it a new software, an IoT ecosystem or a feature. It’s useful to create a data flow diagram of it as well. Then we can annotate the trust boundaries of the system.
Generate possible threats on each element or connection in your data flow diagram. You can also leverage methodologies like Security Cards, STRIDE., or Cyber Kill Chains in this step. (More on those later.)
Given your system’s current state and potential threats, start tracking and prioritizing vulnerabilities. This may come in the form of malicious User Stories or test cases in your requirements. Create measures to manage these vulnerabilities:
Make sure that steps 1 to 3 of “What We Do About It” are specific and actionable enough that future revisions are for new threats discovered. Think about it like a retrospective in Agile. One approach is to work backward, asking a question like:
“What will we see when this vulnerability is eliminated?”
Then, you want to implement actions that deliver that result. Our data flow diagrams are living documents, and we can update and version them periodically.
Ready to go beyond these four questions? You can apply specific methodologies to create high-quality threat models. Let’s take a look.
In 2020, a group of threat modeling practitioners, researchers and authors wrote the Threat Modeling Manifesto in order to “…share a distilled version of our collective threat modeling knowledge in a way that should inform, educate, and inspire other practitioners to adopt threat modeling as well as improve security and privacy during development”.
When to use this model: Reading this is a good entry-point. The Manifesto contains core threat modeling values and principles, and it identifies patterns and anti-patterns to facilitate it.
Praerit Garg and Loren Kohnfelder at Microsoft developed STRIDE, a mnemonic about general categories of threats to a system that can answer “What can go wrong?”:
Variations include STRIDE-per-Element, where you check the categories on each element, and STRIDE-per-Interaction, where you check the categories on each potential interaction between elements.
When to use this model: STRIDE is a great middle-of-the-road thoroughness to check specific attack surfaces in your model. It allows just a little bit of structure to ensure we have thought through a surface.
DREAD is used to quantify the risk resulting from a threat. Each letter of the mnemonic stands for the factors considered in the computation of risk.
DREAD RISK = (Damage + Reproducibility + Exploitability + Affected Users + Discoverability) / 5
When to use this model: DREAD can be great when it comes to prioritizing threats. It’s a smart choice for when you have a variety of threats without an immediately clear idea of risk.
Short for Process for Attack Simulation and Threat Analysis, PASTA is a risk-centric approach to threat modeling. PASTA consists of the following steps:
When to use this model: PASTA is a comprehensive modeling methodology that’s great when you have potential high-risk or high-impact areas that you’re unsure about. IT can help give a holistic view of your security and puts security as a centerpiece of your design.
The Cyber Kill Chain is a military technique adapted for cybersecurity by Lockheed Martin. It first describes the “chain” of an attack: reconnaissance, weaponization, delivery, exploitation, installation, command and control, and actions on objective. It also describes what sort of steps can occur at each phase of the chain:
When to use this model: Kill chains can be a great way to answer the questions “What could go wrong? What do we do about it?” Once you identify a specific threat, attack surface, or trust boundary, you can model the kill chain and your defenses.
(Learn more about cyber kill chains.)
The MITRE ATT&CK Framework is a depository of known threats and historical attacks — that we can apply to our current systems. Here at Splunk, for example, we leverage these known attacks to automatically map them to your system to find gaps.
Here’s what that can look like:
When to use this model: There is nothing like real-word experience to produce defenses. In these cases, we can learn from the past to prevent issues in the future.
(Learn how to get the most value from ATT&CK reporting.)
Finally, let’s look at threat modeling through the lens of AI. Like anything today, we’re wondering what happens when we apply AI — hence the louder and louder calls for AI governance.
Developing AI models for risks profiles is tempting, of course. Beware, though, that this approach does require a set of strategic business decisions that are both subjective and can change invariably. For example:
With all the ways you can model threats today, the only real question to ask now is: “When are we getting started?”
See an error or have a suggestion? Please let us know by emailing ssg-blogs@splunk.com.
This posting does not necessarily represent Splunk's position, strategies or opinion.
The Splunk platform removes the barriers between data and action, empowering observability, IT and security teams to ensure their organizations are secure, resilient and innovative.
Founded in 2003, Splunk is a global company — with over 7,500 employees, Splunkers have received over 1,020 patents to date and availability in 21 regions around the world — and offers an open, extensible data platform that supports shared data across any environment so that all teams in an organization can get end-to-end visibility, with context, for every interaction and business process. Build a strong data foundation with Splunk.