Skip to content

Commit d8aafa8

Browse files
authored
Merge pull request #50592 from lootle1/MR107
Technical Review 1055039: Use recommended tools to create a data-flow…
2 parents fd04b40 + 1392e6c commit d8aafa8

File tree

10 files changed

+64
-94
lines changed

10 files changed

+64
-94
lines changed

learn-pr/azure/tm-use-recommended-tools-to-create-a-data-flow-diagram/1-introduction.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Introduction
44
metadata:
55
title: Introduction
66
description: Learn about the different tools you can use to create your data-flow diagrams
7-
ms.date: 05/31/2023
7+
ms.date: 05/22/2025
88
author: rodsan
99
ms.author: rodsan
1010
ms.topic: unit

learn-pr/azure/tm-use-recommended-tools-to-create-a-data-flow-diagram/1b-recommended-tools.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Recommended tools
44
metadata:
55
title: Recommended Tools
66
description: Learn about the three recommended tools you can use to create your data-flow diagrams
7-
ms.date: 05/31/2023
7+
ms.date: 05/22/2025
88
author: rodsan
99
ms.author: rodsan
1010
ms.topic: unit

learn-pr/azure/tm-use-recommended-tools-to-create-a-data-flow-diagram/2-threat-modeling-tool.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Threat modeling tool
44
metadata:
55
title: Threat Modeling Tool
66
description: Learn about the Threat Modeling Tool
7-
ms.date: 05/31/2023
7+
ms.date: 05/22/2025
88
author: rodsan
99
ms.author: rodsan
1010
ms.topic: unit
@@ -19,7 +19,7 @@ quiz:
1919
- content: "Generated threats are based on the entire diagram, not just each element or each individual interaction."
2020
isCorrect: true
2121
explanation: "The tool only looks at individual elements and single interactions"
22-
- content: "Threats, stencils and stencil properties can be changed."
22+
- content: "Threats, stencils, and stencil properties can be changed."
2323
isCorrect: false
2424
explanation: "The fields can be changed"
2525
- content: "Ways to reduce or eliminate risk are included with each generated threat."

learn-pr/azure/tm-use-recommended-tools-to-create-a-data-flow-diagram/3-visio.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Visio
44
metadata:
55
title: Visio
66
description: Learn about Visio
7-
ms.date: 05/31/2023
7+
ms.date: 05/22/2025
88
author: rodsan
99
ms.author: rodsan
1010
ms.topic: unit

learn-pr/azure/tm-use-recommended-tools-to-create-a-data-flow-diagram/5-summary.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Summary
44
metadata:
55
title: Summary
66
description: Review what you've learned about the recommended tools to help you create data-flow diagrams
7-
ms.date: 05/31/2023
7+
ms.date: 05/22/2025
88
author: rodsan
99
ms.author: rodsan
1010
ms.topic: unit

learn-pr/azure/tm-use-recommended-tools-to-create-a-data-flow-diagram/includes/1-introduction.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
1-
A data-flow diagram is a graphical representation of how your system works. It includes all data stores, processes, external entities, trust boundaries, and data-flows.
1+
A data-flow diagram is a graphical representation of how your system works. It includes all data stores, processes, external entities, trust boundaries, and data-flows. Using these diagrams helps all users in your organization collaborate to enhance your threat modeling work.
22

3-
## How to create a data-flow diagram
3+
## Creating a data-flow diagram
44

55
You can use any canvas, physical or virtual, to create a data-flow diagram. However, you do need a working knowledge of threat modeling to analyze it properly.
66

7-
Some applications provide you with the tools create a data-flow diagram with a threat-generation engine and risk-reduction strategies. Other tools only provide you with the ability to create a data-flow diagram.
7+
Some applications provide you with the tools to create a data-flow diagram alongside a threat-generation engine and risk-reduction strategies. Other tools only provide you with the ability to create a data-flow diagram.
88

9-
## Goals
10-
11-
The goal of this learning path is to teach you the fundamentals of threat modeling for you to threat model anywhere, on any canvas.
12-
13-
To help you get there, we recommend a few tools along the way.
9+
The goal of this learning path is to teach you the fundamentals of threat modeling allowing you to threat model on any canvas. We also recommend a couple tools along the way to assist.
1410

1511
## Learning objectives
1612

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
Threat modeling takes your data-flow diagram and applies a framework to help find threats and ways to reduce or eliminate risk.
1+
Threat modeling takes your data-flow diagram and applies a framework to help find threats and ways to reduce or eliminate risk. It helps meet security goals early in the development lifecycle and secures your systems, applications, networks, and services.
22

3-
Some tools help you create a data-flow diagram, while others also help with the threat-generation exercise. Depending on your level of expertise with threat modeling, some of these tools can be helpful.
3+
Some tools help you create a data-flow diagram, while others also help with the threat-generation exercise. Your level of expertise with threat modeling may dictate which tool fits best. We'll look at two tools in the next couple units.
44

5-
## Learn more about threat modeling tools
5+
## Microsoft Threat Modeling Tool
66

7-
Over the next few units, we take a look at how:
7+
The Microsoft Threat Modeling Tool enables you to create data-flow diagrams. It allows anyone to communicate about the security design of their systems, analyze those designs for potential security issues, and suggest and manage mitigations for security issues.
88

9-
- The Microsoft Threat Modeling Tool enables you to create data-flow diagrams and analyze them for potential threats and risk-reduction strategies.
10-
- Visio gives you a clean canvas to help you create data-flow diagrams.
9+
We look at the different sections, stencils, and elements to see how the different properties work together. Then we analyze risk-reduction strategies to specify how threat generation works.
10+
11+
## Visio
12+
13+
Our other recommended tool is Visio. It gives you a clean canvas to create data-flow diagrams. With the Visio desktop and web applications, you can view, edit, and share Visio diagrams as well. You can also save them in Sharepoint or OneDrive to share with others.
14+
15+
We talk about some of the basic functionality of Visio as well as pros and cons associated with the tool.
Lines changed: 30 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,39 @@
1-
## Quick overview
1+
The Microsoft Threat Modeling Tool, recognized by the threat-modeling community, helps engineers create data-flow diagrams. It offers customizable templates and a threat-generation engine with threats and risk-reduction strategies.
22

3-
The Microsoft Threat Modeling Tool, recognized by the threat-modeling community, helps engineers create data-flow diagrams and apply STRIDE for their threat-modeling work.
3+
The default template is called *SDL TM Knowledge Base* and gives you a basic set of elements and threat-generation capabilities. All you need is a basic understanding of data-flow diagrams and STRIDE.
44

5-
The Threat Modeling Tool offers:
5+
### STRIDE
66

7-
- Customizable templates
8-
- Threat-generation engine with threats and risk-reduction strategies
7+
STRIDE is a model that categorizes security threats to help identify them. The Microsoft Threat Modeling Tool helps apply STRIDE for threat-modeling work. STRIDE is the acronym for the six major threat categories:
98

10-
The default template is called "SDL TM Knowledge Base" and gives you a basic set of elements and threat-generation capabilities. All you need is a basic understanding of data-flow diagrams and STRIDE.
9+
- **Spoofing**: Pretending to be someone or something else.
10+
- **Tampering**: Changing data without authorization.
11+
- **Repudiation**: Not claiming responsibility for an action taken.
12+
- **Information disclosure**: Seeing data without permission.
13+
- **Denial of service**: Overwhelming the system.
14+
- **Elevation of privilege**: Having permissions I shouldn't have.
1115

12-
### STRIDE recap
13-
14-
STRIDE is the acronym for the six major threat categories:
15-
16-
- **Spoofing**: pretending to be someone or something else
17-
- **Tampering**: changing data without authorization
18-
- **Repudiation**: not claiming responsibility for an action taken
19-
- **Information disclosure**: seeing data without permission
20-
- **Denial of service**: overwhelming the system
21-
- **Elevation of privilege**: having permissions I shouldn't have
22-
23-
## Advanced user section
24-
25-
For more advanced users, you can customize the template across three main sections.
16+
With this in mind, you can customize your template across the areas we'll discuss next in stencils, threat properties, and risk reduction strategies.
2617

2718
### Stencils
2819

29-
Process, external interactor, data store, data-flow, and trust boundaries make up the parent elements.
20+
Stencils are made up of parent stencils that include process, external interactor, data store, data-flow, and trust boundaries. They can be drag-and-dropped onto your canvas to build your data-flow diagram.
3021

3122
:::image type="content" source="../media/parentstencils.jpg" alt-text="Screenshot of Parent Stencils." loc-scope="other":::
3223

33-
You can also create child elements to help provide granularity for more context, actionable threat generation, and risk-reduction strategies.
24+
You can also create child stencils to help provide granularity for more context, actionable threat generation, and risk-reduction strategies.
3425

3526
:::image type="content" source="../media/expandedflowstencils.jpg" alt-text="Screenshot of Expanded Flow Stencils." loc-scope="other":::
3627

3728
#### Example of how child elements work
3829

39-
The **data-flow** parent element gives you the option to choose between the **HTTP** and **HTTPS** child elements.
40-
41-
HTTP should generate more threats because tampering, information disclosure, and spoofing threats are common with unencrypted channels.
42-
43-
##### Using HTTP
30+
The **data-flow** parent element gives you the option to choose between the **HTTP** and **HTTPS** child elements. HTTP should generate more threats because tampering, information disclosure, and spoofing threats are common with unencrypted channels. Following are images of using HTTP vs. HTTPS.
4431

4532
:::image type="content" source="../media/HTTP.JPG" alt-text="Screenshot illustrating the HTTP child element." loc-scope="other":::
4633

47-
##### Using HTTPS
48-
4934
:::image type="content" source="../media/HTTPS.JPG" alt-text="Screenshot illustrating the HTTPS child element." loc-scope="other":::
5035

51-
#### How to add element properties
36+
#### Add element properties
5237

5338
If you have other properties that must be included in the default template, you can add them to each element in the administrator view.
5439

@@ -60,69 +45,47 @@ You can see the changes whenever you drag and drop that element onto the canvas.
6045

6146
### Threat properties
6247

63-
Properties allow you to create fields that are filled out for each generated threat, just like stencil properties allow you to create fields for each element.
64-
65-
Remember: the goal is to have as much context as possible in the simplest manner.
66-
67-
#### Example of threat properties
48+
These properties allow you to create fields that are filled out for each generated threat, just like stencil properties allow you to create fields for each element. Remember, the goal is to have as much context as possible in the simplest manner.
6849

69-
##### Administrator view
50+
### Administrator and User Views
7051

71-
Add fields that give you more context and actionable steps. Examples include:
52+
Administrators can add fields that give you more context and actionable steps. Examples include:
7253

73-
- **Issue priority**: understand which issues need to be worked on first.
74-
- **Hyperlinks**: link issues to online documentation.
75-
- **External risk mapping**: speak the same risk language of other organizations by using reliable third-party sources, such as OWASP Top 10 and CWE Details.
54+
- **Issue priority**: Understand which issues need to be worked on first.
55+
- **Hyperlinks**: Link issues to online documentation.
56+
- **External risk mapping**: Speak the same risk language of other organizations by using reliable third-party sources, such as OWASP (Open Worldwide Application Security Project) Top 10 and CWE (Common Weakness Enumeration) Details.
7657

7758
:::image type="content" source="../media/ThreatAdminView.JPG" alt-text="Screenshot of the Threat Properties Admin View." loc-scope="other":::
7859

79-
##### User view
80-
81-
Threat Modeling Tool users see these changes whenever they analyze their data-flow diagrams.
60+
Then in the User view, the Threat Modeling Tool users see changes whenever they analyze their data-flow diagrams.
8261

8362
:::image type="content" source="../media/ThreatUserView.JPG" alt-text="Screenshot of the Threat Properties User View." loc-scope="other":::
8463

8564
### Threats and risk reduction strategies
8665

8766
This section is the heart of the threat modeling tool. The threat-generation engine looks at individual and connected elements to decide which threats to generate.
8867

89-
#### How threat generation works
90-
91-
##### Step 1 - Specify sources and targets
92-
93-
The threat-generation engine uses simple sentences to generate a threat. Examples include:
94-
95-
- target is [element name]
96-
- source is [element name]
68+
**Step 1 specifies sources and targets**. The threat-generation engine uses simple sentences to generate a threat. Examples include *target is [element name]* and *source is [element name]*. You can also use the element name on titles and descriptions. The format is *{target.Name}* or *{source.Name}*.
9769

98-
You can also use the element name on titles and descriptions. The format is: '{target.Name}' or '{source.Name}'.
99-
100-
##### Step 2 - Combine sources and targets
101-
102-
You can be precise with the way a threat is generated. Combine targets, sources, and their individual properties with AND OR operators. Examples include:
70+
**Step 2 combines sources and targets**. You can be precise with the way a threat is generated. Combine targets, sources, and their individual properties with AND/OR operators. Examples include:
10371

10472
- target.[property name] is 'Yes' **AND** source.[property name] is 'No'
10573
- flow crosses [trust boundary name]
10674

107-
##### Step 3 - Generate or ignore threats
108-
109-
The threat-generation engine uses two fields to generate or ignore a threat:
75+
**Step 3 generates or ignores threats**. The threat-generation engine uses two fields to generate or ignore a threat:
11076

11177
- **Include**: A threat is generated if sentences added in this field are true.
11278
- **Exclude**: A threat isn't generated if sentences added in this field are true.
11379

11480
Here's an actual example from the default template to bring these steps together:
11581

116-
- **Threat:** Cross Site Scripting
117-
- **Include:** (target is [Web Server]) **OR** (target is [Web Application])
118-
- **Exclude:** (target.[Sanitizes Output] is 'Yes') **AND** (target.[Sanitizes Input] is 'Yes')
119-
120-
The Cross Site Scripting threat in this example is **only** generated when:
82+
- **Threat**: Cross Site Scripting
83+
- **Include**: (target is [Web Server]) **OR** (target is [Web Application])
84+
- **Exclude**: (target.[Sanitizes Output] is 'Yes') **AND** (target.[Sanitizes Input] is 'Yes')
12185

122-
- The process is either a Web Server or a Web Application
123-
- Input and output aren't sanitized
86+
The Cross Site Scripting threat in this example is only generated when the process is either a Web Server or a Web Application and Input and output aren't sanitized.
12487

12588
:::image type="content" source="../media/IncludeExclude.JPG" alt-text="Screenshot of Include/Exclude view." loc-scope="other":::
12689

12790
> [!NOTE]
128-
> Microsoft Threat Modeling Tool template creation is a complex topic and will not be fully discussed in this learning path.
91+
> Microsoft Threat Modeling Tool template creation is a complex topic and won't be fully discussed in this learning path.
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
1-
Microsoft Visio is recognized for its robust set of features to help anyone create quality flowcharts and data-flow diagrams.
1+
Microsoft Visio is recognized for its robust set of features to help anyone create quality flowcharts and data-flow diagrams. Visio tools help you visualize how an application or systems is organized towards threat modeling.
2+
3+
You can use Visio to create flowcharts, basic network diagrams, Venn diagrams, block diagrams, and business matrices. All while being able to start quickly and in a collaborative manner. Let's look at some other pros to using Visio and review any cons.
24

35
## Pros
46

57
Visio provides drag-and-drop functionality and the ability to annotate diagrams. Both are helpful when creating a diagram for your system.
68

9+
In addition, the tool is accessible for a wide variety of users. The intuitive interface and ease of use takes minimal time to learn and set up. It shares a familiar experience to other Microsoft 365 apps.
10+
11+
It also includes templates for diagrams and flowcharts to help you start quickly. This alongside real-time collaboration, commenting, and sharing with the Visio web app or Visio app in Microsoft Teams makes it a valuable tool across your organization towards your threat modeling goals.
12+
713
## Cons
814

915
The application doesn't offer automated threat-modeling capabilities. As a result, there's no threat-generation engine to help engineers brainstorm threats and risk-reduction strategies.
1016

11-
> [!NOTE]
12-
> If you use Visio, you'll be responsible for threat modeling each element and interaction manually.
17+
Also, when you use Visio you'll be responsible for threat modeling each element and interaction manually.

learn-pr/azure/tm-use-recommended-tools-to-create-a-data-flow-diagram/index.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
### YamlMime:Module
22
uid: learn.tm-use-recommended-tools-to-create-a-data-flow-diagram
33
metadata:
4-
title: Use recommended tools to create a data-flow diagram
4+
title: Use Recommended Tools to Create a Data-Flow Diagram
55
description: You can use any canvas, physical or virtual, to create a data-flow diagram. Engineers at Microsoft recommend three tools to help you in your threat modeling journey.
6-
ms.date: 05/31/2023
6+
ms.date: 05/22/2025
77
author: rodsan
88
ms.author: rodsan
99
ms.topic: module
10+
ms.service: azure-data-factory
1011
title: Use recommended tools to create a data-flow diagram
1112
summary: You can use any canvas, physical or virtual, to create a data-flow diagram. Engineers at Microsoft recommend a few tools to help you in your threat modeling journey.
1213
abstract: |
1314
In this module, you'll:
14-
- Learn about the Threat Modeling Tool
15-
- Learn more about Visio
15+
- Learn about the Threat Modeling Tool.
16+
- Learn more about Visio.
1617
prerequisites: None
1718
iconUrl: /training/achievements/use-recommended-tools-to-create-a-data-flow-diagram.svg
1819
levels:

0 commit comments

Comments
 (0)