1+ @startuml
2+ skinparam backgroundcolor monochrome
3+ 'skinparam monochrome true
4+ skinparam defaultTextAlignment center
5+ skinparam titleFontSize 22
6+ skinparam handwritten true
7+
8+ !define SPRITESURL https ://raw . githubusercontent . com /rabelenda /cicon - plantuml - sprites /v1 .0 /sprites
9+ !include url SPRITESURL /user . puml
10+
11+ !define ICONURL https ://raw . githubusercontent . com /tupadr3 /plantuml - icon - font - sprites /v2 . 2 .0
12+ !include url ICONURL /common . puml
13+ !include url ICONURL /font - awesome - 5 /cc_stripe . puml
14+
15+ skinparam rectangle {
16+ borderColor Black
17+ backgroundColor #fff
18+ }
19+ skinparam agent {
20+ borderColor Black
21+ backgroundColor #fff
22+ }
23+ skinparam sequence {
24+ arrowColor Black
25+ }
26+ skinparam usecase {
27+ borderColor #fff
28+ backgroundColor #fff
29+ shadowing false
30+ fontSize 18
31+ }
32+
33+ title
34+
35+ Threat Model | Attack Tree | Payment Online
36+
37+ end title
38+
39+ 'legend left
40+ 'text
41+ 'endlegend
42+
43+ left footer
44+ [[https://github.com/TClark000/threat-models/blob/base/Flow%20Diagram/payment/img/payment_online_advanced.html{Report} Flow Diagram Report with Vulnerabilities]]
45+ github.com/tclark000/threat-models/blob/base/Flow Diagram/payment/img/payment_online_advanced.html
46+
47+ end footer
48+
49+ (key entities /actors within \nthe payment process ) as subtitle
50+
51+ rectangle "<$user>\nThreat" as threat #Thistle
52+ rectangle "<$user>\nCustomer" as customer #LightGoldenRodYellow
53+ rectangle "<$user>\nMerchant" as merchant #LightGoldenRodYellow
54+ FA5_CC_STRIPE (stripe ,Stripe ) #LightGoldenRodYellow
55+
56+ 'threat <. subtitle
57+ 'subtitle .> stripe
58+ 'subtitle .> merchant
59+ 'subtitle .> customer
60+ subtitle .> threat
61+ stripe <. subtitle
62+ merchant <. subtitle
63+ customer <. subtitle
64+
65+ ' Root nodes
66+ agent "Intent - Disrupt Merchant Business" as goalDisrupt
67+ agent "Intent - Steal Credit Card Details" as goalSteal
68+
69+ subtitle ... goalDisrupt #fff
70+ subtitle ... goalSteal #fff
71+
72+ ' goalDisrupt
73+ agent "Prevent Purchases \nor Subscriptions" as goalPrevent
74+ agent "Use fraudulent \ncredit card" as goalFraudulentCC
75+ agent "Take advantage of Misconfiguration \n& Vulnerabilities" as goalApp
76+ agent "Target Stripe API" as goalStripeApi
77+ agent "Site Displays \nDifferent Content" as goalSite
78+ agent "Site no Longer Responds" as goalSite2
79+ agent "Steal customers" as goalStealCust
80+ agent "Create Fake Payments \nwith Stolen Cards" as goalFakePayments
81+ agent "Issue Fake Refunds \nand Cancel Orders" as goalRefund
82+
83+ goalDisrupt --> goalFakePayments
84+ goalDisrupt --> goalRefund
85+ goalDisrupt --> goalPrevent
86+ goalDisrupt --> goalFraudulentCC
87+ goalDisrupt --> goalApp
88+ goalDisrupt --> goalStripeApi
89+ goalDisrupt --> goalStealCust
90+ goalDisrupt --> goalSite
91+ goalDisrupt --> goalSite2
92+
93+ note top of goalFraudulentCC #LightGoldenRodYellow : Thwarted by implementing 3D Secure
94+
95+ agent "Target Merchant API" as goalMerchantApi
96+ agent "Create a \nMock website" as goalMock
97+
98+ goalPrevent --> goalMerchantApi
99+ goalStealCust --> goalMock
100+
101+ agent "Denial of Service" as goalDoS
102+
103+ goalMerchantApi --> goalDoS
104+
105+ agent "Tamper with Application \ncausing outage" as goalCrash
106+ agent "Compromise Merchant \nWeb Servers" as goalServers
107+
108+ goalApp --> goalCrash
109+ goalCrash --> goalServers
110+
111+ agent "Command Line Execution \nthrough SQL Injection" as goalCLE
112+ agent "Path Traversal" as goalPathTraversal
113+ agent "Session Hijacking \n- ServerSide" as goalSessionServerSide
114+ agent "Using Malicious Files" as goalMaliciousFiles
115+ agent "XSS Targeting \nNon-Script Elements" as goalXSS
116+
117+ goalServers --> goalCLE
118+ goalServers --> goalPathTraversal
119+ goalServers --> goalSessionServerSide
120+ goalServers --> goalMaliciousFiles
121+ goalServers --> goalXSS
122+
123+ agent "Gain access to Stripes \nMerchant Dashboard" as goalMerchantDashboard
124+ agent "Compromise and \nor steal employee laptop \nand mobile phone" as goalLaptop
125+ goalFakePayments --> goalMerchantDashboard
126+ goalRefund --> goalMerchantDashboard
127+ goalMerchantDashboard --> goalLaptop
128+
129+ agent "Domain Hijacking" as goalDomain
130+ agent "Denial of Service Attack" as goalDoS2
131+
132+ goalSite --> goalDomain
133+ goalSite2 --> goalDomain
134+ goalSite2 --> goalDoS2
135+
136+ ' goalSteal
137+ agent "Target Customer Details \nstored by Merchant (db)" as goalCustLogin
138+ agent "Target Customer Client \n(home pc)" as goalCustClient
139+ agent "Target Stripe" as goalStripe
140+ agent "Customer uses Public WiFi \nto make a Payment" as goalPublicWiFi
141+
142+ goalSteal --> goalCustLogin
143+ goalSteal --> goalCustClient
144+ goalSteal --> goalStripe
145+ goalSteal --> goalPublicWiFi
146+
147+ agent "Target known \nCustomers of Merchant" as goalSocial
148+ agent "Social Engineering \nsuch as phishing" as goalSocialEng
149+ agent "Take advantage of \nMisconfiguration \n& Vulnerabilities" as goalStripeMisConfig
150+ agent "Insecure Wireless \nProtocols (WEP)" as goalMitM
151+
152+ goalCustLogin --> goalSocial
153+ goalCustClient --> goalSocial
154+ goalStripe --> goalSocialEng
155+ goalStripe --> goalStripeMisConfig
156+ goalPublicWiFi --> goalMitM
157+
158+ agent "Lateral movement \nwithin Organization" as goalLateral
159+ agent "Target Stripe for \nAdministrative rights" as goalStripeAdmin
160+ agent "Man in the Middle Attack\n(MiTM)" as goalManInMiddle
161+
162+ goalSocialEng --> goalStripeAdmin
163+ goalStripeAdmin --> goalLateral
164+ goalStripeMisConfig --> goalStripeAdmin
165+ goalStripeMisConfig --> goalLateral
166+ goalMitM --> goalManInMiddle
167+
168+ agent "Inject false Info & \nIntercept Data transfer" as goalDataWiFi
169+
170+ goalManInMiddle --> goalDataWiFi
171+
172+ goalMock --> goalSocial
173+ goalStripeApi --> goalDoS
174+
175+ agent "Social Engineering \nphishing" as goalPhishing
176+ agent "Session Hijacking" as goalSessionHijacking
177+
178+ goalSocial --> goalPhishing
179+ goalSocial --> goalSessionHijacking
180+
181+ agent "Steal Customer Data" as goalData
182+ agent "Transfer Money to \nWrong Account" as goalBankAccount
183+
184+ goalLateral --> goalData
185+ goalDataWiFi --> goalBankAccount
186+
187+ @enduml
0 commit comments