You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: learn-pr/azure/tm-use-recommended-tools-to-create-a-data-flow-diagram/includes/1-introduction.md
+4-8Lines changed: 4 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff 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.
2
2
3
-
## How to create a data-flow diagram
3
+
## Creating a data-flow diagram
4
4
5
5
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.
6
6
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.
8
8
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.
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.
2
2
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.
4
4
5
-
## Learn more about threat modeling tools
5
+
## Microsoft Threat Modeling Tool
6
6
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.
8
8
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.
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.
2
2
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.
4
4
5
-
The Threat Modeling Tool offers:
5
+
### STRIDE
6
6
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:
9
8
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.
11
15
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.
26
17
27
18
### Stencils
28
19
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.
30
21
31
22
:::image type="content" source="../media/parentstencils.jpg" alt-text="Screenshot of Parent Stencils." loc-scope="other":::
32
23
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.
34
25
35
26
:::image type="content" source="../media/expandedflowstencils.jpg" alt-text="Screenshot of Expanded Flow Stencils." loc-scope="other":::
36
27
37
28
#### Example of how child elements work
38
29
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.
44
31
45
32
:::image type="content" source="../media/HTTP.JPG" alt-text="Screenshot illustrating the HTTP child element." loc-scope="other":::
46
33
47
-
##### Using HTTPS
48
-
49
34
:::image type="content" source="../media/HTTPS.JPG" alt-text="Screenshot illustrating the HTTPS child element." loc-scope="other":::
50
35
51
-
#### How to add element properties
36
+
#### Add element properties
52
37
53
38
If you have other properties that must be included in the default template, you can add them to each element in the administrator view.
54
39
@@ -60,69 +45,47 @@ You can see the changes whenever you drag and drop that element onto the canvas.
60
45
61
46
### Threat properties
62
47
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.
68
49
69
-
#####Administrator view
50
+
### Administrator and User Views
70
51
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:
72
53
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.
76
57
77
58
:::image type="content" source="../media/ThreatAdminView.JPG" alt-text="Screenshot of the Threat Properties Admin View." loc-scope="other":::
78
59
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.
82
61
83
62
:::image type="content" source="../media/ThreatUserView.JPG" alt-text="Screenshot of the Threat Properties User View." loc-scope="other":::
84
63
85
64
### Threats and risk reduction strategies
86
65
87
66
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.
88
67
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}*.
97
69
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:
103
71
104
72
- target.[property name] is 'Yes' **AND** source.[property name] is 'No'
105
73
- flow crosses [trust boundary name]
106
74
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:
110
76
111
77
-**Include**: A threat is generated if sentences added in this field are true.
112
78
-**Exclude**: A threat isn't generated if sentences added in this field are true.
113
79
114
80
Here's an actual example from the default template to bring these steps together:
115
81
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')
121
85
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.
124
87
125
88
:::image type="content" source="../media/IncludeExclude.JPG" alt-text="Screenshot of Include/Exclude view." loc-scope="other":::
126
89
127
90
> [!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.
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.
2
4
3
5
## Pros
4
6
5
7
Visio provides drag-and-drop functionality and the ability to annotate diagrams. Both are helpful when creating a diagram for your system.
6
8
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
+
7
13
## Cons
8
14
9
15
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.
10
16
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.
title: Use recommended tools to create a data-flow diagram
4
+
title: Use Recommended Tools to Create a Data-Flow Diagram
5
5
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
7
7
author: rodsan
8
8
ms.author: rodsan
9
9
ms.topic: module
10
+
ms.service: azure-data-factory
10
11
title: Use recommended tools to create a data-flow diagram
11
12
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.
0 commit comments