Threat Modeling – The Modeling Process
This is the second post regarding Threat Modeling. On the previous post I talked about information gathering before starting with the process of threat modeling per se.
On this second post I’ll explain that process in a theoretical way, and, on a future post, show how this can be applied using Microsoft SDL Threat Modeling Tool.
Threat Modeling Process
The threat modeling process has four main steps and it’s intended to help identifying those areas of higher risk within the application, and will also be useful for creating test cases on a future security test plan.
-
Identify threat paths
-
Identify threats
-
Identify vulnerabilities
-
Rank/prioritize the vulnerabilities
Identify threat paths
The first step is mainly summarized in my previous post, Threat Modeling - Information Gathering, the main objective is to identify overall threat paths (data flows and components) and gather knowledge that will allow us to define the threat level that each component or data flow has.
Identify threats
For each threat path, we should dig deeper on the processing done, and identify the threats of each individual process.
|
TIP: Useful questions we should address:
|
Identify vulnerabilities
The next step is to identify the actual vulnerabilities for each component.
For this I use the “STRIDE” chart but any categorization should work if you adjust it to your solution/company needs.

|
TIP: A way of identifying these vulnerabilities is by testing itself (trying to break the system). |
Rank/prioritize the vulnerabilities
Nothing that will require too much explanation here, the DREAD model is proven to be highly effective for this:
-
Damage Potential: How much damage could this cause?
-
Reproducibility: How easy can it be reproduced?
-
Exploitability: How much effort is required?
-
Affected users: How many/which users could be affected?
-
Discoverability: How easy is to discover the threat?
Then add up the results and the higher DREAD scores should come first when fixing vulnerabilities.
Hope you find this information useful; feedback and comments are always welcomed
!