Upload folder using huggingface_hub
Browse files- schemas/allowed_targets.json +70 -0
- schemas/attack_plan.schema.json +131 -0
schemas/allowed_targets.json
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"allow": [
|
3 |
+
"MIM3.mg3cap_83.switchA",
|
4 |
+
"MIM3.mg3cap_83.switchB",
|
5 |
+
"MIM3.mg3cap_83.switchC"
|
6 |
+
],
|
7 |
+
"allow_prefix": [
|
8 |
+
"MIM1.mg1load_",
|
9 |
+
"mg1load_",
|
10 |
+
"MIM1.mg1microgrid_switch",
|
11 |
+
"mg1microgrid_switch",
|
12 |
+
"MIM1.mg1switch_",
|
13 |
+
"mg1switch_",
|
14 |
+
"MIM1.mg1trip_shad_inv",
|
15 |
+
"mg1trip_shad_inv",
|
16 |
+
"MIM1.mg1regulator_",
|
17 |
+
"mg1regulator_",
|
18 |
+
"MIM1.mg1cap_",
|
19 |
+
"mg1cap_",
|
20 |
+
|
21 |
+
"MIM2.mg2load_",
|
22 |
+
"mg2load_",
|
23 |
+
"MIM2.mg2microgrid_switch",
|
24 |
+
"mg2microgrid_switch",
|
25 |
+
"MIM2.mg2switch_",
|
26 |
+
"mg2switch_",
|
27 |
+
"MIM2.mg2trip_shad_inv",
|
28 |
+
"mg2trip_shad_inv",
|
29 |
+
"MIM2.mg2regulator_",
|
30 |
+
"mg2regulator_",
|
31 |
+
"MIM2.mg2cap_",
|
32 |
+
"mg2cap_",
|
33 |
+
|
34 |
+
"MIM3.mg3load_",
|
35 |
+
"mg3load_",
|
36 |
+
"MIM3.mg3switch_",
|
37 |
+
"mg3switch_",
|
38 |
+
"MIM3.mg3microgrid_switch",
|
39 |
+
"mg3microgrid_switch",
|
40 |
+
"MIM3.mg3cap_",
|
41 |
+
"mg3cap_",
|
42 |
+
"MIM3.mg3regulator_",
|
43 |
+
"mg3regulator_",
|
44 |
+
"MIM3.mg3Gen",
|
45 |
+
"mg3Gen",
|
46 |
+
|
47 |
+
"MIM4.substationswitch_",
|
48 |
+
"substationswitch_",
|
49 |
+
"MIM4.substationmicrogrid_switch",
|
50 |
+
"substationmicrogrid_switch",
|
51 |
+
"MIM4.substationregulator_",
|
52 |
+
"substationregulator_",
|
53 |
+
"MIM4.substationload_",
|
54 |
+
"substationload_",
|
55 |
+
"MIM4.load_",
|
56 |
+
"load_",
|
57 |
+
|
58 |
+
"unmapped",
|
59 |
+
"unmappedtrip_shad_inv",
|
60 |
+
"unmappedGen"
|
61 |
+
],
|
62 |
+
"coerce": {
|
63 |
+
"open": "OPEN",
|
64 |
+
"opened": "OPEN",
|
65 |
+
"close": "CLOSED",
|
66 |
+
"closed": "CLOSED",
|
67 |
+
"true": "OPEN",
|
68 |
+
"false": "CLOSED"
|
69 |
+
}
|
70 |
+
}
|
schemas/attack_plan.schema.json
ADDED
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
3 |
+
"title": "AttackPlan",
|
4 |
+
"type": "object",
|
5 |
+
"required": ["version", "plan"],
|
6 |
+
"additionalProperties": false,
|
7 |
+
"properties": {
|
8 |
+
"version": {
|
9 |
+
"type": "string",
|
10 |
+
"enum": ["1.1"]
|
11 |
+
},
|
12 |
+
"scenario_name": {
|
13 |
+
"type": "string"
|
14 |
+
},
|
15 |
+
"time": {
|
16 |
+
"type": "object",
|
17 |
+
"required": ["start_s", "end_s"],
|
18 |
+
"additionalProperties": false,
|
19 |
+
"properties": {
|
20 |
+
"start_s": { "type": "number", "minimum": 0 },
|
21 |
+
"end_s": { "type": "number", "minimum": 0 }
|
22 |
+
}
|
23 |
+
},
|
24 |
+
"mim": {
|
25 |
+
"type": "object",
|
26 |
+
"additionalProperties": false,
|
27 |
+
"properties": {
|
28 |
+
"active": { "type": "boolean", "default": true },
|
29 |
+
"selected": {
|
30 |
+
"type": "array",
|
31 |
+
"uniqueItems": true,
|
32 |
+
"items": { "type": "string", "enum": ["MIM1","MIM2","MIM3","MIM4"] }
|
33 |
+
}
|
34 |
+
}
|
35 |
+
},
|
36 |
+
"ddos": {
|
37 |
+
"type": "object",
|
38 |
+
"additionalProperties": false,
|
39 |
+
"properties": {
|
40 |
+
"active": { "type": "boolean" },
|
41 |
+
"number_of_bots": { "type": "integer", "minimum": 1 },
|
42 |
+
"threads_per_attacker":{ "type": "integer", "minimum": 1 },
|
43 |
+
"use_ping": { "type": "boolean" },
|
44 |
+
"start_s": { "type": "number", "minimum": 0 },
|
45 |
+
"end_s": { "type": "number", "minimum": 0 },
|
46 |
+
"time_on_s": { "type": "number", "minimum": 0 },
|
47 |
+
"time_off_s": { "type": "number", "minimum": 0 },
|
48 |
+
"packet_size": { "type": "integer", "minimum": 1 },
|
49 |
+
"rate": { "type": "string" },
|
50 |
+
"node_type": { "type": "string" },
|
51 |
+
"node_id": {
|
52 |
+
"type": "array",
|
53 |
+
"items": { "type": "integer", "minimum": 0 }
|
54 |
+
},
|
55 |
+
"endpoint": { "type": "string", "enum": ["MIM","GLD","Other"] }
|
56 |
+
}
|
57 |
+
},
|
58 |
+
"plan": {
|
59 |
+
"type": "array",
|
60 |
+
"minItems": 1,
|
61 |
+
"items": {
|
62 |
+
"type": "object",
|
63 |
+
"required": ["name", "op", "point", "attack_value", "window"],
|
64 |
+
"additionalProperties": false,
|
65 |
+
"properties": {
|
66 |
+
"name": {
|
67 |
+
"type": "string",
|
68 |
+
"description": "Optional MIM prefix. Either 'MIMx.device.point' or 'device.point'.",
|
69 |
+
"pattern": "^((MIM[1-4])\\.)?([^.]+)\\.([A-Za-z0-9_]+)$"
|
70 |
+
},
|
71 |
+
"scope": {
|
72 |
+
"type": "object",
|
73 |
+
"additionalProperties": false,
|
74 |
+
"properties": {
|
75 |
+
"mg": { "type": ["string","null"], "enum": ["mg1","mg2","mg3","substation","unmapped", null] },
|
76 |
+
"mim": { "type": ["string","null"], "enum": ["MIM1","MIM2","MIM3","MIM4", null] },
|
77 |
+
"apply": { "type": "string", "enum": ["both","glm_only"], "default": "both" }
|
78 |
+
}
|
79 |
+
},
|
80 |
+
"target_hint": {
|
81 |
+
"type": "object",
|
82 |
+
"additionalProperties": false,
|
83 |
+
"properties": {
|
84 |
+
"area": { "type": "string", "enum": ["mg1","mg2","mg3","substation"] },
|
85 |
+
"device": { "type": "string" }
|
86 |
+
}
|
87 |
+
},
|
88 |
+
"op": {
|
89 |
+
"type": "string",
|
90 |
+
"enum": ["set","scale","increase","decrease","open","close","trip"]
|
91 |
+
},
|
92 |
+
"point": {
|
93 |
+
"type": "string"
|
94 |
+
},
|
95 |
+
"attack_value": {
|
96 |
+
"type": ["number","string"]
|
97 |
+
},
|
98 |
+
"real_value": {
|
99 |
+
"type": ["number","string","null"],
|
100 |
+
"default": null
|
101 |
+
},
|
102 |
+
"phase": {
|
103 |
+
"type": ["string","null"],
|
104 |
+
"enum": ["A","B","C", null],
|
105 |
+
"default": null
|
106 |
+
},
|
107 |
+
"window": {
|
108 |
+
"type": "object",
|
109 |
+
"required": ["point_start_s", "point_stop_s"],
|
110 |
+
"additionalProperties": false,
|
111 |
+
"properties": {
|
112 |
+
"point_start_s": { "type": "number", "minimum": 0 },
|
113 |
+
"point_stop_s": { "type": "number", "minimum": 0 }
|
114 |
+
}
|
115 |
+
}
|
116 |
+
}
|
117 |
+
}
|
118 |
+
},
|
119 |
+
"compile_hints": {
|
120 |
+
"type": "object",
|
121 |
+
"additionalProperties": false,
|
122 |
+
"properties": {
|
123 |
+
"scenario_id": { "type": "string", "default": "a" }
|
124 |
+
}
|
125 |
+
},
|
126 |
+
"rationale_summary": {
|
127 |
+
"type": "array",
|
128 |
+
"items": { "type": "string" }
|
129 |
+
}
|
130 |
+
}
|
131 |
+
}
|