txt2stix 0.0.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. txt2stix/__init__.py +33 -0
  2. txt2stix/ai_extractor/__init__.py +15 -0
  3. txt2stix/ai_extractor/anthropic.py +12 -0
  4. txt2stix/ai_extractor/base.py +87 -0
  5. txt2stix/ai_extractor/deepseek.py +19 -0
  6. txt2stix/ai_extractor/gemini.py +18 -0
  7. txt2stix/ai_extractor/openai.py +15 -0
  8. txt2stix/ai_extractor/openrouter.py +20 -0
  9. txt2stix/ai_extractor/prompts.py +164 -0
  10. txt2stix/ai_extractor/utils.py +85 -0
  11. txt2stix/attack_flow.py +101 -0
  12. txt2stix/bundler.py +428 -0
  13. txt2stix/common.py +23 -0
  14. txt2stix/extractions.py +59 -0
  15. txt2stix/includes/__init__.py +0 -0
  16. txt2stix/includes/extractions/ai/config.yaml +1023 -0
  17. txt2stix/includes/extractions/lookup/config.yaml +393 -0
  18. txt2stix/includes/extractions/pattern/config.yaml +609 -0
  19. txt2stix/includes/helpers/mimetype_filename_extension_list.csv +936 -0
  20. txt2stix/includes/helpers/stix_relationship_types.txt +41 -0
  21. txt2stix/includes/helpers/tlds.txt +1446 -0
  22. txt2stix/includes/helpers/windows_registry_key_prefix.txt +12 -0
  23. txt2stix/includes/lookups/_README.md +11 -0
  24. txt2stix/includes/lookups/_generate_lookups.py +247 -0
  25. txt2stix/includes/lookups/attack_pattern.txt +1 -0
  26. txt2stix/includes/lookups/campaign.txt +1 -0
  27. txt2stix/includes/lookups/country_iso3166_alpha2.txt +249 -0
  28. txt2stix/includes/lookups/course_of_action.txt +1 -0
  29. txt2stix/includes/lookups/disarm_id_v1_5.txt +345 -0
  30. txt2stix/includes/lookups/disarm_name_v1_5.txt +347 -0
  31. txt2stix/includes/lookups/extensions.txt +78 -0
  32. txt2stix/includes/lookups/identity.txt +1 -0
  33. txt2stix/includes/lookups/infrastructure.txt +1 -0
  34. txt2stix/includes/lookups/intrusion_set.txt +1 -0
  35. txt2stix/includes/lookups/malware.txt +2 -0
  36. txt2stix/includes/lookups/mitre_atlas_id_v4_5_2.txt +116 -0
  37. txt2stix/includes/lookups/mitre_atlas_name_v4_5_2.txt +117 -0
  38. txt2stix/includes/lookups/mitre_attack_enterprise_aliases_v16_0.txt +1502 -0
  39. txt2stix/includes/lookups/mitre_attack_enterprise_id_v16_0.txt +1656 -0
  40. txt2stix/includes/lookups/mitre_attack_enterprise_name_v16_0.txt +1765 -0
  41. txt2stix/includes/lookups/mitre_attack_ics_aliases_v16_0.txt +141 -0
  42. txt2stix/includes/lookups/mitre_attack_ics_id_v16_0.txt +254 -0
  43. txt2stix/includes/lookups/mitre_attack_ics_name_v16_0.txt +293 -0
  44. txt2stix/includes/lookups/mitre_attack_mobile_aliases_v16_0.txt +159 -0
  45. txt2stix/includes/lookups/mitre_attack_mobile_id_v16_0.txt +277 -0
  46. txt2stix/includes/lookups/mitre_attack_mobile_name_v16_0.txt +296 -0
  47. txt2stix/includes/lookups/mitre_capec_id_v3_9.txt +559 -0
  48. txt2stix/includes/lookups/mitre_capec_name_v3_9.txt +560 -0
  49. txt2stix/includes/lookups/mitre_cwe_id_v4_15.txt +939 -0
  50. txt2stix/includes/lookups/mitre_cwe_name_v4_15.txt +939 -0
  51. txt2stix/includes/lookups/threat_actor.txt +1 -0
  52. txt2stix/includes/lookups/tld.txt +1422 -0
  53. txt2stix/includes/lookups/tool.txt +1 -0
  54. txt2stix/includes/tests/test_cases.yaml +695 -0
  55. txt2stix/indicator.py +860 -0
  56. txt2stix/lookups.py +68 -0
  57. txt2stix/pattern/__init__.py +13 -0
  58. txt2stix/pattern/extractors/__init__.py +0 -0
  59. txt2stix/pattern/extractors/base_extractor.py +167 -0
  60. txt2stix/pattern/extractors/card/README.md +34 -0
  61. txt2stix/pattern/extractors/card/__init__.py +15 -0
  62. txt2stix/pattern/extractors/card/amex_card_extractor.py +52 -0
  63. txt2stix/pattern/extractors/card/diners_card_extractor.py +47 -0
  64. txt2stix/pattern/extractors/card/discover_card_extractor.py +48 -0
  65. txt2stix/pattern/extractors/card/jcb_card_extractor.py +43 -0
  66. txt2stix/pattern/extractors/card/master_card_extractor.py +63 -0
  67. txt2stix/pattern/extractors/card/union_card_extractor.py +38 -0
  68. txt2stix/pattern/extractors/card/visa_card_extractor.py +46 -0
  69. txt2stix/pattern/extractors/crypto/__init__.py +3 -0
  70. txt2stix/pattern/extractors/crypto/btc_extractor.py +38 -0
  71. txt2stix/pattern/extractors/directory/__init__.py +10 -0
  72. txt2stix/pattern/extractors/directory/unix_directory_extractor.py +40 -0
  73. txt2stix/pattern/extractors/directory/unix_file_path_extractor.py +42 -0
  74. txt2stix/pattern/extractors/directory/windows_directory_path_extractor.py +47 -0
  75. txt2stix/pattern/extractors/directory/windows_file_path_extractor.py +42 -0
  76. txt2stix/pattern/extractors/domain/__init__.py +8 -0
  77. txt2stix/pattern/extractors/domain/domain_extractor.py +39 -0
  78. txt2stix/pattern/extractors/domain/hostname_extractor.py +36 -0
  79. txt2stix/pattern/extractors/domain/sub_domain_extractor.py +49 -0
  80. txt2stix/pattern/extractors/hashes/__init__.py +16 -0
  81. txt2stix/pattern/extractors/hashes/md5_extractor.py +16 -0
  82. txt2stix/pattern/extractors/hashes/sha1_extractor.py +14 -0
  83. txt2stix/pattern/extractors/hashes/sha224_extractor.py +18 -0
  84. txt2stix/pattern/extractors/hashes/sha2_256_exactor.py +14 -0
  85. txt2stix/pattern/extractors/hashes/sha2_512_exactor.py +13 -0
  86. txt2stix/pattern/extractors/hashes/sha3_256_exactor.py +15 -0
  87. txt2stix/pattern/extractors/hashes/sha3_512_exactor.py +16 -0
  88. txt2stix/pattern/extractors/helper.py +64 -0
  89. txt2stix/pattern/extractors/ip/__init__.py +14 -0
  90. txt2stix/pattern/extractors/ip/ipv4_cidr_extractor.py +49 -0
  91. txt2stix/pattern/extractors/ip/ipv4_extractor.py +18 -0
  92. txt2stix/pattern/extractors/ip/ipv4_port_extractor.py +42 -0
  93. txt2stix/pattern/extractors/ip/ipv6_cidr_extractor.py +18 -0
  94. txt2stix/pattern/extractors/ip/ipv6_extractor.py +16 -0
  95. txt2stix/pattern/extractors/ip/ipv6_port_extractor.py +46 -0
  96. txt2stix/pattern/extractors/others/__init__.py +22 -0
  97. txt2stix/pattern/extractors/others/asn_extractor.py +14 -0
  98. txt2stix/pattern/extractors/others/cpe_extractor.py +29 -0
  99. txt2stix/pattern/extractors/others/cve_extractor.py +14 -0
  100. txt2stix/pattern/extractors/others/email_extractor.py +21 -0
  101. txt2stix/pattern/extractors/others/filename_extractor.py +17 -0
  102. txt2stix/pattern/extractors/others/iban_extractor.py +15 -0
  103. txt2stix/pattern/extractors/others/mac_address_extractor.py +13 -0
  104. txt2stix/pattern/extractors/others/phonenumber_extractor.py +41 -0
  105. txt2stix/pattern/extractors/others/user_agent_extractor.py +20 -0
  106. txt2stix/pattern/extractors/others/windows_registry_key_extractor.py +18 -0
  107. txt2stix/pattern/extractors/url/__init__.py +7 -0
  108. txt2stix/pattern/extractors/url/url_extractor.py +22 -0
  109. txt2stix/pattern/extractors/url/url_file_extractor.py +21 -0
  110. txt2stix/pattern/extractors/url/url_path_extractor.py +74 -0
  111. txt2stix/retriever.py +126 -0
  112. txt2stix/stix.py +1 -0
  113. txt2stix/txt2stix.py +336 -0
  114. txt2stix/utils.py +86 -0
  115. txt2stix-0.0.4.dist-info/METADATA +190 -0
  116. txt2stix-0.0.4.dist-info/RECORD +119 -0
  117. txt2stix-0.0.4.dist-info/WHEEL +4 -0
  118. txt2stix-0.0.4.dist-info/entry_points.txt +2 -0
  119. txt2stix-0.0.4.dist-info/licenses/LICENSE +202 -0
@@ -0,0 +1,1023 @@
1
+ # ====== AI EXTRACTIONS =====
2
+
3
+ ####### IPv4 extractions #######
4
+
5
+ ai_ipv4_address_only:
6
+ type: ai
7
+ dogesec_web: true
8
+ name: 'IPv4 Address Only'
9
+ description: 'Extracts IPv4 addresses, but not with CIDR or Ports'
10
+ notes: 'pattern_ipv4_address_only legacy extraction also exists if you cannot use AI'
11
+ created: 2020-01-01
12
+ modified: 2020-01-01
13
+ created_by: DOGESEC
14
+ version: 1.0.0
15
+ prompt_base: 'Extract all IPv4 addresses from the text.'
16
+ prompt_helper: 'Do not include any IPv4s that contain a port or CIDR.'
17
+ prompt_conversion: ''
18
+ test_cases: generic_ipv4_address_only
19
+ stix_mapping: ipv4-addr
20
+
21
+ ai_ipv4_address_cidr:
22
+ type: ai
23
+ dogesec_web: true
24
+ name: 'IPv4 Address with CIDR'
25
+ description: 'Extracts IPv4 addresses with CIDRs'
26
+ notes: 'pattern_ipv4_address_cidr legacy extraction also exists if you cannot use AI'
27
+ created: 2020-01-01
28
+ modified: 2020-01-01
29
+ created_by: DOGESEC
30
+ version: 1.0.0
31
+ prompt_base: 'Extract all IPv4 addresses with a CIDR from the text.'
32
+ prompt_helper: 'Do not include any IPs that do not have a CIDR.'
33
+ prompt_conversion: ''
34
+ test_cases: ipv4_address_cidr
35
+ stix_mapping: ipv4-addr
36
+
37
+ ai_ipv4_address_port:
38
+ type: ai
39
+ dogesec_web: true
40
+ name: 'IPv4 Address with Port'
41
+ description: 'Extracts IPv4 addresses with Port'
42
+ notes: 'pattern_ipv4_address_port legacy extraction also exists if you cannot use AI'
43
+ created: 2020-01-01
44
+ modified: 2020-01-01
45
+ created_by: DOGESEC
46
+ version: 1.0.0
47
+ prompt_base: 'Extract all IPv4 addresses with a port from the text.'
48
+ prompt_helper: 'Do not include any IPv4s that do not contain a port number'
49
+ prompt_conversion: ''
50
+ test_cases: ipv4_address_port
51
+ stix_mapping: ipv4-addr-port
52
+
53
+ ####### IPv6 extractions #######
54
+
55
+ ai_ipv6_address_only:
56
+ type: ai
57
+ dogesec_web: true
58
+ name: 'IPv6 Address Only'
59
+ description: 'Extracts IPv6 addresses, but not with CIDR or Ports'
60
+ notes: 'pattern_ipv6_address_only legacy extraction also exists if you cannot use AI'
61
+ created: 2020-01-01
62
+ modified: 2020-01-01
63
+ created_by: DOGESEC
64
+ version: 1.0.0
65
+ prompt_base: 'Extract all IPv6 addresses from the text.'
66
+ prompt_helper: 'Do not include any IPv6s that contain a port or CIDR.'
67
+ prompt_conversion: ''
68
+ test_cases: generic_ipv6_address_only
69
+ stix_mapping: ipv6-addr
70
+
71
+ ai_ipv6_address_cidr:
72
+ type: ai
73
+ dogesec_web: true
74
+ name: 'IPv6 Address with CIDR'
75
+ description: 'Extracts IPv6 addresses with CIDRs'
76
+ notes: 'pattern_ipv6_address_cidr legacy extraction also exists if you cannot use AI'
77
+ created: 2020-01-01
78
+ modified: 2020-01-01
79
+ created_by: DOGESEC
80
+ version: 1.0.0
81
+ prompt_base: 'Extract all IPv6 addresses with a CIDR from the text.'
82
+ prompt_helper: 'Do not include any IPv6s that do not contain a CIDR'
83
+ prompt_conversion: ''
84
+ test_cases: generic_ipv6_address_cidr
85
+ stix_mapping: ipv6-addr
86
+
87
+ ai_ipv6_address_port:
88
+ type: ai
89
+ dogesec_web: true
90
+ name: 'IPv6 Address with Port'
91
+ description: 'Extracts IPv6 addresses with Port'
92
+ notes: 'pattern_ipv6_address_port legacy extraction also exists if you cannot use AI'
93
+ created: 2020-01-01
94
+ modified: 2020-01-01
95
+ created_by: DOGESEC
96
+ version: 1.0.0
97
+ prompt_base: 'Extract all IPv6 addresses with a CIDR from the text.'
98
+ prompt_helper: 'Do not include any IPv6s that do not contain a port number'
99
+ prompt_conversion: ''
100
+ test_cases: generic_ipv6_address_port
101
+ stix_mapping: ipv6-addr-port
102
+
103
+ ####### Domain name extractions #######
104
+
105
+ ai_domain_name_only:
106
+ type: ai
107
+ dogesec_web: true
108
+ name: 'Domain name only'
109
+ description: 'Extracts domains, but not subdomains or IPv4 addresses. Must have a valid TLD. Ensure the top level domain is valid.'
110
+ notes: 'pattern_domain_name_only legacy extraction also exists if you cannot use AI'
111
+ created: 2020-01-01
112
+ modified: 2020-01-01
113
+ created_by: DOGESEC
114
+ version: 1.0.0
115
+ prompt_base: 'Extract all valid root domain names from the text. Do not extract subdomains.'
116
+ prompt_helper: ''
117
+ prompt_conversion: ''
118
+ test_cases: generic_domain_name_only
119
+ stix_mapping: domain-name
120
+
121
+ ai_domain_name_subdomain:
122
+ type: ai
123
+ dogesec_web: true
124
+ name: 'Subdomain name only'
125
+ description: 'Extracts subdomains, but not root domains or IPv4 addresses. Must have a valid TLD. Ensure the top level domain is valid.'
126
+ notes: 'pattern_domain_name_subdomain legacy extraction also exists if you cannot use AI'
127
+ created: 2020-01-01
128
+ modified: 2020-01-01
129
+ created_by: DOGESEC
130
+ version: 1.0.0
131
+ prompt_base: 'Extract all valid subdomain names from the text. Do not extract root domains.'
132
+ prompt_helper: ''
133
+ prompt_conversion: ''
134
+ test_cases: generic_domain_name_subdomain
135
+ stix_mapping: domain-name
136
+
137
+ ####### URL extractions #######
138
+
139
+ ai_url:
140
+ type: ai
141
+ dogesec_web: true
142
+ name: 'URL Only'
143
+ description: 'Extracts base URLs (can be IPs) with no path/file extension. If the sub/domain part is not an IP, then it must have a valid TLD.'
144
+ notes: 'pattern_url legacy extraction also exists if you cannot use AI'
145
+ created: 2020-01-01
146
+ modified: 2020-01-01
147
+ created_by: DOGESEC
148
+ version: 1.0.0
149
+ prompt_base: 'Extract all URLs with no path/file extension from the text. If the sub/domain part is not an IP, then it must have a valid TLD.'
150
+ prompt_helper: ''
151
+ prompt_conversion: ''
152
+ test_cases: generic_url
153
+ stix_mapping: url
154
+
155
+ ai_url_file:
156
+ type: ai
157
+ dogesec_web: true
158
+ name: 'URL with file extension'
159
+ description: 'Extracts URLs with file extension in path. If the sub/domain part is not an IP, then it must have a valid TLD. Filetype must also match valid filetype. Similar to pattern_url except checks for URL with path to file'
160
+ notes: 'pattern_url_file legacy extraction also exists if you cannot use AI'
161
+ created: 2020-01-01
162
+ modified: 2020-01-01
163
+ created_by: DOGESEC
164
+ version: 1.0.0
165
+ prompt_base: 'Extract all URLs with file extension in path from the text. If the sub/domain part is not an IP, then it must have a valid TLD. The file must match valid filetype.'
166
+ prompt_helper: ''
167
+ prompt_conversion: ''
168
+ test_cases: generic_url_file
169
+ stix_mapping: url
170
+
171
+ ai_url_path:
172
+ type: ai
173
+ dogesec_web: true
174
+ name: 'URL path'
175
+ description: 'Extracts URLs without file extension in path. If the sub/domain part is not an IP, then it must have a valid TLD. Similar to pattern_url except checks for URL with path but without file'
176
+ notes: 'pattern_url_path legacy extraction also exists if you cannot use AI'
177
+ created: 2020-01-01
178
+ modified: 2020-01-01
179
+ created_by: DOGESEC
180
+ version: 1.0.0
181
+ prompt_base: 'Extract all URLs without a file extension in their path from the text. If the sub/domain part is not an IP, then it must have a valid TLD.'
182
+ prompt_helper: ''
183
+ prompt_conversion: ''
184
+ test_cases: generic_url_path
185
+ stix_mapping: url
186
+
187
+ ####### Hostname extractions #######
188
+
189
+ ai_host_name:
190
+ type: ai
191
+ dogesec_web: true
192
+ name: 'Hostname extractions'
193
+ description: 'Extracts hostnames that fail domain TLD validation. Captures data that fails pattern_domain_name TLD validation.'
194
+ notes: 'pattern_host_name legacy extraction also exists if you cannot use AI'
195
+ created: 2020-01-01
196
+ modified: 2020-01-01
197
+ created_by: DOGESEC
198
+ version: 1.0.0
199
+ prompt_base: 'Extract all hostnames from the text. Hostnames should not have a valid TLD extension (these are domains).'
200
+ prompt_helper: ''
201
+ prompt_conversion: ''
202
+ test_cases: generic_host_name
203
+ stix_mapping: domain-name
204
+
205
+ ai_host_name_subdomain:
206
+ type: ai
207
+ dogesec_web: true
208
+ name: 'Hostname (subdomain) extractions'
209
+ description: 'Extracts hostnames that fail subdomain TLD validation. Captures data that fails pattern_domain_name_subdomain TLD validation.'
210
+ notes: 'pattern_host_name_subdomain legacy extraction also exists if you cannot use AI'
211
+ created: 2020-01-01
212
+ modified: 2020-01-01
213
+ created_by: DOGESEC
214
+ version: 1.0.0
215
+ prompt_base: 'Extract all sub-hostnames from the text. Sub-hostnames should not have a valid TLD extension.'
216
+ prompt_helper: ''
217
+ prompt_conversion: ''
218
+ test_cases: generic_host_name_subdomain
219
+ stix_mapping: domain-name
220
+
221
+ ai_host_name_url:
222
+ type: ai
223
+ dogesec_web: true
224
+ name: 'Hostname extractions inside URL'
225
+ description: 'Extracts hostnames/sub hostnames with full URLs that fail subdomain TLD validation. Captures data that fails pattern_url TLD validation.'
226
+ notes: 'pattern_host_name_url legacy extraction also exists if you cannot use AI'
227
+ created: 2020-01-01
228
+ modified: 2020-01-01
229
+ created_by: DOGESEC
230
+ version: 1.0.0
231
+ prompt_base: 'Extract all hostnames / sub-hostnames with full URLs from the text. All extractions should not have a valid TLD extension.'
232
+ prompt_helper: ''
233
+ prompt_conversion: ''
234
+ test_cases: generic_host_name_url
235
+ stix_mapping: url
236
+
237
+ ai_host_name_file:
238
+ type: ai
239
+ dogesec_web: true
240
+ name: 'Hostname with file extension'
241
+ description: 'Extracts hostnames/sub hostnames with full URLs with file extension in path. Captures data that fails pattern_url_file TLD validation.'
242
+ notes: 'pattern_host_name_file legacy extraction also exists if you cannot use AI'
243
+ created: 2020-01-01
244
+ modified: 2020-01-01
245
+ created_by: DOGESEC
246
+ version: 1.0.0
247
+ prompt_base: 'Extract all hostnames / sub-hostnames with full URLs from the text that contain a path to a valid file extension. All extractions should not have a valid TLD extension. All file extensions should be valid file extensions.'
248
+ prompt_helper: ''
249
+ prompt_conversion: ''
250
+ test_cases: generic_host_name_file
251
+ stix_mapping: url
252
+
253
+ ai_host_name_path:
254
+ type: ai
255
+ dogesec_web: true
256
+ name: 'Hostname path'
257
+ description: 'Extracts hostnames/sub hostnames with full URLs without file extension in path. Captures data that fails pattern_url_path TLD validation.'
258
+ notes: 'pattern_host_name_path legacy extraction also exists if you cannot use AI'
259
+ created: 2020-01-01
260
+ modified: 2020-01-01
261
+ created_by: DOGESEC
262
+ version: 1.0.0
263
+ prompt_base: 'Extract all hostnames / sub-hostnames with full URLs (but do not contain a path to a file) from the text that. All extractions should not have a valid TLD extension. All file extensions should be valid file extensions.'
264
+ prompt_helper: ''
265
+ prompt_conversion: ''
266
+ test_cases: generic_host_name_path
267
+ stix_mapping: url
268
+
269
+ ####### Directory path extractions #######
270
+
271
+ ai_directory_windows:
272
+ type: ai
273
+ dogesec_web: true
274
+ name: 'Windows Directory'
275
+ description: 'Extracts a Windows directory path. The .net docs provide a good overview to Windows paths: https://github.com/dotnet/docs/blob/main/docs/standard/io/file-path-formats.md#file-path-formats-on-windows-systems'
276
+ notes: 'pattern_directory_windows legacy extraction also exists if you cannot use AI'
277
+ created: 2020-01-01
278
+ modified: 2020-01-01
279
+ created_by: DOGESEC
280
+ version: 1.0.0
281
+ prompt_base: 'Extract all Windows directory paths from the text.'
282
+ prompt_helper: ''
283
+ prompt_conversion: ''
284
+ test_cases: generic_directory_windows
285
+ stix_mapping: directory
286
+
287
+ ai_directory_windows_with_file:
288
+ type: ai
289
+ dogesec_web: true
290
+ name: 'Windows Directory with file reported'
291
+ description: 'Similar to pattern_directory_windows, but captures paths that include the file printed.'
292
+ notes: 'pattern_directory_windows_with_file legacy extraction also exists if you cannot use AI'
293
+ created: 2020-01-01
294
+ modified: 2020-01-01
295
+ created_by: DOGESEC
296
+ version: 1.0.0
297
+ prompt_base: 'Extract all Windows directory paths from the text that contain a path to a file. Ensure the file type extension is valid.'
298
+ prompt_helper: ''
299
+ prompt_conversion: ''
300
+ test_cases: generic_directory_windows_with_file
301
+ stix_mapping: directory-file
302
+
303
+ ai_directory_unix:
304
+ type: ai
305
+ dogesec_web: true
306
+ name: 'UNIX Directory'
307
+ description: 'Extracts a UNIX directory path'
308
+ notes: 'pattern_directory_unix legacy extraction also exists if you cannot use AI'
309
+ created: 2020-01-01
310
+ modified: 2020-01-01
311
+ created_by: DOGESEC
312
+ version: 1.0.0
313
+ prompt_base: 'Extract all UNIX directory paths from the text.'
314
+ prompt_helper: ''
315
+ prompt_conversion: ''
316
+ test_cases: generic_directory_unix
317
+ stix_mapping: directory
318
+
319
+ ai_directory_unix_file:
320
+ type: ai
321
+ dogesec_web: true
322
+ name: 'UNIX Directory with file'
323
+ description: 'Similar to pattern_directory_unix, but captures paths that include the file printed.'
324
+ notes: 'pattern_directory_unix_file legacy extraction also exists if you cannot use AI'
325
+ created: 2020-01-01
326
+ modified: 2020-01-01
327
+ created_by: DOGESEC
328
+ version: 1.0.0
329
+ prompt_base: 'Extract all UNIX directory paths from the text that contain a path to a file. Ensure the file type extension is valid.'
330
+ prompt_helper: ''
331
+ prompt_conversion: ''
332
+ test_cases: generic_directory_unix_file
333
+ stix_mapping: directory-file
334
+
335
+ ####### File extractions #######
336
+
337
+ ai_file_name:
338
+ type: ai
339
+ dogesec_web: true
340
+ name: 'File name'
341
+ description: 'Extracts filename. The file extension must match a valid file extension. filenames have three parts `<NAME>.<EXTENSION>`. Filetypes only contain a single `.`. Note, the `.` and `<EXTENSION>` part are required, but `<NAME>` is optional (because hidden files can be in format like; `.DS_Store`). Uses helpers/mimetype_filename_extension_list.csv to check valid file extension.'
342
+ notes: 'pattern_file_name legacy extraction also exists if you cannot use AI'
343
+ created: 2020-01-01
344
+ modified: 2020-01-01
345
+ created_by: DOGESEC
346
+ version: 1.0.0
347
+ prompt_base: 'Extract all file names from the text. Ensure the file type extension is valid.'
348
+ prompt_helper: ''
349
+ prompt_conversion: ''
350
+ test_cases: generic_file_name
351
+ stix_mapping: file
352
+
353
+ ai_file_hash_all:
354
+ type: ai
355
+ dogesec_web: true
356
+ name: 'File Hash All'
357
+ description: 'Extracts MD5, SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 file hashes'
358
+ notes: ''
359
+ created: 2020-01-01
360
+ modified: 2020-01-01
361
+ created_by: DOGESEC
362
+ version: 1.0.0
363
+ prompt_base: 'Extract all MD5, SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 file hashes from the text.'
364
+ prompt_helper: ''
365
+ prompt_conversion: ''
366
+ test_cases: generic_file_hash_all
367
+ stix_mapping: file-hash
368
+
369
+ ai_file_hash_md5:
370
+ type: ai
371
+ dogesec_web: false
372
+ name: 'File Hash MD5'
373
+ description: 'Extracts MD5 file hashes'
374
+ notes: 'pattern_file_hash_md5 legacy extraction also exists if you cannot use AI'
375
+ created: 2020-01-01
376
+ modified: 2020-01-01
377
+ created_by: DOGESEC
378
+ version: 1.0.0
379
+ prompt_base: 'Extract all MD5 hashes from the text.'
380
+ prompt_helper: ''
381
+ prompt_conversion: ''
382
+ test_cases: generic_file_hash_md5
383
+ stix_mapping: file-hash
384
+
385
+ ai_file_hash_sha_1:
386
+ type: ai
387
+ dogesec_web: false
388
+ name: 'File Hash SHA-1'
389
+ description: 'Extracts SHA-1 file hashes'
390
+ notes: 'pattern_file_hash_sha_1 legacy extraction also exists if you cannot use AI'
391
+ created: 2020-01-01
392
+ modified: 2020-01-01
393
+ created_by: DOGESEC
394
+ version: 1.0.0
395
+ prompt_base: 'Extract all SHA-1 hashes from the text.'
396
+ prompt_helper: ''
397
+ prompt_conversion: ''
398
+ test_cases: generic_file_hash_sha_1
399
+ stix_mapping: file-hash
400
+
401
+ ai_file_hash_sha_256:
402
+ type: ai
403
+ dogesec_web: false
404
+ name: 'File Hash SHA-256'
405
+ description: 'Extracts SHA-256 file hashes'
406
+ notes: 'pattern_file_hash_sha_256 legacy extraction also exists if you cannot use AI'
407
+ created: 2020-01-01
408
+ modified: 2020-01-01
409
+ created_by: DOGESEC
410
+ version: 1.0.0
411
+ prompt_base: 'Extract all SHA-256 hashes from the text.'
412
+ prompt_helper: ''
413
+ prompt_conversion: ''
414
+ test_cases: generic_file_hash_sha_256
415
+ stix_mapping: file-hash
416
+
417
+ ai_file_hash_sha_512:
418
+ type: ai
419
+ dogesec_web: false
420
+ name: 'File Hash SHA-512'
421
+ description: 'Extracts SHA-512 file hashes'
422
+ notes: 'pattern_file_hash_sha_512 legacy extraction also exists if you cannot use AI'
423
+ created: 2020-01-01
424
+ modified: 2020-01-01
425
+ created_by: DOGESEC
426
+ version: 1.0.0
427
+ prompt_base: 'Extract all SHA-512 hashes from the text.'
428
+ prompt_helper: ''
429
+ prompt_conversion: ''
430
+ test_cases: generic_file_hash_sha_512
431
+ stix_mapping: file-hash
432
+
433
+ ####### Email address extractions #######
434
+
435
+ ai_email_address:
436
+ type: ai
437
+ dogesec_web: true
438
+ name: 'Email addresses'
439
+ description: 'Extracts emails with valid TLDs'
440
+ notes: 'pattern_email_address legacy extraction also exists if you cannot use AI'
441
+ created: 2020-01-01
442
+ modified: 2020-01-01
443
+ created_by: DOGESEC
444
+ version: 1.0.0
445
+ prompt_base: 'Extract all email addresses from the text.'
446
+ prompt_helper: ''
447
+ prompt_conversion: ''
448
+ test_cases: generic_email_address
449
+ stix_mapping: email-addr
450
+
451
+ ####### MAC address extractions #######
452
+
453
+ ai_mac_address:
454
+ type: ai
455
+ dogesec_web: true
456
+ name: 'MAC Addresses'
457
+ description: 'Extracts MAC addresses with either `-` or `:` separators.'
458
+ notes: 'pattern_mac_address legacy extraction also exists if you cannot use AI'
459
+ created: 2020-01-01
460
+ modified: 2020-01-01
461
+ created_by: DOGESEC
462
+ version: 1.0.0
463
+ prompt_base: 'Extract all MAC addresses from the text.'
464
+ prompt_helper: ''
465
+ prompt_conversion: ''
466
+ test_cases: generic_mac_address
467
+ stix_mapping: mac-addr
468
+
469
+ ####### Windows registry key extractions #######
470
+
471
+ ai_windows_registry_key:
472
+ type: ai
473
+ dogesec_web: true
474
+ name: 'Windows Registry Key'
475
+ description: 'Must start with a valid prefix as defined in /includes/helpers/windows_registry_key_prefix.txt'
476
+ notes: 'pattern_windows_registry_key legacy extraction also exists if you cannot use AI'
477
+ created: 2020-01-01
478
+ modified: 2020-01-01
479
+ created_by: DOGESEC
480
+ version: 1.0.0
481
+ prompt_base: 'Extract all Windows Registry Keys from the text.'
482
+ prompt_helper: ''
483
+ prompt_conversion: ''
484
+ test_cases: generic_windows_registry_key
485
+ stix_mapping: windows-registry-key
486
+
487
+ ####### User agent extractions #######
488
+
489
+ ai_user_agent:
490
+ type: ai
491
+ dogesec_web: true
492
+ name: 'User Agent'
493
+ description: 'Will capture a string that looks like a user agent. User Agents should follow: https://www.rfc-editor.org/rfc/rfc7231#section-5.5.3 . The problem here is that there is no defined prefix for user agent strings, they can be anything. txt2stix follows a similar approach to: https://regex101.com/r/nXKYBB/3'
494
+ notes: 'pattern_user_agent legacy extraction also exists if you cannot use AI'
495
+ created: 2020-01-01
496
+ modified: 2020-01-01
497
+ created_by: DOGESEC
498
+ version: 1.0.0
499
+ prompt_base: 'Extract all user agents from the text.'
500
+ prompt_helper: ''
501
+ prompt_conversion: ''
502
+ test_cases: generic_user_agent
503
+ stix_mapping: user-agent
504
+
505
+ ####### ASN extractions #######
506
+
507
+ ai_autonomous_system_number:
508
+ type: ai
509
+ dogesec_web: true
510
+ name: 'Autonomous System Numbers (ASN)'
511
+ description: 'Always follow the formats: `ASN XXXXX` (e.g `ASN15139`), `ASNXXXXX` (e.g `ASN 15139`), `AS XXXXX` (e.g `AS15139`), or `ASXXXXX` (e.g `AS 15139`)'
512
+ notes: 'pattern_user_agent legacy extraction also exists if you cannot use AI'
513
+ created: 2020-01-01
514
+ modified: 2020-01-01
515
+ created_by: DOGESEC
516
+ version: 1.0.0
517
+ prompt_base: 'Autonomous System Numbers (ASN)'
518
+ prompt_helper: ''
519
+ prompt_conversion: ''
520
+ test_cases: generic_autonomous_system_number
521
+ stix_mapping: autonomous-system
522
+
523
+ ####### Cryptocurrency extractions #######
524
+
525
+ ai_cryptocurrency_btc_wallet:
526
+ type: ai
527
+ dogesec_web: true
528
+ name: 'Cryptocurrency Bitcoin Wallet'
529
+ description: 'Will extract bitcoin wallet hashes and create a crytocurrency-wallet object'
530
+ notes: 'pattern_cryptocurrency_btc_wallet legacy extraction also exists if you cannot use AI'
531
+ created: 2020-01-01
532
+ modified: 2020-01-01
533
+ created_by: DOGESEC
534
+ version: 1.0.0
535
+ prompt_base: 'Extract all Bitcoin Wallet hashes from the text.'
536
+ prompt_helper: ''
537
+ prompt_conversion: ''
538
+ test_cases: generic_cryptocurrency_btc_wallet
539
+ stix_mapping: cryptocurrency-wallet
540
+
541
+ ai_cryptocurrency_btc_wallet_transaction:
542
+ type: ai
543
+ dogesec_web: true
544
+ name: 'Cryptocurrency Bitcoin Wallet And Transaction'
545
+ description: 'Will extract bitcoin wallet hashes and lookup all transactions the extracted wallets have been seen in. Will create a cryptocurrency-wallet object for the wallet extracted, will create cryptocurrency-transaction objects for all transactions the wallet is found in. Use either ai_cryptocurrency_btc_wallet_transaction or ai_cryptocurrency_btc_transaction but not both in same extraction.'
546
+ notes: 'pattern_cryptocurrency_btc_wallet_transaction legacy extraction also exists if you cannot use AI'
547
+ created: 2020-01-01
548
+ modified: 2020-01-01
549
+ created_by: DOGESEC
550
+ version: 1.0.0
551
+ prompt_base: 'Extract all Bitcoin transaction hashes from the text.'
552
+ prompt_helper: ''
553
+ prompt_conversion: ''
554
+ test_cases: generic_cryptocurrency_btc_wallet
555
+ stix_mapping: cryptocurrency-wallet-with-transaction
556
+
557
+ ai_cryptocurrency_btc_transaction:
558
+ type: ai
559
+ dogesec_web: true
560
+ name: 'Cryptocurrency Bitcoin Transaction'
561
+ description: 'Will extract bitcoin transaction hashes. Will create a cryptocurrency-transaction object for the transaction extracted and will create cryptocurrency-wallet objects for all wallets seen in the input or output of the transaction. Use either ai_cryptocurrency_btc_wallet_transaction or ai_cryptocurrency_btc_transaction but not both in same extraction.'
562
+ notes: 'pattern_cryptocurrency_btc_transaction legacy extraction also exists if you cannot use AI'
563
+ created: 2020-01-01
564
+ modified: 2020-01-01
565
+ created_by: DOGESEC
566
+ version: 1.0.0
567
+ prompt_base: 'Extract all Bitcoin transaction hashes from the text.'
568
+ prompt_helper: ''
569
+ prompt_conversion: ''
570
+ test_cases: generic_cryptocurrency_btc_transaction
571
+ stix_mapping: cryptocurrency-transaction
572
+
573
+ ####### CVE extractions #######
574
+
575
+ ai_cve_id:
576
+ type: ai
577
+ dogesec_web: true
578
+ name: 'CVE'
579
+ description: 'CVEs IDs always take the format; `CVE-YYYY-NNNNN` (e.g. `CVE-2022-29098`) or `CVE-YYYY-NNNN` (e.g. `CVE-1999-0007`).'
580
+ notes: 'pattern_cve_id legacy extraction also exists if you cannot use AI'
581
+ created: 2020-01-01
582
+ modified: 2020-01-01
583
+ created_by: DOGESEC
584
+ version: 1.0.0
585
+ prompt_base: 'Extract all CVE IDs from the text.'
586
+ prompt_helper: ''
587
+ prompt_conversion: 'If needed, you can read more about CVEs here: https://nvd.nist.gov/vuln'
588
+ test_cases: generic_cve_id
589
+ stix_mapping: vulmatch-cve-id
590
+
591
+ ####### CPE extractions #######
592
+
593
+ ai_cpe_uri:
594
+ type: ai
595
+ dogesec_web: true
596
+ name: 'CPE'
597
+ description: 'CPE URIs always start with `cpe:2.3` and have 13 parts (or 12 `:` characters)'
598
+ notes: 'pattern_cpe_uri legacy extraction also exists if you cannot use AI'
599
+ created: 2020-01-01
600
+ modified: 2020-01-01
601
+ created_by: DOGESEC
602
+ version: 1.0.0
603
+ prompt_base: 'Extract all CPEs match strings from the text.'
604
+ prompt_helper: ''
605
+ prompt_conversion: 'If needed, you can read more about CVEs here: https://nvd.nist.gov/products'
606
+ test_cases: generic_cpe_uri
607
+ stix_mapping: vulmatch-cpe-id
608
+
609
+ ####### Bank card extractions #######
610
+
611
+ ai_bank_card_all:
612
+ type: ai
613
+ dogesec_web: true
614
+ name: 'Bank Card All'
615
+ description: 'Will also enrich card information if BIN List API key set'
616
+ notes: ''
617
+ created: 2020-01-01
618
+ modified: 2020-01-01
619
+ created_by: DOGESEC
620
+ version: 1.0.0
621
+ prompt_base: 'Extract all MasterCard, Visa, American Express, Union Pay, Diners, JCB, and Discover bank card numbers from the text.'
622
+ prompt_helper: ''
623
+ prompt_conversion: ''
624
+ test_cases: generic_bank_card_mastercard
625
+ stix_mapping: bank-card
626
+
627
+ ai_bank_card_mastercard:
628
+ type: ai
629
+ dogesec_web: false
630
+ name: 'Bank Card MasterCard'
631
+ description: 'Will also enrich card information if BIN List API key set'
632
+ notes: 'RECOMMENDED FOR BETTER ACCURACY: Use pattern_bank_card_mastercard (AI can be unpredictable with sensitive data)'
633
+ created: 2020-01-01
634
+ modified: 2020-01-01
635
+ created_by: DOGESEC
636
+ version: 1.0.0
637
+ prompt_base: 'Extract all MasterCard card numbers from the text.'
638
+ prompt_helper: ''
639
+ prompt_conversion: ''
640
+ test_cases: generic_bank_card_mastercard
641
+ stix_mapping: bank-card
642
+
643
+ ai_bank_card_visa:
644
+ type: ai
645
+ dogesec_web: false
646
+ name: 'Bank Card Visa'
647
+ description: 'Will also enrich card information if BIN List API key set'
648
+ notes: 'RECOMMENDED FOR BETTER ACCURACY: Use pattern_bank_card_visa (AI can be unpredictable with sensitive data)'
649
+ created: 2020-01-01
650
+ modified: 2020-01-01
651
+ created_by: DOGESEC
652
+ version: 1.0.0
653
+ prompt_base: 'Extract all Visa card numbers from the text.'
654
+ prompt_helper: ''
655
+ prompt_conversion: ''
656
+ test_cases: generic_bank_card_visa
657
+ stix_mapping: bank-card
658
+
659
+ ai_bank_card_amex:
660
+ type: ai
661
+ dogesec_web: false
662
+ name: 'Bank Card American Express'
663
+ description: 'Will also enrich card information if BIN List API key set'
664
+ notes: 'RECOMMENDED FOR BETTER ACCURACY: Use pattern_bank_card_amex (AI can be unpredictable with sensitive data)'
665
+ created: 2020-01-01
666
+ modified: 2020-01-01
667
+ created_by: DOGESEC
668
+ version: 1.0.0
669
+ prompt_base: 'Extract all American Express card numbers from the text.'
670
+ prompt_helper: ''
671
+ prompt_conversion: ''
672
+ test_cases: generic_bank_card_amex
673
+ stix_mapping: bank-card
674
+
675
+ ai_bank_card_union_pay:
676
+ type: ai
677
+ dogesec_web: false
678
+ name: 'Bank Card Union Pay'
679
+ description: 'Will also enrich card information if BIN List API key set'
680
+ notes: 'RECOMMENDED FOR BETTER ACCURACY: Use pattern_bank_card_union_pay (AI can be unpredictable with sensitive data)'
681
+ created: 2020-01-01
682
+ modified: 2020-01-01
683
+ created_by: DOGESEC
684
+ version: 1.0.0
685
+ prompt_base: 'Extract all Union Pay card numbers from the text.'
686
+ prompt_helper: ''
687
+ prompt_conversion: ''
688
+ test_cases: generic_bank_card_union_pay
689
+ stix_mapping: bank-card
690
+
691
+ ai_bank_card_diners:
692
+ type: ai
693
+ dogesec_web: false
694
+ name: 'Bank Card Diners'
695
+ description: 'Will also enrich card information if BIN List API key set'
696
+ notes: 'RECOMMENDED FOR BETTER ACCURACY: Use pattern_bank_card_diners (AI can be unpredictable with sensitive data)'
697
+ created: 2020-01-01
698
+ modified: 2020-01-01
699
+ created_by: DOGESEC
700
+ version: 1.0.0
701
+ prompt_base: 'Extract all Diners card numbers from the text.'
702
+ prompt_helper: ''
703
+ prompt_conversion: ''
704
+ test_cases: generic_bank_card_diners
705
+ stix_mapping: bank-card
706
+
707
+ ai_bank_card_jcb:
708
+ type: ai
709
+ dogesec_web: false
710
+ name: 'Bank Card JCB'
711
+ description: 'Will also enrich card information if BIN List API key set'
712
+ notes: 'RECOMMENDED FOR BETTER ACCURACY: Use pattern_bank_card_jcb (AI can be unpredictable with sensitive data)'
713
+ created: 2020-01-01
714
+ modified: 2020-01-01
715
+ created_by: DOGESEC
716
+ version: 1.0.0
717
+ prompt_base: 'Extract all JCB card numbers from the text.'
718
+ prompt_helper: ''
719
+ prompt_conversion: ''
720
+ test_cases: generic_bank_card_jcb
721
+ stix_mapping: bank-card
722
+
723
+ ai_bank_card_discover:
724
+ type: ai
725
+ dogesec_web: false
726
+ name: 'Bank Card Discover'
727
+ description: 'Will also enrich card information if BIN List API key set'
728
+ notes: 'RECOMMENDED FOR BETTER ACCURACY: Use pattern_bank_card_discover (AI can be unpredictable with sensitive data)'
729
+ created: 2020-01-01
730
+ modified: 2020-01-01
731
+ created_by: DOGESEC
732
+ version: 1.0.0
733
+ prompt_base: 'Extract all Discover card numbers from the text.'
734
+ prompt_helper: ''
735
+ prompt_conversion: ''
736
+ test_cases: generic_bank_card_discover
737
+ stix_mapping: bank-card
738
+
739
+ ####### IBAN Extractions #######
740
+
741
+ ai_iban_number:
742
+ type: ai
743
+ dogesec_web: true
744
+ name: 'IBAN'
745
+ description: 'Will extract IBAN numbers and create a bank-account object'
746
+ notes: 'pattern_iban_number legacy extraction also exists if you cannot use AI'
747
+ created: 2020-01-01
748
+ modified: 2020-01-01
749
+ created_by: DOGESEC
750
+ version: 1.0.0
751
+ prompt_base: 'Extract all International Bank Account Numbers (IBAN) from the text.'
752
+ prompt_helper: 'If needed, you can read more about IBAN numbers with examples here: https://www.iban.com/structure'
753
+ prompt_conversion: ''
754
+ test_cases: generic_iban_number
755
+ stix_mapping: bank-account
756
+
757
+ ####### Phone number Extractions #######
758
+
759
+ ai_phone_number:
760
+ type: ai
761
+ dogesec_web: true
762
+ name: 'Phone number'
763
+ description: 'Will extract phone numbers and create a phone-number object'
764
+ notes: 'pattern_phone_number legacy extraction also exists if you cannot use AI'
765
+ created: 2020-01-01
766
+ modified: 2020-01-01
767
+ created_by: DOGESEC
768
+ version: 1.0.0
769
+ prompt_base: 'Extract all phone numbers from the text.'
770
+ prompt_helper: 'If needed, you can read more about the E.164 standard with examples here: https://en.wikipedia.org/wiki/E.164'
771
+ prompt_conversion: 'Please convert the number to the E.164 standard with the correct country code. Remove any whitespace from the final value.'
772
+ test_cases: generic_phone_number
773
+ stix_mapping: phone-number
774
+
775
+ ####### County extractions #######
776
+
777
+ ai_country:
778
+ type: ai
779
+ dogesec_web: true
780
+ name: 'Country'
781
+ description: 'Will extract countries, turn into two digit country codes, and import location object from CTI Butler.'
782
+ notes: 'lookup_country_alpha2 legacy extraction also exists if you cannot use AI'
783
+ created: 2020-01-01
784
+ modified: 2020-01-01
785
+ created_by: DOGESEC
786
+ version: 1.0.0
787
+ prompt_base: 'Extract all countries described in the text, including countries printed as IS0-3166 Alpha2 and Alpha3 codes.'
788
+ prompt_helper: 'If you are unsure, you can read more about the standard here: https://www.iso.org/iso-3166-country-codes.html'
789
+ prompt_conversion: 'Convert all country extractions to their corresponding IS0-3166 Alpha2 codes.'
790
+ test_cases: ai_country
791
+ stix_mapping: ctibutler-location
792
+
793
+ ####### MITRE ATT&CK #######
794
+
795
+ ai_mitre_attack_enterprise:
796
+ type: ai
797
+ dogesec_web: true
798
+ name: 'MITRE ATT&CK Enterprise'
799
+ description: 'Will extract references to MITRE ATT&CK Enterprise objects, convert to ID, and import object from CTI Butler.'
800
+ notes: 'lookup_mitre_attack_enterprise_id and lookup_mitre_attack_enterprise_name legacy extractions also exists if you cannot use AI'
801
+ created: 2020-01-01
802
+ modified: 2020-01-01
803
+ created_by: DOGESEC
804
+ version: 1.0.0
805
+ prompt_base: 'Extract all references to MITRE ATT&CK Enterprise tactics, techniques, groups, data sources, mitigations, software, and campaigns described in the text. These references may not be explicit in the text so you should be careful to account for the natural language of the text your analysis. Do not include MITRE ATT&CK ICS or MITRE ATT&CK Mobile in the results.'
806
+ prompt_helper: 'If you are unsure, you can learn more about MITRE ATT&CK Enterprise here: https://attack.mitre.org/matrices/enterprise/'
807
+ prompt_conversion: 'You should respond with only the ATT&CK ID.'
808
+ test_cases: ai_mitre_attack_enterprise
809
+ stix_mapping: ctibutler-mitre-attack-enterprise-id
810
+
811
+ ai_mitre_attack_mobile:
812
+ type: ai
813
+ dogesec_web: true
814
+ name: 'MITRE ATT&CK Mobile'
815
+ description: 'Will extract references to MITRE ATT&CK Mobile objects, convert to ID, and import object from CTI Butler.'
816
+ notes: 'lookup_mitre_attack_mobile_id and lookup_mitre_attack_mobile_name legacy extractions also exists if you cannot use AI'
817
+ created: 2020-01-01
818
+ modified: 2020-01-01
819
+ created_by: DOGESEC
820
+ version: 1.0.0
821
+ prompt_base: 'Extract all references to MITRE ATT&CK Mobile tactics, techniques, groups, data sources, mitigations, software, and campaigns described in the text. These references may not be explicit in the text so you should be careful to account for the natural language of the text your analysis. Do not include MITRE ATT&CK ICS or MITRE ATT&CK Enterprise in the results.'
822
+ prompt_helper: 'If you are unsure, you can learn more about MITRE ATT&CK Enterprise here: https://attack.mitre.org/matrices/mobile/'
823
+ prompt_conversion: 'You should respond with only the ATT&CK ID.'
824
+ test_cases: ai_mitre_attack_mobile
825
+ stix_mapping: ctibutler-mitre-attack-mobile-id
826
+
827
+ ai_mitre_attack_ics:
828
+ type: ai
829
+ dogesec_web: true
830
+ name: 'MITRE ATT&CK ICS'
831
+ description: 'Will extract references to MITRE ATT&CK ICS objects, convert to ID, and import object from CTI Butler.'
832
+ notes: 'lookup_mitre_attack_ics_id and lookup_mitre_attack_ics_name legacy extractions also exists if you cannot use AI'
833
+ created: 2020-01-01
834
+ modified: 2020-01-01
835
+ created_by: DOGESEC
836
+ version: 1.0.0
837
+ prompt_base: 'Extract all references to MITRE ATT&CK ICS tactics, techniques, groups, data sources, mitigations, software, and campaigns described in the text. These references may not be explicit in the text so you should be careful to account for the natural language of the text your analysis. Do not include MITRE ATT&CK Mobile or MITRE ATT&CK Enterprise in the results.'
838
+ prompt_helper: 'If you are unsure, you can learn more about MITRE ATT&CK Enterprise here: https://attack.mitre.org/matrices/ics/'
839
+ prompt_conversion: 'You should respond with only the ATT&CK ID.'
840
+ test_cases: ai_mitre_attack_ics
841
+ stix_mapping: ctibutler-mitre-attack-ics-id
842
+
843
+ ####### MITRE CAPEC #######
844
+
845
+ ai_mitre_capec:
846
+ type: ai
847
+ dogesec_web: true
848
+ name: 'MITRE CAPEC ID'
849
+ description: 'Will extract references to MITRE CAPEC objects, convert to ID, and import object from CTI Butler.'
850
+ notes: 'lookup_mitre_capec_id and lookup_mitre_capec_name legacy extractions also exists if you cannot use AI'
851
+ created: 2020-01-01
852
+ modified: 2020-01-01
853
+ created_by: DOGESEC
854
+ version: 1.0.0
855
+ prompt_base: 'Extract all references to a MITRE CAPEC object from the text.'
856
+ prompt_helper: 'If you are unsure, you can learn more about MITRE CAPEC here: https://capec.mitre.org/'
857
+ prompt_conversion: 'You should respond with only the CAPEC ID.'
858
+ test_cases: ai_mitre_capec
859
+ stix_mapping: ctibutler-mitre-capec-id
860
+
861
+ ####### MITRE CWE #######
862
+
863
+ ai_mitre_cwe:
864
+ type: ai
865
+ dogesec_web: true
866
+ name: 'MITRE CWE'
867
+ description: 'Will extract references to MITRE CWE objects, convert to ID, and import object from CTI Butler.'
868
+ notes: 'lookup_mitre_cwe_id and lookup_mitre_cwe_name legacy extractions also exists if you cannot use AI'
869
+ created: 2020-01-01
870
+ modified: 2020-01-01
871
+ created_by: DOGESEC
872
+ version: 1.0.0
873
+ prompt_base: 'Extract all references to a MITRE CWE object from the text.'
874
+ prompt_helper: 'If you are unsure, you can learn more about MITRE CAPEC here: https://cwe.mitre.org/'
875
+ prompt_conversion: 'You should respond with only the CWE ID.'
876
+ test_cases: ai_mitre_cwe
877
+ stix_mapping: ctibutler-mitre-cwe-id
878
+
879
+ ####### Generic Extractions #######
880
+
881
+ ai_attack_pattern:
882
+ type: ai
883
+ dogesec_web: true
884
+ name: 'Attack Pattern'
885
+ description: 'Will extract all Attack Pattern references'
886
+ notes: 'lookup_attack_pattern legacy extraction also exists if you cannot use AI'
887
+ created: 2020-01-01
888
+ modified: 2020-01-01
889
+ created_by: DOGESEC
890
+ version: 1.0.0
891
+ prompt_base: 'Extract all Attack Patterns from the text.'
892
+ prompt_helper: 'Attack Patterns are a type of TTP that describe ways that adversaries attempt to compromise targets. Attack Patterns are used to help categorize attacks, generalize specific attacks to the patterns that they follow, and provide detailed information about how attacks are performed. An example of an attack pattern is "spear phishing": a common type of attack where an attacker sends a carefully crafted e-mail message to a party with the intent of getting them to click a link or open an attachment to deliver malware.'
893
+ prompt_conversion: 'Summarise the extraction into a short title describing the Attack Pattern'
894
+ test_cases: lookup_attack_pattern
895
+ stix_mapping: attack-pattern
896
+
897
+ ai_campaign:
898
+ type: ai
899
+ dogesec_web: true
900
+ name: 'Campaign'
901
+ description: 'Will extract all Campaign references'
902
+ notes: 'lookup_campaign legacy extraction also exists if you cannot use AI'
903
+ created: 2020-01-01
904
+ modified: 2020-01-01
905
+ created_by: DOGESEC
906
+ version: 1.0.0
907
+ prompt_base: 'Extract all Campaigns from the text.'
908
+ prompt_helper: 'A Campaign is a grouping of adversarial behaviors that describes a set of malicious activities or attacks (sometimes called waves) that occur over a period of time against a specific set of targets. Campaigns usually have well defined objectives and may be part of an Intrusion Set. Campaigns are often attributed to an intrusion set and threat actors.'
909
+ prompt_conversion: 'Summarise the extraction into the name of the Campaign'
910
+ test_cases: lookup_campaign
911
+ stix_mapping: campaign
912
+
913
+ ai_course_of_action:
914
+ type: ai
915
+ dogesec_web: true
916
+ name: 'Course of Action'
917
+ description: 'Will extract all Course of Action references'
918
+ notes: 'lookup_course_of_action legacy extraction also exists if you cannot use AI'
919
+ created: 2020-01-01
920
+ modified: 2020-01-01
921
+ created_by: DOGESEC
922
+ version: 1.0.0
923
+ prompt_base: 'Extract all Course of Actions from the text.'
924
+ prompt_helper: 'A Course of Action (CoA) is a recommendation from a producer of intelligence to a consumer on the actions that they might take in response to that intelligence. The CoA may be preventative to deter exploitation or corrective to counter its potential impact. The CoA may describe automatable actions (applying patches, configuring firewalls, etc.), manual processes, or a combination of the two. For example, a CoA that describes how to remediate a vulnerability could describe how to apply the patch that removes that vulnerability.'
925
+ prompt_conversion: 'Summarise the extraction into a short title describing the Course of Action'
926
+ test_cases: lookup_course_of_action
927
+ stix_mapping: course-of-action
928
+
929
+ ai_identity:
930
+ type: ai
931
+ dogesec_web: true
932
+ name: 'Identity'
933
+ description: 'Will extract all Identity references'
934
+ notes: 'lookup_identity legacy extraction also exists if you cannot use AI'
935
+ created: 2020-01-01
936
+ modified: 2020-01-01
937
+ created_by: DOGESEC
938
+ version: 1.0.0
939
+ prompt_base: 'Extract all Identities from the text.'
940
+ prompt_helper: 'Identities can represent actual individuals, organizations, or groups (e.g., ACME, Inc.) as well as classes of individuals, organizations, systems or groups (e.g., the finance sector).'
941
+ prompt_conversion: ''
942
+ test_cases: lookup_identity
943
+ stix_mapping: identity
944
+
945
+ ai_infrastructure:
946
+ type: ai
947
+ dogesec_web: true
948
+ name: 'Infrastructure'
949
+ description: 'Will extract all Infrastructure references'
950
+ notes: 'lookup_infrastructure legacy extraction also exists if you cannot use AI'
951
+ created: 2020-01-01
952
+ modified: 2020-01-01
953
+ created_by: DOGESEC
954
+ version: 1.0.0
955
+ prompt_base: 'Extract all Infrastructure from the text.'
956
+ prompt_helper: 'The Infrastructure SDO represents a type of TTP and describes any systems, software services and any associated physical or virtual resources intended to support some purpose (e.g., C2 servers used as part of an attack, device or server that are part of defence, database servers targeted by an attack, etc.).'
957
+ prompt_conversion: ''
958
+ test_cases: lookup_infrastructure
959
+ stix_mapping: infrastructure
960
+
961
+ ai_intrusion_set:
962
+ type: ai
963
+ dogesec_web: true
964
+ name: 'Intrusion Set'
965
+ description: 'Will extract all Intrusion Set references'
966
+ notes: 'lookup_intrusion_set legacy extraction also exists if you cannot use AI'
967
+ created: 2020-01-01
968
+ modified: 2020-01-01
969
+ created_by: DOGESEC
970
+ version: 1.0.0
971
+ prompt_base: 'Extract all Intrusion Sets from the text.'
972
+ prompt_helper: 'An Intrusion Set is a grouped set of adversarial behaviors and resources with common properties that is believed to be orchestrated by a single organization. An Intrusion Set may capture multiple Campaigns or other activities that are all tied together by shared attributes indicating a common known or unknown Threat Actor.'
973
+ prompt_conversion: 'Summarise the extraction into a short title describing the Intrusion Set'
974
+ test_cases: lookup_intrusion_set
975
+ stix_mapping: intrusion-set
976
+
977
+ ai_malware:
978
+ type: ai
979
+ dogesec_web: true
980
+ name: 'Malware'
981
+ description: 'Will extract all Malware references'
982
+ notes: 'lookup_malware legacy extraction also exists if you cannot use AI'
983
+ created: 2020-01-01
984
+ modified: 2020-01-01
985
+ created_by: DOGESEC
986
+ version: 1.0.0
987
+ prompt_base: 'Extract all Malware names from the text.'
988
+ prompt_helper: 'Malware is a type of TTP that represents malicious code. It generally refers to a program that is inserted into a system, usually covertly. The intent is to compromise the confidentiality, integrity, or availability of the victims data, applications, or operating system (OS) or otherwise annoy or disrupt the victim.'
989
+ prompt_conversion: ''
990
+ test_cases: lookup_malware
991
+ stix_mapping: malware
992
+
993
+ ai_threat_actor:
994
+ type: ai
995
+ dogesec_web: true
996
+ name: 'Threat Actor'
997
+ description: 'Will extract all Threat Actor references'
998
+ notes: 'lookup_threat_actor legacy extraction also exists if you cannot use AI'
999
+ created: 2020-01-01
1000
+ modified: 2020-01-01
1001
+ created_by: DOGESEC
1002
+ version: 1.0.0
1003
+ prompt_base: 'Extract all Threat Actor names from the text.'
1004
+ prompt_helper: 'Threat Actors are actual individuals, groups, or organizations believed to be operating with malicious intent. A Threat Actor is not an Intrusion Set but may support or be affiliated with various Intrusion Sets, groups, or organizations over time. Threat Actors can be characterized by their motives, capabilities, goals, sophistication level, past activities, resources they have access to, and their role in the organization.'
1005
+ prompt_conversion: ''
1006
+ test_cases: lookup_threat_actor
1007
+ stix_mapping: threat-actor
1008
+
1009
+ ai_tool:
1010
+ type: ai
1011
+ dogesec_web: true
1012
+ name: 'Tool'
1013
+ description: 'Will extract all Tool references'
1014
+ notes: 'lookup_tool legacy extraction also exists if you cannot use AI'
1015
+ created: 2020-01-01
1016
+ modified: 2020-01-01
1017
+ created_by: DOGESEC
1018
+ version: 1.0.0
1019
+ prompt_base: 'Extract all Software names from the text.'
1020
+ prompt_helper: 'Legitimate software that can be used by threat actors to perform attacks. Unlike malware, these software packages are often found on a system and have legitimate purposes for power users, system administrators, network administrators, or even normal users. Remote access tools (e.g., RDP) and network scanning tools (e.g., Nmap) are examples of software that may be used by a Threat Actor during an attack.'
1021
+ prompt_conversion: ''
1022
+ test_cases: lookup_tool
1023
+ stix_mapping: tool