pymisp 2.5.10__py3-none-any.whl → 2.5.17__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.

Potentially problematic release.


This version of pymisp might be problematic. Click here for more details.

pymisp/__init__.py CHANGED
@@ -77,7 +77,7 @@ __all__ = ['PyMISP', 'register_user', 'AbstractMISP', 'MISPTag',
77
77
  'MISPOrganisationBlocklist', 'MISPEventReport', 'MISPCorrelationExclusion',
78
78
  'MISPDecayingModel', 'MISPGalaxy', 'MISPGalaxyCluster', 'MISPGalaxyClusterElement',
79
79
  'MISPGalaxyClusterRelation', 'MISPNote', 'MISPOpinion', 'MISPRelationship',
80
- 'PyMISPError', 'NewEventError', 'NewAttributeError',
80
+ 'PyMISPError', 'NewEventError', 'NewAttributeError', 'MISPServerError',
81
81
  'NoURL', 'NoKey', 'InvalidMISPObject', 'UnknownMISPObjectTemplate', 'PyMISPInvalidFormat',
82
82
  'Distribution', 'ThreatLevel', 'Analysis', 'ExpandedPyMISP'
83
83
  ]
pymisp/abstract.py CHANGED
@@ -383,7 +383,7 @@ class MISPTag(AbstractMISP):
383
383
 
384
384
  def from_dict(self, **kwargs) -> None: # type: ignore[no-untyped-def]
385
385
  if kwargs.get('Tag'):
386
- kwargs = kwargs.get('Tag') # type: ignore[assignment]
386
+ kwargs = kwargs.get('Tag')
387
387
  super().from_dict(**kwargs)
388
388
 
389
389
  def _set_default(self) -> None:
pymisp/api.py CHANGED
@@ -129,10 +129,10 @@ def brotli_supported() -> bool:
129
129
  # urllib >= 1.25.1 includes brotli support
130
130
  version_splitted = version('urllib3').split('.') # noqa: F811
131
131
  if len(version_splitted) == 2:
132
- major, minor = version_splitted # type: ignore
132
+ major, minor = version_splitted
133
133
  patch = 0
134
134
  else:
135
- major, minor, patch = version_splitted # type: ignore
135
+ major, minor, patch = version_splitted
136
136
  major, minor, patch = int(major), int(minor), int(patch)
137
137
  urllib3_with_brotli = (major == 1 and ((minor == 25 and patch >= 1) or (minor >= 26))) or major >= 2
138
138
 
@@ -1050,7 +1050,7 @@ class PyMISP:
1050
1050
  # At this point, we assume the user tried to add an attribute on an event they don't own
1051
1051
  # Re-try with a proposal
1052
1052
  if isinstance(attribute, (MISPAttribute, dict)):
1053
- return self.add_attribute_proposal(event_id, attribute, pythonify) # type: ignore
1053
+ return self.add_attribute_proposal(event_id, attribute, pythonify)
1054
1054
  if not (self.global_pythonify or pythonify) or 'errors' in new_attribute:
1055
1055
  return new_attribute
1056
1056
  a = MISPAttribute()
@@ -1563,7 +1563,7 @@ class PyMISP:
1563
1563
  if isinstance(warninglist_id, list):
1564
1564
  query['id'] = warninglist_id
1565
1565
  else:
1566
- query['id'] = [warninglist_id] # type: ignore
1566
+ query['id'] = [warninglist_id]
1567
1567
  if warninglist_name is not None:
1568
1568
  if isinstance(warninglist_name, list):
1569
1569
  query['name'] = warninglist_name
@@ -3032,7 +3032,7 @@ class PyMISP:
3032
3032
  if return_format == 'csv':
3033
3033
  normalized_response_text = self._check_response(response)
3034
3034
  if (self.global_pythonify or pythonify) and not headerless:
3035
- return self._csv_to_dict(normalized_response_text) # type: ignore
3035
+ return self._csv_to_dict(normalized_response_text)
3036
3036
  else:
3037
3037
  return normalized_response_text
3038
3038
  elif return_format not in ['json', 'yara-json']:
@@ -3060,7 +3060,7 @@ class PyMISP:
3060
3060
  to_return.append(me)
3061
3061
  elif controller == 'attributes':
3062
3062
  # FIXME: obvs, this is hurting my soul. We need something generic.
3063
- for a in normalized_response['Attribute']: # type: ignore[call-overload]
3063
+ for a in normalized_response['Attribute']:
3064
3064
  ma = MISPAttribute()
3065
3065
  ma.from_dict(**a)
3066
3066
  if 'Event' in ma:
@@ -88,9 +88,9 @@
88
88
  "ui-priority": 1
89
89
  }
90
90
  },
91
- "description": "A case as defined by flowintel-cm.",
91
+ "description": "A case as defined by flowintel.",
92
92
  "meta-category": "misc",
93
- "name": "flowintel-cm-case",
93
+ "name": "flowintel-case",
94
94
  "uuid": "19df57c7-b315-4fd2-84e5-d81ab221425e",
95
- "version": 3
95
+ "version": 4
96
96
  }
@@ -78,9 +78,9 @@
78
78
  "ui-priority": 0
79
79
  }
80
80
  },
81
- "description": "A task as defined by flowintel-cm.",
81
+ "description": "A task as defined by flowintel.",
82
82
  "meta-category": "misc",
83
- "name": "flowintel-cm-task",
83
+ "name": "flowintel-task",
84
84
  "uuid": "2f525f6e-d3f2-4cb9-9ca0-f1160d99397d",
85
- "version": 4
85
+ "version": 5
86
86
  }
@@ -27,9 +27,9 @@
27
27
  "ui-priority": 2
28
28
  }
29
29
  },
30
- "description": "A task's note as defined by flowintel-cm.",
30
+ "description": "A task's note as defined by flowintel.",
31
31
  "meta-category": "misc",
32
- "name": "flowintel-cm-task-note",
32
+ "name": "flowintel-task-note",
33
33
  "uuid": "2c6f6aba-48b6-482f-a810-81934d29be9a",
34
- "version": 1
34
+ "version": 2
35
35
  }
@@ -0,0 +1,35 @@
1
+ {
2
+ "attributes": {
3
+ "origin-url": {
4
+ "description": "Origin of the task",
5
+ "disable_correlation": true,
6
+ "misp-attribute": "url",
7
+ "to_ids": false,
8
+ "ui-priority": 1
9
+ },
10
+ "resource": {
11
+ "description": "Resources of the task",
12
+ "disable_correlation": true,
13
+ "misp-attribute": "text",
14
+ "to_ids": false,
15
+ "ui-priority": 0
16
+ },
17
+ "resource-uuid": {
18
+ "description": "UUID of the resource",
19
+ "disable_correlation": true,
20
+ "misp-attribute": "text",
21
+ "ui-priority": 2
22
+ },
23
+ "task-uuid": {
24
+ "description": "UUID of the parent task",
25
+ "disable_correlation": true,
26
+ "misp-attribute": "text",
27
+ "ui-priority": 2
28
+ }
29
+ },
30
+ "description": "A task's note as defined by flowintel.",
31
+ "meta-category": "misc",
32
+ "name": "flowintel-task-resource",
33
+ "uuid": "dc1d5bae-3611-499c-bbd6-1ca3ad4048dd",
34
+ "version": 1
35
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "attributes": {
3
+ "description": {
4
+ "description": "Action description",
5
+ "misp-attribute": "text",
6
+ "ui-priority": 1
7
+ },
8
+ "filters": {
9
+ "description": "Restrictions on the trigger",
10
+ "misp-attribute": "text",
11
+ "multiple": true,
12
+ "ui-priority": 1
13
+ },
14
+ "inputs": {
15
+ "description": "Inputs of the workflow",
16
+ "misp-attribute": "text",
17
+ "multiple": true,
18
+ "ui-priority": 1
19
+ },
20
+ "jobs": {
21
+ "description": "Jobs defined in the workflow",
22
+ "misp-attribute": "text",
23
+ "multiple": true,
24
+ "ui-priority": 1
25
+ },
26
+ "name": {
27
+ "description": "Name of the action.",
28
+ "misp-attribute": "text",
29
+ "ui-priority": 1
30
+ },
31
+ "notes": {
32
+ "description": "Any other informations",
33
+ "misp-attribute": "text",
34
+ "multiple": true,
35
+ "ui-priority": 1
36
+ },
37
+ "outputs": {
38
+ "description": "Outputs generated in the workflow",
39
+ "misp-attribute": "text",
40
+ "multiple": true,
41
+ "ui-priority": 1
42
+ },
43
+ "trigger": {
44
+ "description": "How is the action trigerred.",
45
+ "misp-attribute": "text",
46
+ "multiple": true,
47
+ "ui-priority": 1
48
+ }
49
+ },
50
+ "description": "GitHub Actions",
51
+ "meta-category": "misc",
52
+ "name": "github-action",
53
+ "requiredOneOf": [
54
+ "name",
55
+ "description"
56
+ ],
57
+ "uuid": "3331aaf4-1007-454e-ba7b-6f39ad67decb",
58
+ "version": 1
59
+ }
@@ -0,0 +1,116 @@
1
+ {
2
+ "attributes": {
3
+ "account-id": {
4
+ "description": "Google Account ID.",
5
+ "misp-attribute": "text",
6
+ "ui-priority": 1
7
+ },
8
+ "alternate-e-mails": {
9
+ "description": "Alternate e-mails associated with the main e-mail.",
10
+ "misp-attribute": "email-src",
11
+ "multiple": true,
12
+ "ui-priority": 1
13
+ },
14
+ "contact-e-mail": {
15
+ "description": "Account recovery contact e-mail.",
16
+ "misp-attribute": "email-src",
17
+ "ui-priority": 1
18
+ },
19
+ "created-on": {
20
+ "description": "The date and time the account was created.",
21
+ "disable_correlation": true,
22
+ "misp-attribute": "datetime",
23
+ "ui-priority": 1
24
+ },
25
+ "creation-ip": {
26
+ "description": "The IP address used to create the account.",
27
+ "disable_correlation": false,
28
+ "misp-attribute": "ip-src",
29
+ "ui-priority": 1
30
+ },
31
+ "deletion-date": {
32
+ "description": "The date and time the account was deleted.",
33
+ "disable_correlation": true,
34
+ "misp-attribute": "datetime",
35
+ "ui-priority": 1
36
+ },
37
+ "e-mail": {
38
+ "description": "The main e-mail associated with the Google ID.",
39
+ "misp-attribute": "email-src",
40
+ "ui-priority": 1
41
+ },
42
+ "end-of-service-date": {
43
+ "description": "The date and time the service was terminated.",
44
+ "disable_correlation": true,
45
+ "misp-attribute": "datetime",
46
+ "ui-priority": 1
47
+ },
48
+ "last-logins-date": {
49
+ "description": "The dates and times of the user's most recent logins.",
50
+ "disable_correlation": true,
51
+ "misp-attribute": "datetime",
52
+ "multiple": true,
53
+ "ui-priority": 1
54
+ },
55
+ "last-updated-date": {
56
+ "description": "The date and time the account was last updated.",
57
+ "disable_correlation": true,
58
+ "misp-attribute": "datetime",
59
+ "ui-priority": 1
60
+ },
61
+ "login-ip": {
62
+ "description": "The IP addresses used to login into the account.",
63
+ "disable_correlation": false,
64
+ "misp-attribute": "ip-src",
65
+ "multiple": true,
66
+ "ui-priority": 1
67
+ },
68
+ "name": {
69
+ "description": "The full name of the person associated with the Google ID.",
70
+ "misp-attribute": "full-name",
71
+ "ui-priority": 1
72
+ },
73
+ "recovery-e-mail": {
74
+ "description": "Account recovery e-mail.",
75
+ "misp-attribute": "email-src",
76
+ "ui-priority": 1
77
+ },
78
+ "recovery-sms": {
79
+ "description": "Account recovery phone number.",
80
+ "misp-attribute": "phone-number",
81
+ "ui-priority": 1
82
+ },
83
+ "related-links": {
84
+ "description": "Any link to a page containing information about this Google user.",
85
+ "misp-attribute": "link",
86
+ "multiple": true,
87
+ "ui-priority": 1
88
+ },
89
+ "services": {
90
+ "description": "Services associated with the Google Account ID.",
91
+ "disable_correlation": true,
92
+ "misp-attribute": "text",
93
+ "ui-priority": 1
94
+ },
95
+ "user-avatar": {
96
+ "description": "A user profile picture or avatar.",
97
+ "misp-attribute": "attachment",
98
+ "multiple": true,
99
+ "ui-priority": 1
100
+ },
101
+ "user-description": {
102
+ "description": "A description of the user.",
103
+ "misp-attribute": "text",
104
+ "ui-priority": 1
105
+ }
106
+ },
107
+ "description": "An object containing subscriber information received from Google.",
108
+ "meta-category": "misc",
109
+ "name": "google-account",
110
+ "requiredOneOf": [
111
+ "account-id",
112
+ "e-mail"
113
+ ],
114
+ "uuid": "1d795bfa-29ae-433c-b23a-bb5a1c77e944",
115
+ "version": 1
116
+ }
@@ -4,59 +4,107 @@
4
4
  "description": "GreyNoise Actor",
5
5
  "disable_correlation": true,
6
6
  "misp-attribute": "text",
7
+ "ui-priority": 4
8
+ },
9
+ "asn": {
10
+ "description": "GreyNoise ASN",
11
+ "disable_correlation": true,
12
+ "misp-attribute": "AS",
13
+ "ui-priority": 3
14
+ },
15
+ "bot": {
16
+ "description": "GreyNoise Is Bot Flag",
17
+ "disable_correlation": true,
18
+ "misp-attribute": "boolean",
7
19
  "ui-priority": 1
8
20
  },
9
21
  "classification": {
10
22
  "description": "GreyNoise Classification",
11
23
  "disable_correlation": true,
12
24
  "misp-attribute": "text",
13
- "ui-priority": 1
25
+ "ui-priority": 6
26
+ },
27
+ "domain": {
28
+ "description": "GreyNoise Domain",
29
+ "disable_correlation": false,
30
+ "misp-attribute": "domain",
31
+ "ui-priority": 6
14
32
  },
15
33
  "first-seen": {
16
34
  "description": "First Seen",
17
35
  "disable_correlation": true,
18
36
  "misp-attribute": "datetime",
19
- "ui-priority": 2
37
+ "ui-priority": 5
20
38
  },
21
39
  "ip-src": {
22
40
  "description": "Source IP address of the network connection.",
23
41
  "misp-attribute": "ip-src",
24
- "ui-priority": 1
42
+ "ui-priority": 7
25
43
  },
26
44
  "last-seen": {
27
45
  "description": "Last Seen",
28
46
  "disable_correlation": true,
29
47
  "misp-attribute": "datetime",
30
- "ui-priority": 1
48
+ "ui-priority": 5
31
49
  },
32
50
  "link": {
33
51
  "description": "GreyNoise Visualizer Link",
34
52
  "disable_correlation": true,
35
53
  "misp-attribute": "link",
36
- "ui-priority": 2
54
+ "ui-priority": 4
37
55
  },
38
56
  "noise": {
39
57
  "description": "GreyNoise Internet Scanning Flag",
40
58
  "disable_correlation": true,
41
59
  "misp-attribute": "text",
42
- "ui-priority": 1
60
+ "ui-priority": 4
43
61
  },
44
62
  "provider": {
45
63
  "description": "GreyNoise Service Provider",
46
64
  "disable_correlation": true,
47
65
  "misp-attribute": "text",
48
- "ui-priority": 1
66
+ "ui-priority": 4
67
+ },
68
+ "rdns": {
69
+ "description": "GreyNoise Reverse DNS Hostname",
70
+ "disable_correlation": false,
71
+ "misp-attribute": "hostname",
72
+ "ui-priority": 2
73
+ },
74
+ "rdns_parent": {
75
+ "description": "GreyNoise Reverse DNS Domain",
76
+ "disable_correlation": true,
77
+ "misp-attribute": "domain",
78
+ "ui-priority": 2
49
79
  },
50
80
  "riot": {
51
81
  "description": "GreyNoise Common Business Service Flag",
52
82
  "disable_correlation": true,
53
83
  "misp-attribute": "text",
84
+ "ui-priority": 4
85
+ },
86
+ "source_country": {
87
+ "description": "GreyNoise Source Country",
88
+ "disable_correlation": true,
89
+ "misp-attribute": "text",
90
+ "ui-priority": 3
91
+ },
92
+ "tor": {
93
+ "description": "GreyNoise Is Tor Flag",
94
+ "disable_correlation": true,
95
+ "misp-attribute": "boolean",
54
96
  "ui-priority": 1
55
97
  },
56
98
  "trust-level": {
57
99
  "description": "GreyNoise RIOT Trust Level",
58
100
  "disable_correlation": true,
59
101
  "misp-attribute": "text",
102
+ "ui-priority": 4
103
+ },
104
+ "vpn": {
105
+ "description": "GreyNoise Is VPN Flag",
106
+ "disable_correlation": true,
107
+ "misp-attribute": "boolean",
60
108
  "ui-priority": 1
61
109
  }
62
110
  },
@@ -67,5 +115,5 @@
67
115
  "ip-src"
68
116
  ],
69
117
  "uuid": "6B14A94A-46E4-4B82-B24D-0DBF8E8B3FD9",
70
- "version": 1
118
+ "version": 2
71
119
  }
@@ -0,0 +1,167 @@
1
+ {
2
+ "attributes": {
3
+ "counter": {
4
+ "description": "counter (ex.: bytes, packets, flows, events, etc)",
5
+ "disable_correlation": true,
6
+ "misp-attribute": "counter",
7
+ "multiple": true,
8
+ "ui-priority": 3
9
+ },
10
+ "data": {
11
+ "description": "network traffic (ex.: payload, log lines, etc)",
12
+ "disable_correlation": true,
13
+ "misp-attribute": "text",
14
+ "multiple": true,
15
+ "ui-priority": 0
16
+ },
17
+ "description": {
18
+ "categories": [
19
+ "Network activity",
20
+ "External analysis"
21
+ ],
22
+ "description": "describe type/content of the network data",
23
+ "disable_correlation": true,
24
+ "misp-attribute": "text",
25
+ "multiple": true,
26
+ "ui-priority": 15
27
+ },
28
+ "dst_ASN": {
29
+ "categories": [
30
+ "Network activity",
31
+ "External analysis"
32
+ ],
33
+ "description": "destination autonomous system number",
34
+ "disable_correlation": true,
35
+ "misp-attribute": "AS",
36
+ "multiple": true,
37
+ "ui-priority": 8
38
+ },
39
+ "dst_CC": {
40
+ "categories": [
41
+ "Network activity",
42
+ "External analysis"
43
+ ],
44
+ "description": "destination country code",
45
+ "disable_correlation": true,
46
+ "misp-attribute": "text",
47
+ "multiple": true,
48
+ "ui-priority": 9
49
+ },
50
+ "dst_IP": {
51
+ "categories": [
52
+ "Network activity",
53
+ "External analysis"
54
+ ],
55
+ "description": "destination IP address",
56
+ "misp-attribute": "ip-dst",
57
+ "multiple": true,
58
+ "ui-priority": 7
59
+ },
60
+ "dst_hostname": {
61
+ "categories": [
62
+ "Network activity",
63
+ "External analysis"
64
+ ],
65
+ "description": "destination hostname",
66
+ "misp-attribute": "hostname",
67
+ "multiple": true,
68
+ "ui-priority": 5
69
+ },
70
+ "dst_port": {
71
+ "categories": [
72
+ "Network activity",
73
+ "External analysis"
74
+ ],
75
+ "description": "destination port",
76
+ "disable_correlation": true,
77
+ "misp-attribute": "port",
78
+ "multiple": true,
79
+ "ui-priority": 6
80
+ },
81
+ "first_seen": {
82
+ "description": "timestamp of the first data seen",
83
+ "disable_correlation": true,
84
+ "misp-attribute": "datetime",
85
+ "ui-priority": 2
86
+ },
87
+ "last_seen": {
88
+ "description": "timestamp of the last data seen",
89
+ "disable_correlation": true,
90
+ "misp-attribute": "datetime",
91
+ "ui-priority": 1
92
+ },
93
+ "protocol": {
94
+ "categories": [
95
+ "Network activity",
96
+ "External analysis"
97
+ ],
98
+ "description": "protocol (ex.: TCP, UDP, ICMP, TLS, HTTP, HTTPS, SIP, etc)",
99
+ "disable_correlation": true,
100
+ "misp-attribute": "text",
101
+ "multiple": true,
102
+ "ui-priority": 4
103
+ },
104
+ "src_ASN": {
105
+ "categories": [
106
+ "Network activity",
107
+ "External analysis"
108
+ ],
109
+ "description": "source autonomous system number",
110
+ "disable_correlation": true,
111
+ "misp-attribute": "AS",
112
+ "multiple": true,
113
+ "ui-priority": 13
114
+ },
115
+ "src_CC": {
116
+ "categories": [
117
+ "Network activity",
118
+ "External analysis"
119
+ ],
120
+ "description": "source country code",
121
+ "disable_correlation": true,
122
+ "misp-attribute": "text",
123
+ "multiple": true,
124
+ "ui-priority": 14
125
+ },
126
+ "src_IP": {
127
+ "categories": [
128
+ "Network activity",
129
+ "External analysis"
130
+ ],
131
+ "description": "source IP address",
132
+ "misp-attribute": "ip-src",
133
+ "multiple": true,
134
+ "ui-priority": 12
135
+ },
136
+ "src_hostname": {
137
+ "categories": [
138
+ "Network activity",
139
+ "External analysis"
140
+ ],
141
+ "description": "source hostname",
142
+ "misp-attribute": "hostname",
143
+ "multiple": true,
144
+ "ui-priority": 10
145
+ },
146
+ "src_port": {
147
+ "categories": [
148
+ "Network activity",
149
+ "External analysis"
150
+ ],
151
+ "description": "source port",
152
+ "disable_correlation": true,
153
+ "misp-attribute": "port",
154
+ "multiple": true,
155
+ "ui-priority": 11
156
+ }
157
+ },
158
+ "description": "network data, including payloads/logs, relevant timestamps, data volume and enrichment of the TCP/IP 5-tuple connection information.",
159
+ "meta-category": "network",
160
+ "name": "network-data",
161
+ "requiredOneOf": [
162
+ "src_IP",
163
+ "data"
164
+ ],
165
+ "uuid": "64d5949b-98ac-459d-83b8-4688f45795de",
166
+ "version": 2
167
+ }
@@ -9,6 +9,7 @@
9
9
  "STIX 1.1",
10
10
  "STIX 1.2",
11
11
  "STIX 2.0",
12
+ "STIX 2.1",
12
13
  "OpenIOC"
13
14
  ],
14
15
  "ui-priority": 1
@@ -27,7 +27,9 @@
27
27
  "Google search query",
28
28
  "Ariel Query Language (qradar)",
29
29
  "Grep",
30
- "Devo LINQ"
30
+ "Devo LINQ",
31
+ "Microsoft Defender XDR",
32
+ "Sentinel Advanced Security Information Model"
31
33
  ],
32
34
  "ui-priority": 0
33
35
  },
@@ -49,5 +51,5 @@
49
51
  "query"
50
52
  ],
51
53
  "uuid": "006539b3-f68a-4a02-a213-e600762d39b5",
52
- "version": 3
54
+ "version": 4
53
55
  }
@@ -0,0 +1,90 @@
1
+ {
2
+ "attributes": {
3
+ "description": {
4
+ "description": "Description of the text summarised.",
5
+ "disable_correlation": true,
6
+ "misp-attribute": "text",
7
+ "ui-priority": 1
8
+ },
9
+ "original-text": {
10
+ "description": "Original text before any processing.",
11
+ "disable_correlation": true,
12
+ "misp-attribute": "attachment",
13
+ "ui-priority": 0
14
+ },
15
+ "original-text-timestamp": {
16
+ "description": "Publication date of the original text (not related to the processing).",
17
+ "disable_correlation": true,
18
+ "misp-attribute": "datetime",
19
+ "ui-priority": 1
20
+ },
21
+ "original-url": {
22
+ "description": "URL of the original text.",
23
+ "disable_correlation": true,
24
+ "misp-attribute": "link",
25
+ "ui-priority": 1
26
+ },
27
+ "summariser-model": {
28
+ "description": "Model used for the summariser",
29
+ "misp-attribute": "text",
30
+ "multiple": true,
31
+ "sane_default": [
32
+ "gpt-3.5-turbo",
33
+ "gpt-3.5-turbo-16k",
34
+ "gpt-3.5-turbo-0125 (16k)",
35
+ "gpt-4",
36
+ "gpt-4-turbo",
37
+ "gpt-4-o",
38
+ "gpt-4o-mini",
39
+ "o3-mini"
40
+ ],
41
+ "ui-priority": 0
42
+ },
43
+ "summariser-timestamp": {
44
+ "description": "Date when the summary was produced.",
45
+ "disable_correlation": true,
46
+ "misp-attribute": "datetime",
47
+ "ui-priority": 0
48
+ },
49
+ "summariser-version": {
50
+ "description": "Version of the code used for the summariser.",
51
+ "disable_correlation": true,
52
+ "misp-attribute": "text",
53
+ "ui-priority": 0
54
+ },
55
+ "summary": {
56
+ "description": "Summary of the original text by the AI-based or NLP-based summariser.",
57
+ "disable_correlation": true,
58
+ "misp-attribute": "text",
59
+ "ui-priority": 0
60
+ },
61
+ "tcode": {
62
+ "description": "MITRE ATT&CK Technique ID extracted by the AI-based or NLP-based summariser.",
63
+ "disable_correlation": true,
64
+ "misp-attribute": "text",
65
+ "multiple": true,
66
+ "ui-priority": 0
67
+ },
68
+ "title": {
69
+ "description": "Title of the text summarised.",
70
+ "disable_correlation": true,
71
+ "misp-attribute": "text",
72
+ "ui-priority": 0
73
+ },
74
+ "ttp": {
75
+ "description": "TTP of the original text extracted by the AI-based or NLP-based summariser.",
76
+ "disable_correlation": true,
77
+ "misp-attribute": "text",
78
+ "multiple": true,
79
+ "ui-priority": 0
80
+ }
81
+ },
82
+ "description": "Summariser output from an AI-based or NLP summariser.",
83
+ "meta-category": "misc",
84
+ "name": "summariser-output",
85
+ "required": [
86
+ "summary"
87
+ ],
88
+ "uuid": "38633d19-123a-4b0f-bc4a-ccb381e58e49",
89
+ "version": 1
90
+ }
pymisp/mispevent.py CHANGED
@@ -2,9 +2,9 @@ from __future__ import annotations
2
2
 
3
3
  from datetime import timezone, datetime, date
4
4
  import copy
5
+ from dateutil.parser import parse
5
6
  import os
6
7
  import base64
7
- import sys
8
8
  from io import BytesIO, BufferedIOBase, TextIOBase
9
9
  from zipfile import ZipFile
10
10
  import uuid
@@ -111,12 +111,6 @@ class AnalystDataBehaviorMixin(AbstractMISP):
111
111
  self.add_relationship(**relationship)
112
112
 
113
113
 
114
- try:
115
- from dateutil.parser import parse
116
- except ImportError:
117
- logger.exception("Cannot import dateutil")
118
-
119
-
120
114
  def _make_datetime(value: int | float | str | datetime | date) -> datetime:
121
115
  if isinstance(value, (int, float)):
122
116
  # Timestamp
@@ -126,7 +120,7 @@ def _make_datetime(value: int | float | str | datetime | date) -> datetime:
126
120
  # faster
127
121
  value = datetime.fromisoformat(value)
128
122
  except Exception:
129
- value = parse(value) # type: ignore[arg-type]
123
+ value = parse(value)
130
124
  elif isinstance(value, datetime):
131
125
  pass
132
126
  elif isinstance(value, date): # NOTE: date has to be *after* datetime, or it will be overwritten
@@ -399,7 +393,7 @@ class MISPAttribute(AnalystDataBehaviorMixin):
399
393
  if self.type == 'malware-sample':
400
394
  try:
401
395
  # Ignore type, if data is None -> exception
402
- with ZipFile(self.data) as f: # type: ignore
396
+ with ZipFile(self.data) as f:
403
397
  if not self.__is_misp_encrypted_file(f):
404
398
  raise PyMISPError('Not an existing malware sample')
405
399
  for name in f.namelist():
@@ -415,7 +409,12 @@ class MISPAttribute(AnalystDataBehaviorMixin):
415
409
 
416
410
  def __setattr__(self, name: str, value: Any) -> None:
417
411
  if name in ['first_seen', 'last_seen']:
418
- _datetime = _make_datetime(value)
412
+ try:
413
+ _datetime = _make_datetime(value)
414
+ except Exception:
415
+ if value is not None:
416
+ logger.warning(f'Invalid value ({value}) for {name}, skipping.')
417
+ return None
419
418
 
420
419
  # NOTE: the two following should be exceptions, but there are existing events in this state,
421
420
  # And we cannot dump them if it is there.
@@ -488,7 +487,7 @@ class MISPAttribute(AnalystDataBehaviorMixin):
488
487
  return self._malware_binary
489
488
  elif hasattr(self, 'malware_filename'):
490
489
  # Have a binary, but didn't decrypt it yet
491
- with ZipFile(self.data) as f: # type: ignore
490
+ with ZipFile(self.data) as f:
492
491
  for name in f.namelist():
493
492
  if not name.endswith('.filename.txt'):
494
493
  with f.open(name, pwd=b'infected') as unpacked:
@@ -585,18 +584,13 @@ class MISPAttribute(AnalystDataBehaviorMixin):
585
584
  if self.type == 'datetime' and isinstance(self.value, str):
586
585
  try:
587
586
  # Faster
588
- if sys.version_info >= (3, 7):
589
- self.value = datetime.fromisoformat(self.value)
590
- else:
591
- if '+' in self.value or '-' in self.value:
592
- self.value = datetime.strptime(self.value, "%Y-%m-%dT%H:%M:%S.%f%z")
593
- elif '.' in self.value:
594
- self.value = datetime.strptime(self.value, "%Y-%m-%dT%H:%M:%S.%f")
595
- else:
596
- self.value = datetime.strptime(self.value, "%Y-%m-%dT%H:%M:%S")
587
+ self.value = datetime.fromisoformat(self.value)
597
588
  except ValueError:
598
589
  # Slower, but if the other ones fail, that's a good fallback
599
- self.value = parse(self.value)
590
+ try:
591
+ self.value = parse(self.value)
592
+ except Exception:
593
+ raise NewAttributeError(f'{self.value} is not a valid datetime, the attribute is broken.')
600
594
 
601
595
  # Default values
602
596
  self.category = kwargs.pop('category', type_defaults['default_category'])
@@ -862,7 +856,12 @@ class MISPObject(AnalystDataBehaviorMixin):
862
856
 
863
857
  def __setattr__(self, name: str, value: Any) -> None:
864
858
  if name in ['first_seen', 'last_seen']:
865
- value = _make_datetime(value)
859
+ try:
860
+ value = _make_datetime(value)
861
+ except Exception:
862
+ if value is not None:
863
+ logger.warning(f'Invalid value ({value}) for {name}, skipping.')
864
+ return None
866
865
 
867
866
  if name == 'last_seen' and hasattr(self, 'first_seen') and self.first_seen > value:
868
867
  logger.warning(f'last_seen ({value}) has to be after first_seen ({self.first_seen})')
@@ -1732,14 +1731,14 @@ class MISPEvent(AnalystDataBehaviorMixin):
1732
1731
  event_report.pop('distribution', None)
1733
1732
  event_report.pop('SharingGroup', None)
1734
1733
  event_report.pop('sharing_group_id', None)
1735
- to_return['EventReport'].append(event_report.to_dict())
1734
+ to_return['EventReport'].append(event_report._to_feed())
1736
1735
 
1737
1736
  if with_cryptographic_keys and self.cryptographic_keys:
1738
1737
  to_return['CryptographicKey'] = []
1739
1738
  for cryptographic_key in self.cryptographic_keys:
1740
1739
  cryptographic_key.pop('parent_id', None)
1741
1740
  cryptographic_key.pop('id', None)
1742
- to_return['CryptographicKey'].append(cryptographic_key.to_dict())
1741
+ to_return['CryptographicKey'].append(cryptographic_key._to_feed())
1743
1742
 
1744
1743
  return {'Event': to_return}
1745
1744
 
@@ -1855,7 +1854,10 @@ class MISPEvent(AnalystDataBehaviorMixin):
1855
1854
  # faster
1856
1855
  value = date.fromisoformat(value)
1857
1856
  except Exception:
1858
- value = parse(value).date()
1857
+ try:
1858
+ value = parse(value).date()
1859
+ except Exception as e:
1860
+ raise NewEventError(f'Invalid format for the date: {e} - {type(value)} - {value}')
1859
1861
  elif isinstance(value, (int, float)):
1860
1862
  value = date.fromtimestamp(value)
1861
1863
  elif isinstance(value, datetime):
@@ -1871,7 +1873,7 @@ class MISPEvent(AnalystDataBehaviorMixin):
1871
1873
  :param ignore_invalid: if True, assigns current date if d is not an expected type
1872
1874
  """
1873
1875
  if isinstance(d, (str, int, float, datetime, date)):
1874
- self.date = d # type: ignore
1876
+ self.date = d
1875
1877
  elif ignore_invalid:
1876
1878
  self.date = date.today()
1877
1879
  else:
@@ -1938,7 +1940,7 @@ class MISPEvent(AnalystDataBehaviorMixin):
1938
1940
  for rel_event in kwargs.pop('RelatedEvent'):
1939
1941
  sub_event = MISPEvent()
1940
1942
  sub_event.load(rel_event)
1941
- self.RelatedEvent.append({'Event': sub_event}) # type: ignore[arg-type]
1943
+ self.RelatedEvent.append({'Event': sub_event})
1942
1944
  if kwargs.get('Tag'):
1943
1945
  [self.add_tag(tag) for tag in kwargs.pop('Tag')]
1944
1946
  if kwargs.get('Object'):
@@ -10,7 +10,7 @@ from email import policy, message_from_bytes
10
10
  from email.message import EmailMessage
11
11
  from io import BytesIO
12
12
  from pathlib import Path
13
- from typing import cast, Any
13
+ from typing import Any
14
14
 
15
15
  from extract_msg import openMsg
16
16
  from extract_msg.msg_classes import MessageBase
@@ -50,7 +50,6 @@ class EMailObject(AbstractMISPObjectGenerator):
50
50
  eml = message_from_bytes(content_in_bytes,
51
51
  _class=EmailMessage,
52
52
  policy=policy.default)
53
- eml = cast(EmailMessage, eml) # Only needed to quiet mypy
54
53
  if len(eml) != 0:
55
54
  self.raw_emails['eml'] = self.__pseudofile
56
55
  return eml
@@ -73,7 +72,6 @@ class EMailObject(AbstractMISPObjectGenerator):
73
72
  eml_bytes = content_in_bytes.decode("utf_8_sig").encode("utf-8")
74
73
  eml = email.message_from_bytes(eml_bytes,
75
74
  policy=policy.default)
76
- eml = cast(EmailMessage, eml) # Only needed to quiet mypy
77
75
  if len(eml) != 0:
78
76
  self.raw_emails['eml'] = BytesIO(eml_bytes)
79
77
  return eml
@@ -99,7 +97,7 @@ class EMailObject(AbstractMISPObjectGenerator):
99
97
  def _msg_to_eml(self, msg_bytes: bytes) -> EmailMessage:
100
98
  """Converts a msg into an eml."""
101
99
  # NOTE: openMsg returns a MessageBase, not a MSGFile
102
- msg_obj: MessageBase = openMsg(msg_bytes) # type: ignore
100
+ msg_obj: MessageBase = openMsg(msg_bytes)
103
101
  # msg obj stores the original raw header here
104
102
  message, body, attachments = self._extract_msg_objects(msg_obj)
105
103
  eml = self._build_eml(message, body, attachments)
@@ -107,7 +105,7 @@ class EMailObject(AbstractMISPObjectGenerator):
107
105
 
108
106
  def _extract_msg_objects(self, msg_obj: MessageBase) -> tuple[EmailMessage, dict[str, Any], list[AttachmentBase] | list[SignedAttachment]]:
109
107
  """Extracts email objects needed to construct an eml from a msg."""
110
- message: EmailMessage = email.message_from_string(msg_obj.header.as_string(), policy=policy.default) # type: ignore
108
+ message: EmailMessage = email.message_from_string(msg_obj.header.as_string(), policy=policy.default)
111
109
  body = {}
112
110
  if msg_obj.body is not None:
113
111
  body['text'] = {"obj": msg_obj.body,
pymisp/tools/peobject.py CHANGED
@@ -202,7 +202,7 @@ class PESigners(AbstractMISPObjectGenerator):
202
202
  self.add_attribute('digest_algorithm', value=str(self.__signer.digest_algorithm))
203
203
  self.add_attribute('encryption_algorithm', value=str(self.__signer.encryption_algorithm))
204
204
  self.add_attribute('digest-base64', value=b64encode(self.__signer.encrypted_digest))
205
- info: lief.PE.SpcSpOpusInfo = self.__signer.get_attribute(lief.PE.Attribute.TYPE.SPC_SP_OPUS_INFO) # type: ignore[assignment]
205
+ info: lief.PE.SpcSpOpusInfo = self.__signer.get_attribute(lief.PE.Attribute.TYPE.SPC_SP_OPUS_INFO)
206
206
  if info:
207
207
  self.add_attribute('program-name', value=info.program_name)
208
208
  self.add_attribute('url', value=info.more_info)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pymisp
3
- Version: 2.5.10
3
+ Version: 2.5.17
4
4
  Summary: Python API for MISP.
5
5
  License: BSD-2-Clause
6
6
  Author: Raphaël Vinot
@@ -28,24 +28,24 @@ Provides-Extra: openioc
28
28
  Provides-Extra: pdfexport
29
29
  Provides-Extra: url
30
30
  Provides-Extra: virustotal
31
- Requires-Dist: RTFDE (>=0.1.2) ; (python_version <= "3.9") and (extra == "email")
32
- Requires-Dist: beautifulsoup4 (>=4.13.3) ; extra == "openioc"
31
+ Requires-Dist: RTFDE (>=0.1.2.1) ; (python_version <= "3.9") and (extra == "email")
32
+ Requires-Dist: beautifulsoup4 (>=4.13.4) ; extra == "openioc"
33
33
  Requires-Dist: deprecated (>=1.2.18)
34
- Requires-Dist: docutils (>=0.21.2) ; (python_version >= "3.11") and (extra == "docs")
35
- Requires-Dist: extract_msg (>=0.54.0) ; extra == "email"
36
- Requires-Dist: lief (>=0.16.4) ; extra == "fileobjects"
34
+ Requires-Dist: docutils (<0.22) ; (python_version >= "3.11") and (extra == "docs")
35
+ Requires-Dist: extract_msg (>=0.54.1) ; extra == "email"
36
+ Requires-Dist: lief (>=0.16.6) ; extra == "fileobjects"
37
37
  Requires-Dist: myst-parser (>=4.0.1) ; (python_version >= "3.11") and (extra == "docs")
38
38
  Requires-Dist: oletools (>=0.60.2) ; extra == "email"
39
39
  Requires-Dist: pydeep2 (>=0.5.1) ; extra == "fileobjects"
40
40
  Requires-Dist: pyfaup (>=1.2) ; extra == "url"
41
41
  Requires-Dist: python-dateutil (>=2.9.0.post0)
42
42
  Requires-Dist: python-magic (>=0.4.27) ; extra == "fileobjects"
43
- Requires-Dist: reportlab (>=4.3.1) ; extra == "pdfexport"
44
- Requires-Dist: requests (>=2.32.3)
43
+ Requires-Dist: reportlab (>=4.4.3) ; extra == "pdfexport"
44
+ Requires-Dist: requests (>=2.32.4)
45
45
  Requires-Dist: sphinx (>=8.2.3) ; (python_version >= "3.11") and (extra == "docs")
46
- Requires-Dist: sphinx-autodoc-typehints (>=3.1.0) ; (python_version >= "3.11") and (extra == "docs")
47
- Requires-Dist: urllib3 (>=2.3.0) ; extra == "brotli"
48
- Requires-Dist: validators (>=0.34.0) ; extra == "virustotal"
46
+ Requires-Dist: sphinx-autodoc-typehints (>=3.2.0) ; (python_version >= "3.11") and (extra == "docs")
47
+ Requires-Dist: urllib3 (>=2.5.0) ; extra == "brotli"
48
+ Requires-Dist: validators (>=0.35.0) ; extra == "virustotal"
49
49
  Project-URL: Documentation, https://pymisp.readthedocs.io
50
50
  Project-URL: Repository, https://github.com/MISP/PyMISP
51
51
  Project-URL: issues, https://github.com/MISP/PyMISP/issues
@@ -1,6 +1,6 @@
1
- pymisp/__init__.py,sha256=NxD9URYrwmEvYsZdUDTtBqBuIsvzRjXnRr8QVPsuOGE,4004
2
- pymisp/abstract.py,sha256=hdf3heAGnEi3rFIxaAsCOKfO4Y1kT_UoDNpr564GiIk,15745
3
- pymisp/api.py,sha256=o-LEgdYLtpAMjJ4KgmbYddFuHq-JBs9xU_4FfKRUJMU,209471
1
+ pymisp/__init__.py,sha256=0xHLChUKY2NJ6iTd7XTRjZz1ypm5w83dNDiKqmL2n9g,4023
2
+ pymisp/abstract.py,sha256=QQ7qrgAzbNdTdmYBL3lRq_qn-xC-33Ao6O_De4xIr4Q,15717
3
+ pymisp/api.py,sha256=-9E_cnascTsGzLlngC5lf1TAHcmRnn4jSmmeDYv6VJU,209360
4
4
  pymisp/data/describeTypes.json,sha256=hoOy6U_FDVmfk9EdaFgGfEe_GMifmRnIrW8FAJ1ylJ4,45889
5
5
  pymisp/data/misp-objects/objects/ADS/definition.json,sha256=EtPXOaNcngjtH0ylJ0gw9UfErgkjzUWFOyzvzC6pGfM,3048
6
6
  pymisp/data/misp-objects/objects/abuseipdb/definition.json,sha256=xWtZfdAwWWTR5_J76K8chrxFViJeH9T8CQQ6aRhEk3Q,1070
@@ -91,9 +91,10 @@ pymisp/data/misp-objects/objects/facial-composite/definition.json,sha256=gj4wK-V
91
91
  pymisp/data/misp-objects/objects/fail2ban/definition.json,sha256=5bAMbq3txZHWQrIX-NDZMQRg6vrpUBTbimJcCyk4Ixw,1601
92
92
  pymisp/data/misp-objects/objects/favicon/definition.json,sha256=KL6P9RGHjaLRj41DPzszif0mmEvUsnbEj5I4nOz497g,996
93
93
  pymisp/data/misp-objects/objects/file/definition.json,sha256=wPPyh74-tOLlphUHlKfAtjEUYoYY7jNHn8JwzUgF_MA,12900
94
- pymisp/data/misp-objects/objects/flowintel-cm-case/definition.json,sha256=d-Eq_KbwENHU30aWhL7k62GqZfxEIK3nkb001kxxIVc,2494
95
- pymisp/data/misp-objects/objects/flowintel-cm-task/definition.json,sha256=BUOp4w4PSq8nAlJZTYWH5sFKK80--3H-Uj78LAjbs5U,2199
96
- pymisp/data/misp-objects/objects/flowintel-cm-task-note/definition.json,sha256=p9MZ78Ur4T4GhUac4JvTItM64fYeZ0l5nhm2i9P8COA,895
94
+ pymisp/data/misp-objects/objects/flowintel-case/definition.json,sha256=LCDG0OOJdpY_GbrGkv20edtyYfW6IUNn8rKc9hKiSbw,2488
95
+ pymisp/data/misp-objects/objects/flowintel-task/definition.json,sha256=9ON-1bXHSOB7A07t8fRNQ0_37aY32EuLvBd5bfSDuNQ,2193
96
+ pymisp/data/misp-objects/objects/flowintel-task-note/definition.json,sha256=wU5HLbzediH2Rol-dx45bClRIkXG-k8xxdUjCeTXSs4,889
97
+ pymisp/data/misp-objects/objects/flowintel-task-resource/definition.json,sha256=iO0K2Gj5-TYJ9C0nkmzJDR0Ui8R4z3cYxPpK5CHzozU,908
97
98
  pymisp/data/misp-objects/objects/forensic-case/definition.json,sha256=tOaSEp9SAleSBXVVe8ms8G8jjd2q_IpaIDmfqt8NAsY,1281
98
99
  pymisp/data/misp-objects/objects/forensic-evidence/definition.json,sha256=d1Sjj0mts5mZ5YiKTXEYrNJXtC-ZJ0lN7Q7ux0-FN9c,2274
99
100
  pymisp/data/misp-objects/objects/forged-document/definition.json,sha256=xBpiPFyJjwuBVM0xrmQSHY4wmm0bTOQIg45avB3NgLw,2816
@@ -152,12 +153,14 @@ pymisp/data/misp-objects/objects/game-cheat/definition.json,sha256=4xqSM9PzOzuWZ
152
153
  pymisp/data/misp-objects/objects/generalizing-persuasion-framework/definition.json,sha256=6EFw1OW2Qzbp1tip2PgwYhjvqh2koo5Rl75h1TzNE-s,5590
153
154
  pymisp/data/misp-objects/objects/geolocation/definition.json,sha256=mvbU1_yi-9m69SJQWn7fh5k1MLUFIagPU2Mfp4GpjP8,3308
154
155
  pymisp/data/misp-objects/objects/git-vuln-finder/definition.json,sha256=_b_Ux9biIpYXK0gmCzGxmp0AHi1dGEaW3H_MiftHx3s,3644
156
+ pymisp/data/misp-objects/objects/github-action/definition.json,sha256=UQ7dgVaOKZ_CkVRQ3mt2uPOg8JRZOZ4JxFNKSkAdTRg,1403
155
157
  pymisp/data/misp-objects/objects/github-repo/definition.json,sha256=zmGO6g5fRlvp419DKXo3HYQc3-i6_VqCGyIxnb4i4II,3483
156
158
  pymisp/data/misp-objects/objects/github-user/definition.json,sha256=CdHNDa0oLpPB25h5S-7ybEb9MSx92KbqAT7DmNckeNM,3463
157
159
  pymisp/data/misp-objects/objects/gitlab-user/definition.json,sha256=xCqY6NAG1DhtyHDCGVik6yXCGhPie4AfnXAvCk9z6qg,1188
160
+ pymisp/data/misp-objects/objects/google-account/definition.json,sha256=fsyjqkMU12X0F4NpI1Mx4i09MQHNb1n-1HwJSIVrO0Q,3467
158
161
  pymisp/data/misp-objects/objects/google-safe-browsing/definition.json,sha256=Bxo1eu_EbY8Q1mMv0y0lDv9Rn0xDwmPtesuZ8jtk4Xc,739
159
162
  pymisp/data/misp-objects/objects/google-threat-intelligence-report/definition.json,sha256=EZgeF_PbgrxLVGaszm_BJPoWbEB8D7O52anB68vkA8s,1879
160
- pymisp/data/misp-objects/objects/greynoise-ip/definition.json,sha256=pPp13wr0ATb1GYrrjJRLJxzkXJmkbajCifo4IfOeNYc,1850
163
+ pymisp/data/misp-objects/objects/greynoise-ip/definition.json,sha256=KQ99REeJsj3v63dMkxVOsVctR0CTV-_WdeMrkf1PXn0,3144
161
164
  pymisp/data/misp-objects/objects/gtp-attack/definition.json,sha256=WjQ4t_Iu1oMx74W20FWZ70UFJUJn9ta5hu7MPxXNZ7o,2611
162
165
  pymisp/data/misp-objects/objects/hashlookup/definition.json,sha256=rm3xJoDfJKqUuKhfGd8t17XE0xBJ2QMTWg6H7WJvKzI,2888
163
166
  pymisp/data/misp-objects/objects/hhhash/definition.json,sha256=HmPa_bN-FBaZQWDdz2_9fzZHqIREh1dkyio7OsWbzyo,1474
@@ -207,6 +210,7 @@ pymisp/data/misp-objects/objects/mutex/definition.json,sha256=zqun14zDa2seXkX5BG
207
210
  pymisp/data/misp-objects/objects/narrative/definition.json,sha256=VXEm_lcQgR7uFtMalrdbI73-ivv6HJHQVx6lPU0FYzA,2200
208
211
  pymisp/data/misp-objects/objects/netflow/definition.json,sha256=pQ_meRpiPEchaTBNTBUyUT5zPmL7QNIQgLGKdd_KTqE,4103
209
212
  pymisp/data/misp-objects/objects/network-connection/definition.json,sha256=6rGG8ZhW3YxgGAV_l91GFpZXk4QpyJ7iuedH5FU38HE,4248
213
+ pymisp/data/misp-objects/objects/network-data/definition.json,sha256=XxC2GxhybnzSfYOXNI6iufmj7EFFj_4by6cLTogreeA,4322
210
214
  pymisp/data/misp-objects/objects/network-profile/definition.json,sha256=urPC6ysgZ5kaiB2L2ilL19iGmR2GNUzjO4pcUngQl5E,6175
211
215
  pymisp/data/misp-objects/objects/network-socket/definition.json,sha256=qEE1yvRnrpylHut3jFDJnPWWfsz61ZJO0-Lp40WOSjM,6571
212
216
  pymisp/data/misp-objects/objects/network-traffic/definition.json,sha256=jZSGhItwP-1Vxm7fv_IqbijXqnAvPFFKhjxolaDXudE,3144
@@ -215,7 +219,7 @@ pymisp/data/misp-objects/objects/news-media/definition.json,sha256=Mb4TQz-Cj035H
215
219
  pymisp/data/misp-objects/objects/open-data-security/definition.json,sha256=fNTNdk-Hjd83DkmhbhGst6PJv09ZJzuXC6RitsEinZg,3052
216
220
  pymisp/data/misp-objects/objects/opentide/definition.json,sha256=KAhBYWYMp_PF0lTMjanOBKZirdju2120Y9tNOlpMzy8,1496
217
221
  pymisp/data/misp-objects/objects/organization/definition.json,sha256=2Dq4Gs4ynlcaP1rnxfvDCU8cCARO39_Z3azkHYJjhh4,3956
218
- pymisp/data/misp-objects/objects/original-imported-file/definition.json,sha256=lip2yP3wdLoCGxsiCrNMcBC6nyQJUPcJFZYzlkpxeOA,921
222
+ pymisp/data/misp-objects/objects/original-imported-file/definition.json,sha256=3GwBNwKhwKGjxM4V_mVxH7Za5t0yRgQ1i01ogIcHMvk,941
219
223
  pymisp/data/misp-objects/objects/paloalto-threat-event/definition.json,sha256=F1qMo6LN32i3e7ODjv38twX3BEzrgdLIqXN9PqL-3x4,2597
220
224
  pymisp/data/misp-objects/objects/parler-account/definition.json,sha256=YRDWupU7kbSGgTKzwnj7iIqNuAAlBCOPmocWBaYqcQw,3431
221
225
  pymisp/data/misp-objects/objects/parler-comment/definition.json,sha256=F6dwrsaryCXAmlu-EIjuqJq1ygDRqnfZcoaBsu2CI-8,3900
@@ -242,7 +246,7 @@ pymisp/data/misp-objects/objects/probabilistic-data-structure/definition.json,sh
242
246
  pymisp/data/misp-objects/objects/process/definition.json,sha256=JmRNrY6JTu5zw3C7uc8fcT4tgZBmBnfrg32NEKYreIM,5089
243
247
  pymisp/data/misp-objects/objects/publication/definition.json,sha256=j_ZEp8Xk0ZRNN-Gt2cGknPEL6fsN4rdFNpZX30CgoCI,3667
244
248
  pymisp/data/misp-objects/objects/python-etvx-event-log/definition.json,sha256=pEa37XSenCrGwPkJ3SqRd6umycXVoLWs5r3oZcKqcmc,4863
245
- pymisp/data/misp-objects/objects/query/definition.json,sha256=NmudWbuwIV8FoKQRhrim4Tc4U0_VKKwhVtfuThagkx8,1386
249
+ pymisp/data/misp-objects/objects/query/definition.json,sha256=aInnfBGGVw0gKf2rD0GOMQFzgnCNsvLvE-Z4C3Bi59c,1476
246
250
  pymisp/data/misp-objects/objects/r2graphity/definition.json,sha256=ESpT5SLLUnlCpYjB20wd88kXgUMFwTLE9UsKrXZgFpo,4596
247
251
  pymisp/data/misp-objects/objects/ransom-negotiation/definition.json,sha256=jvbnAloyXHIHI0rI4XyZ-fAPKzK5baym11PXGQF-9xg,4588
248
252
  pymisp/data/misp-objects/objects/ransomware-group-post/definition.json,sha256=dUZsHN7brIVgu1CgZo7rJRlwWmPoy3TZypiiFytnwBc,3132
@@ -309,6 +313,7 @@ pymisp/data/misp-objects/objects/stairwell/definition.json,sha256=vXK_23lt156F_w
309
313
  pymisp/data/misp-objects/objects/stix2-pattern/definition.json,sha256=oCVvk1vU__nFQxFChclCgwclzX7wEm0MYWY0HjvuJ94,891
310
314
  pymisp/data/misp-objects/objects/stock/definition.json,sha256=ZCV8X9VXRQPXt6_qpNL0kUrJpyc6_COAAUY2desjMcU,5507
311
315
  pymisp/data/misp-objects/objects/submarine/definition.json,sha256=1i33QhqVNkQeMbT0Glk7LyOSZkjnfBUrX23jflIX7FE,4223
316
+ pymisp/data/misp-objects/objects/summariser-output/definition.json,sha256=WDdiEKUxVM-dTy4AZO8R_4AxsT_WgRLfdXoMvG0SaHI,2639
312
317
  pymisp/data/misp-objects/objects/suricata/definition.json,sha256=FQ5Is0dnVSr7ttDpBWnzI5Th9Sjx5nSh5WGYU9RZ9O0,952
313
318
  pymisp/data/misp-objects/objects/target-system/definition.json,sha256=PaM41BdcjXCYzs1oY0N-ALabDJgzQVxHqnjj70zZ_S8,1000
314
319
  pymisp/data/misp-objects/objects/task/definition.json,sha256=ugSxQkRnyMd8Jb6kMj5yJCveNyc-mJ-tCh3jiQKXXmA,3029
@@ -367,7 +372,7 @@ pymisp/data/misp-objects/schema_relationships.json,sha256=MCusp9GAyuHTo3lLyBrsvl
367
372
  pymisp/data/schema-lax.json,sha256=2QICdCbtfXRJkTVjwb7xjF3ypys2wOtrUyE1ZDz_qes,8561
368
373
  pymisp/data/schema.json,sha256=79N2hObemthb_syUHksDqM4djFttsWZQDg1sTYZYxys,9178
369
374
  pymisp/exceptions.py,sha256=IgGGadv5lnLAvO7Q6AjF0vEbjoWwwDWLYwMn-8pkU_k,1965
370
- pymisp/mispevent.py,sha256=mgIiXFj-RKJud2TBpqL8AefQOcYM2zxJsOqOmSDovPI,121525
375
+ pymisp/mispevent.py,sha256=2FM7k1EwTSEiyUcyeCc2joUpTCInXbnXKp5DYpLTMYo,121613
371
376
  pymisp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
372
377
  pymisp/tools/__init__.py,sha256=_KCihYo82e8G5cHV321ak2sgbao2GyFjf4sSTMiN_IM,2233
373
378
  pymisp/tools/_psl_faup.py,sha256=JyK8RQm8DPWvNuoF4rQpiE0rBm-Az-sr38Kl46dmWcs,7034
@@ -377,7 +382,7 @@ pymisp/tools/create_misp_object.py,sha256=PP78t4Gc7jiZtjt3MGC-0NuH976vSadSmhbaSk
377
382
  pymisp/tools/csvloader.py,sha256=d-Ox4KEehuXi9YxPE3hhf62etaj7D0pUHr5Qy4rPoqo,2588
378
383
  pymisp/tools/domainipobject.py,sha256=2w1ckOWPZvp9EW6TOAguT1Kwov72K1jJuJLqgU1whoo,847
379
384
  pymisp/tools/elfobject.py,sha256=thylyAVcAdF31II8ykVzG75Fe4Fgokc9qR90g1ybI8s,4966
380
- pymisp/tools/emailobject.py,sha256=sPgVAvQFyRiONMiXYDJNibSSMWsjX1df9J3EDZ5LDEE,22680
385
+ pymisp/tools/emailobject.py,sha256=GjOj4MJ0IQsdStkfAk0pshxBe40OGn1_g0jTftym_0o,22500
381
386
  pymisp/tools/ext_lookups.py,sha256=acRbOVQftw7XpbjDZDrrdYzDmLDU4HmhoW48Og3UfaY,1022
382
387
  pymisp/tools/fail2banobject.py,sha256=VWxK8qWVL0AqO_YZSKmsOcaEnG_5j0jOok7OfEXWfMQ,740
383
388
  pymisp/tools/feed.py,sha256=eRG1D4fnG-2hZTFFy7SYUhGVozaAMVSiJXwxHoLP5Gg,700
@@ -390,7 +395,7 @@ pymisp/tools/machoobject.py,sha256=tSyuWz6z_i-ChZ0uFVwxAh8LE2vW30L82SnoPDPuvWs,4
390
395
  pymisp/tools/microblogobject.py,sha256=8_53_6M79VhfrJzR_itZ8HnPPclQwX9j0JdI9gMB2kg,6899
391
396
  pymisp/tools/neo4j.py,sha256=3Jr2QlOTk8D-P5c1DefYDEP6IIgKNswlZA7F5FocHjU,2088
392
397
  pymisp/tools/openioc.py,sha256=TwXcbUkWNzkZavmPoVXdZpjM_GcKB9bqLrw7o3xI24E,14458
393
- pymisp/tools/peobject.py,sha256=9XHvk4zpWsV1YvbI7YKQUrbnGrUuR21v86PE9z1Nxtg,11819
398
+ pymisp/tools/peobject.py,sha256=FAOiJvvYsrmUdjvGLz5Xk2QYT44XvoCx5nsCh2OAWFw,11791
394
399
  pymisp/tools/reportlab_generator.py,sha256=njt0sP-WTWywQ2ieF7Qy5h-dk5FLA0P1i_HF9qhz_4I,76994
395
400
  pymisp/tools/sbsignatureobject.py,sha256=aq5To8zcBJe7BHBRZzlqC9xG7N31Naem6yp6bGTOwrU,790
396
401
  pymisp/tools/sshauthkeyobject.py,sha256=GEByZkdR7QN3KgE4GcDw3LYS_h-DrUw5cWAy6rMvA_Y,1284
@@ -398,7 +403,7 @@ pymisp/tools/update_objects.py,sha256=sp_XshzgtRjAU0Mqg8FgRTaokjVKLImyQ02xIcPSrH
398
403
  pymisp/tools/urlobject.py,sha256=PIucy1356zaljUm1NbeKmEpHpAUK9yiK2lAugcMp2t8,2489
399
404
  pymisp/tools/vehicleobject.py,sha256=bs7f4d47IBi2-VumssSM3HlqkH0viyHTLmIHQxe8Iz8,3687
400
405
  pymisp/tools/vtreportobject.py,sha256=NsdYzgqm47dywYeW8UnWmEDeIsf07xZreD2iJzFm2wg,3217
401
- pymisp-2.5.10.dist-info/LICENSE,sha256=1oPSVvs96qLjbJVi3mPn0yvWs-6aoIF6BNXi6pVlFmY,1615
402
- pymisp-2.5.10.dist-info/METADATA,sha256=aakG8Az0H27y7lEAPrqMrPEden9Gr1y8K5DJ_S5huwY,8882
403
- pymisp-2.5.10.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
404
- pymisp-2.5.10.dist-info/RECORD,,
406
+ pymisp-2.5.17.dist-info/LICENSE,sha256=1oPSVvs96qLjbJVi3mPn0yvWs-6aoIF6BNXi6pVlFmY,1615
407
+ pymisp-2.5.17.dist-info/METADATA,sha256=bPg_gLL2CrOxXMgV-UqPtjrw-gWl1DmmxlGrBIuo_8E,8881
408
+ pymisp-2.5.17.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
409
+ pymisp-2.5.17.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.2
2
+ Generator: poetry-core 2.1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any