Skip to content

Commit 7ee019e

Browse files
committed
Implement attacker security prioritization (type)
1 parent 5ac3f71 commit 7ee019e

File tree

3 files changed

+56
-21
lines changed

3 files changed

+56
-21
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@ optional arguments:
102102
--verbose, -v v for basic status, vv for detailed status
103103
```
104104

105+
## Simulation Details
106+
107+
### Model
108+
109+
- *type* - the player's prioritization of the security triad (Confidentiality, Integrity, Availability). For example, a defender listed as type, "CIA", prioritizes confidentiality the most and availability the least. An attacker listed as, "CIA", prioritizes espionage the highest (breaking confidentiality) and disrpution/denial (breaking availability) the least.
110+
105111
## License
106112

107113
Copyright 2020 Carnegie Mellon University. See the [LICENSE.md](LICENSE.md) file for details.

cdas/agents.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,12 +145,34 @@ def __init__(
145145
date.today().toordinal()))
146146

147147
motivations = list(np.random.choice(
148-
stix['attack-motivation'], np.random.randint(2, 4),
149-
replace=False))
148+
list(stix['attack-motivation'].keys()),
149+
np.random.randint(2, 4), replace=False))
150150
self.primary_motivation = str(motivations[0])
151151
self.secondary_motivations = motivations[1:]
152152
self.goals = list(np.random.choice(
153-
stix['goals'], np.random.randint(2, 4), False))
153+
list(stix['goals'].keys()), np.random.randint(2, 4), False))
154+
# player type (prioritization of Confidentiality, Integrity,
155+
# Availability)
156+
cia = {'C': 0, 'I': 0, 'A': 0}
157+
for m in motivations:
158+
try:
159+
cia[stix['attack-motivation'][m][0]] += 3
160+
except IndexError:
161+
pass
162+
try:
163+
cia[stix['attack-motivation'][m][1]] += 2
164+
except IndexError:
165+
pass
166+
try:
167+
cia[stix['attack-motivation'][m][2]] += 1
168+
except IndexError:
169+
pass
170+
for g in self.goals:
171+
cia[stix['goals'][g][0]] += 3
172+
cia[stix['goals'][g][1]] += 2
173+
cia[stix['goals'][g][2]] += 1
174+
self.priority = ''.join([item[0] for item in sorted(
175+
cia.items(), key=lambda i: i[1], reverse=True)])
154176

155177
def create_fake_history(
156178
self, relationships, tools, malwares, ttps, sophistication):

cdas/assets/vocabulary.json

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
{
22
"attack-motivation_notes": "source: STIX 2.0; \"accidental\" removed from attack-motivation",
3-
"attack-motivation": [
4-
"coercion", "dominance", "ideology", "notoriety", "organizational gain",
5-
"personal gain", "personal satisfaction", "revenge", "unpredictable"
6-
],
3+
"attack-motivation": {
4+
"coercion": "",
5+
"dominance": "",
6+
"ideology": "AIC",
7+
"notoriety": "AIC",
8+
"organizational gain": "C",
9+
"personal gain": "C",
10+
"personal satisfaction": "",
11+
"revenge": "IAC",
12+
"unpredictable": ""
13+
},
714
"threat-actor-sophistication_notes": "source: STIX 2.0",
815
"threat-actor-sophistication": {
916
"strategic":1,
@@ -82,18 +89,18 @@
8289
"Snail","Snake","Sparrow","Squirrel","Tiger","Tortoise","Toucan",
8390
"Turkey","Wolf","Yak","Zebra"
8491
],
85-
"goals": [
86-
"steal financial information",
87-
"steal money",
88-
"steal PII",
89-
"steal intellectual property",
90-
"embarass ememy states",
91-
"obtain state secrets",
92-
"establish and maintain strategic access",
93-
"manipulate other nation's economies",
94-
"manipulate geopolitical siutations",
95-
"display military prowess",
96-
"disrupt operations",
97-
"coerce victims"
98-
]
92+
"goals": {
93+
"steal financial information": "CIA",
94+
"steal money": "CIA",
95+
"steal PII": "CIA",
96+
"steal intellectual property": "CIA",
97+
"embarass ememy states": "AIC",
98+
"obtain state secrets": "CIA",
99+
"establish and maintain strategic access": "IAC",
100+
"manipulate other nation's economies": "IAC",
101+
"manipulate geopolitical siutations": "IAC",
102+
"display military prowess": "AIC",
103+
"disrupt operations": "AIC",
104+
"coerce victims": "ICA"
105+
}
99106
}

0 commit comments

Comments
 (0)