Flows or Data Flows are another essential part of the Threat Model diagram. They represent how information moves between the various Entities.

Flows must be drawn from the Entity that originates the request to the destination Entity. As such, legitimate sources are External Interactors and Processes, while any Entity can act as a target for a Flow.

Some combinations are not allowed, though. The following table shows what is legitimate:

Allowed Source-Target combinations.

Tips & Tricks
To draw a flow, move your mouse on the middle of the the source Entity. When the mouse pointer becomes a hand, it is possible to draw the flow by dragging and dropping the line into the target Entity.
If the mouse pointer is the usual arrow, you’ll move the Entity.

Drawing the Flow.

Flows are characterized by a Flow Type, which can assume the following values:

  • Read-Write/Command, to identify flows where the source reads data from the target, and also writes data or sends commands to the target.
  • Read Only, to identify flows where the source reads data from the target.
  • Write/Command, to identify flows where the source writes data or sends commands to the target.
Flow and the Flow Type.

The Flow Type for each flow is shown in the diagram with small letters: “R” near the source and “W/C” near the target respectively show that the flow involves Read and Write/Command. Therefore, Read-Only flows have only the little “R” near the source and the Write/Command flows have only the little “W/C” near the target. Push Flows can be considered as a special case of Write/Command flows: in fact, they are characterized by the target receiving the data, to write it into some storage or to process it.

The Home ribbon contains the Flow List, which shows all the flows defined in the Threat Model.

The Home ribbon.