Skip to content

Instantly share code, notes, and snippets.

@mattreduce
Last active September 22, 2023 02:39
Show Gist options
  • Save mattreduce/399cf8a08e38b531c3f13eb9216fed1b to your computer and use it in GitHub Desktop.
Save mattreduce/399cf8a08e38b531c3f13eb9216fed1b to your computer and use it in GitHub Desktop.
Figure 6, illustrating Activity Thread examples, from https://www.threatintel.academy/wp-content/uploads/2020/07/diamond-model.pdf
digraph G {
compound=true;
splines=false;
node [shape=diamond, regular=true, fixedsize=true];
edge [color=red];
subgraph cluster_0 {
label = "Thread 1\nAdversary 1";
{rank=same; 1 -> 2 [label=A]};
2 -> 3 [label=B, headport=n, tailport=s];
3 -> 4 [label=C, headport=n, tailport=s];
4 -> 5 [label=D, headport=n, tailport=s];
4 -> 6 [label=E, constraint=false, headport=n, tailport=s];
5 -> 7 [label=F, headport=n];
6 -> 7 [taillabel=G, headport=e];
9 [style=dashed];
{rank=same; 7 -> 9 [label=I, style=dashed]};
}
subgraph cluster_1 {
label = "Thread 2\nAdversary 1";
8 -> 10 [label=J];
}
subgraph cluster_2 {
label = "Thread 3\nAdversary ?";
11 -> 12 [label=M];
12 -> 13 [label=N];
13 -> 14 [label=O];
}
7 -> 8 [headlabel=H, constraint=false, headport=w, tailport=e];
7 -> 10 [headlabel=L, constraint=false, headport=w, tailport=e];
9 -> 10 [xlabel=K, style=dashed, constraint=false, headport=w];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment