Risk management
Pages
Page 14 of 15
Threat Modelling

Introduction
Threat modelling is a term applied to the techniques that are used to model and analyse technology systems and services to better understand how that system or service might be attacked or otherwise fail, and the measures or controls needed to manage the risk posed by such attacks or failings. Threat modelling techniques are best applied to inform the design and development phases of a technology system or service life cycle
When should threat modelling be used ?
We recommend that threat modelling be used to inform the development and design of any technology system or service, and that it be incorporated, as business as usual, into your risk management process, development, or continuous integration and deployment (CI/CD) processes, because it helps developers, designers, and security analysts to:
- consider the system or service context, and understand what it does, how it does it and why
- apply an adversarial perspective to the system or service they are building
- understand and justify the security need and the measures needed to protect a system or service
- effectively articulate cyber security risks
Since threat modelling is intended to inform the design and build of a technology system or service, it is best deployed at the design and development phases of a technology system or service delivery life cycle. However that is not to say that threat modelling cannot be used at any time to help better understand how a system or service might be attacked or otherwise go wrong.
What does good threat modelling look like ?
Understand who might be motivated to harm you
The first step in any threat modelling or assessment process is to understand who might pose a threat to you, your organisation, the system or service you are building and/or the information it stores and processes. For example some organisations may be attractive targets for cyber criminals because of what they do, some may be targeted by disgruntled employees (insiders), whereas others may be attractive targets for hostile state actors because they contribute to the defence and government of the UK.
Whilst natural and environmental threats (or hazards) such as earthquakes, fires and floods should be considered as part of an overall assessment of risk, threat modelling typically deals with human threat sources, and threat actors who for one reason or another seek to harm you, your organisation, or the system/service you are building.
When thinking about who might pose a threat to your system or service you should consider their intent, their motivations, and the capabilities they might have available to bring to bear. You should seek to use the best cyber threat intelligence (CTI) information available to you. For example some government or defence organisations may be able to source bespoke or more specific threat assessments from authoritative sources. Other useful sources of threat information can include press coverage of security and technology breaches, vendor provided information and partnerships.
When communicating cyber threat information to others (for example to describe who a threat source or who a threat actor might be) then it can be useful to make use of existing cyber threat information vocabularies or taxonomies to help with consistency and shared understanding. One such vocabulary is the Structured Threat Information Expression (STIX) OASIS Standards.
Model and analyse the technology system or service we are building
Whilst there are many different techniques and approaches used to model the threats associated with technology systems and services, the Threat Modelling Manifesto asks four high level questions that can be used as a handrail here.
This stage first stage of modelling and analysis is about developing a model of the technology system or service we are building, to a sufficient level of detail, that allows us to apply some security analysis effectively. Models can be in the form of data flow diagrams (DFDs), use case models or architecture diagrams, and whilst there are software tools that can be used to help you model and analyse your system or service semi-automatically, you can always use your preferred drawing tool.
When modelling your system or service it is important to remember that your model will never be perfect, but it must be good enough to enable some effective analysis to be carried out. To this end, the model of your new system or service should, as a minimum, include all components (including users) of the system or service, all data flows, or interactions between those components any interconnectivity to other systems and services, and any trust boundaries across which data and information flows. Trust boundaries are those areas of the system or service where we (as owners of the system or service) can exert some sort of security control over the data or information that flows across by using - for example - security policies and security controls.
In this second stage we focus on a particular part of the system for analysis. For example we might choose to analyse the interaction between a client and server. The aim here is to consider how that part of the system might be attacked or otherwise go wrong. It can be tempting here to simply come up with a list of all the ways you think the system or service might be attacked. This approach can be problematic as there is a real risk of you missing something significant. To avoid this we would recommend that you use a structured approach to analysing the security of the system. For example Microsoft’s threat modelling approach uses the mnemonic STRIDE to systematically consider the types of attack that could be relevant to the focus of your analysis. The STRIDE mnemonic considers the following types of threat/attack:
- spoofing
- tampering
- repudiation
- information disclosure
- denial of service
- elevation of privilege
Other structured approaches to describing attacks could be used here to analyse the system or service you are building. For example the 14 attacker technique groupings from the MITRE ATT&CK framework or the Cyber Kill Chain as described by Lockheed Martin. The MITRE ATT&CK framework can also prove very useful in helping to understand how attacks against certain technology types and platforms are carried out by threat actors in the real world.
An alternative approach to understanding what could go wrong with the system or service you are building is to build an attack tree. Building attack trees is a well-known way of analysing the steps and attacker might take to achieve their aims. We provide further information on building and analysing attack trees in this guidance.
This stage is about taking the analysis carried out in the previous stage and proposing security measures or controls that can help manage the threats, attacks and risks that have been identified. Again the MITRE ATT&CK can prove useful here as it suggests mitigations to identified attack techniques. This phase will also need expert input to ensure that the controls proposed are effective and properly prioritised.
The cyber security control and mitigation recommendation outputs from a threat modelling exercise can be used to inform a secure by design activity, a secure design and development process or a CI/CD process.
When threat modelling is carried out as part of an overall risk assessment and analysis exercise, then the outputs can be used to inform identified risks and the prioritisation of controls and mitigations recommended by threat model outputs. It is important that the cyber security control and mitigation output recommendations from any threat modelling exercise are considered in the context of an organisation's approach to risk management, and their risk appetite and therefore included in risk management artefacts such as risk treatment and assurance plans. For more information, refer to the section on gaining and maintaining assurance in cyber security controls.
This final stage of the 4-stage process is simply about continually improving out threat modelling processes, by looking back at what we have done and thinking about whether we have modelled the whole system or service, and asking questions like:
Did we miss anything?
Are there areas we would improve and do differently next time?
Threat modelling is a team sport
When done well threat modelling considers not only the technical and security perspective of a system or service, but brings in the perspective of other people who understand what a system or service is meant to do (and how it works in the real world). We therefore recommend that threat modelling is carried out in a workshop type environment with a variety of people supporting it to provide the best possible perspective on the system or service you are building.
Further information
Further useful information on threat modelling can be seen at the following:
- The Threat Modeling Manifesto
- Bruce Schneier on Attack Trees
- MITRE ATT&CK and CAPE Common Attack Pattern Enumeration and Classification (CAPEC™)
- OASIS Open STIX v2.1: STIX Version 2.1


