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.
- txt2stix/__init__.py +33 -0
- txt2stix/ai_extractor/__init__.py +15 -0
- txt2stix/ai_extractor/anthropic.py +12 -0
- txt2stix/ai_extractor/base.py +87 -0
- txt2stix/ai_extractor/deepseek.py +19 -0
- txt2stix/ai_extractor/gemini.py +18 -0
- txt2stix/ai_extractor/openai.py +15 -0
- txt2stix/ai_extractor/openrouter.py +20 -0
- txt2stix/ai_extractor/prompts.py +164 -0
- txt2stix/ai_extractor/utils.py +85 -0
- txt2stix/attack_flow.py +101 -0
- txt2stix/bundler.py +428 -0
- txt2stix/common.py +23 -0
- txt2stix/extractions.py +59 -0
- txt2stix/includes/__init__.py +0 -0
- txt2stix/includes/extractions/ai/config.yaml +1023 -0
- txt2stix/includes/extractions/lookup/config.yaml +393 -0
- txt2stix/includes/extractions/pattern/config.yaml +609 -0
- txt2stix/includes/helpers/mimetype_filename_extension_list.csv +936 -0
- txt2stix/includes/helpers/stix_relationship_types.txt +41 -0
- txt2stix/includes/helpers/tlds.txt +1446 -0
- txt2stix/includes/helpers/windows_registry_key_prefix.txt +12 -0
- txt2stix/includes/lookups/_README.md +11 -0
- txt2stix/includes/lookups/_generate_lookups.py +247 -0
- txt2stix/includes/lookups/attack_pattern.txt +1 -0
- txt2stix/includes/lookups/campaign.txt +1 -0
- txt2stix/includes/lookups/country_iso3166_alpha2.txt +249 -0
- txt2stix/includes/lookups/course_of_action.txt +1 -0
- txt2stix/includes/lookups/disarm_id_v1_5.txt +345 -0
- txt2stix/includes/lookups/disarm_name_v1_5.txt +347 -0
- txt2stix/includes/lookups/extensions.txt +78 -0
- txt2stix/includes/lookups/identity.txt +1 -0
- txt2stix/includes/lookups/infrastructure.txt +1 -0
- txt2stix/includes/lookups/intrusion_set.txt +1 -0
- txt2stix/includes/lookups/malware.txt +2 -0
- txt2stix/includes/lookups/mitre_atlas_id_v4_5_2.txt +116 -0
- txt2stix/includes/lookups/mitre_atlas_name_v4_5_2.txt +117 -0
- txt2stix/includes/lookups/mitre_attack_enterprise_aliases_v16_0.txt +1502 -0
- txt2stix/includes/lookups/mitre_attack_enterprise_id_v16_0.txt +1656 -0
- txt2stix/includes/lookups/mitre_attack_enterprise_name_v16_0.txt +1765 -0
- txt2stix/includes/lookups/mitre_attack_ics_aliases_v16_0.txt +141 -0
- txt2stix/includes/lookups/mitre_attack_ics_id_v16_0.txt +254 -0
- txt2stix/includes/lookups/mitre_attack_ics_name_v16_0.txt +293 -0
- txt2stix/includes/lookups/mitre_attack_mobile_aliases_v16_0.txt +159 -0
- txt2stix/includes/lookups/mitre_attack_mobile_id_v16_0.txt +277 -0
- txt2stix/includes/lookups/mitre_attack_mobile_name_v16_0.txt +296 -0
- txt2stix/includes/lookups/mitre_capec_id_v3_9.txt +559 -0
- txt2stix/includes/lookups/mitre_capec_name_v3_9.txt +560 -0
- txt2stix/includes/lookups/mitre_cwe_id_v4_15.txt +939 -0
- txt2stix/includes/lookups/mitre_cwe_name_v4_15.txt +939 -0
- txt2stix/includes/lookups/threat_actor.txt +1 -0
- txt2stix/includes/lookups/tld.txt +1422 -0
- txt2stix/includes/lookups/tool.txt +1 -0
- txt2stix/includes/tests/test_cases.yaml +695 -0
- txt2stix/indicator.py +860 -0
- txt2stix/lookups.py +68 -0
- txt2stix/pattern/__init__.py +13 -0
- txt2stix/pattern/extractors/__init__.py +0 -0
- txt2stix/pattern/extractors/base_extractor.py +167 -0
- txt2stix/pattern/extractors/card/README.md +34 -0
- txt2stix/pattern/extractors/card/__init__.py +15 -0
- txt2stix/pattern/extractors/card/amex_card_extractor.py +52 -0
- txt2stix/pattern/extractors/card/diners_card_extractor.py +47 -0
- txt2stix/pattern/extractors/card/discover_card_extractor.py +48 -0
- txt2stix/pattern/extractors/card/jcb_card_extractor.py +43 -0
- txt2stix/pattern/extractors/card/master_card_extractor.py +63 -0
- txt2stix/pattern/extractors/card/union_card_extractor.py +38 -0
- txt2stix/pattern/extractors/card/visa_card_extractor.py +46 -0
- txt2stix/pattern/extractors/crypto/__init__.py +3 -0
- txt2stix/pattern/extractors/crypto/btc_extractor.py +38 -0
- txt2stix/pattern/extractors/directory/__init__.py +10 -0
- txt2stix/pattern/extractors/directory/unix_directory_extractor.py +40 -0
- txt2stix/pattern/extractors/directory/unix_file_path_extractor.py +42 -0
- txt2stix/pattern/extractors/directory/windows_directory_path_extractor.py +47 -0
- txt2stix/pattern/extractors/directory/windows_file_path_extractor.py +42 -0
- txt2stix/pattern/extractors/domain/__init__.py +8 -0
- txt2stix/pattern/extractors/domain/domain_extractor.py +39 -0
- txt2stix/pattern/extractors/domain/hostname_extractor.py +36 -0
- txt2stix/pattern/extractors/domain/sub_domain_extractor.py +49 -0
- txt2stix/pattern/extractors/hashes/__init__.py +16 -0
- txt2stix/pattern/extractors/hashes/md5_extractor.py +16 -0
- txt2stix/pattern/extractors/hashes/sha1_extractor.py +14 -0
- txt2stix/pattern/extractors/hashes/sha224_extractor.py +18 -0
- txt2stix/pattern/extractors/hashes/sha2_256_exactor.py +14 -0
- txt2stix/pattern/extractors/hashes/sha2_512_exactor.py +13 -0
- txt2stix/pattern/extractors/hashes/sha3_256_exactor.py +15 -0
- txt2stix/pattern/extractors/hashes/sha3_512_exactor.py +16 -0
- txt2stix/pattern/extractors/helper.py +64 -0
- txt2stix/pattern/extractors/ip/__init__.py +14 -0
- txt2stix/pattern/extractors/ip/ipv4_cidr_extractor.py +49 -0
- txt2stix/pattern/extractors/ip/ipv4_extractor.py +18 -0
- txt2stix/pattern/extractors/ip/ipv4_port_extractor.py +42 -0
- txt2stix/pattern/extractors/ip/ipv6_cidr_extractor.py +18 -0
- txt2stix/pattern/extractors/ip/ipv6_extractor.py +16 -0
- txt2stix/pattern/extractors/ip/ipv6_port_extractor.py +46 -0
- txt2stix/pattern/extractors/others/__init__.py +22 -0
- txt2stix/pattern/extractors/others/asn_extractor.py +14 -0
- txt2stix/pattern/extractors/others/cpe_extractor.py +29 -0
- txt2stix/pattern/extractors/others/cve_extractor.py +14 -0
- txt2stix/pattern/extractors/others/email_extractor.py +21 -0
- txt2stix/pattern/extractors/others/filename_extractor.py +17 -0
- txt2stix/pattern/extractors/others/iban_extractor.py +15 -0
- txt2stix/pattern/extractors/others/mac_address_extractor.py +13 -0
- txt2stix/pattern/extractors/others/phonenumber_extractor.py +41 -0
- txt2stix/pattern/extractors/others/user_agent_extractor.py +20 -0
- txt2stix/pattern/extractors/others/windows_registry_key_extractor.py +18 -0
- txt2stix/pattern/extractors/url/__init__.py +7 -0
- txt2stix/pattern/extractors/url/url_extractor.py +22 -0
- txt2stix/pattern/extractors/url/url_file_extractor.py +21 -0
- txt2stix/pattern/extractors/url/url_path_extractor.py +74 -0
- txt2stix/retriever.py +126 -0
- txt2stix/stix.py +1 -0
- txt2stix/txt2stix.py +336 -0
- txt2stix/utils.py +86 -0
- txt2stix-0.0.4.dist-info/METADATA +190 -0
- txt2stix-0.0.4.dist-info/RECORD +119 -0
- txt2stix-0.0.4.dist-info/WHEEL +4 -0
- txt2stix-0.0.4.dist-info/entry_points.txt +2 -0
- 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
|