66from stix2 .canonicalization .Canonicalize import canonicalize
77
88
9- class SecurityAssessment :
9+ class SecurityCoverage :
1010 def __init__ (self , opencti ):
1111 self .opencti = opencti
1212 self .properties = """
@@ -17,8 +17,11 @@ def __init__(self, opencti):
1717 spec_version
1818 created_at
1919 updated_at
20- objectAssess {
21- id
20+ objectCovered {
21+ __typename
22+ ... on StixCoreObject {
23+ id
24+ }
2225 }
2326 objectMarking {
2427 id
@@ -34,25 +37,24 @@ def __init__(self, opencti):
3437 """
3538
3639 @staticmethod
37- def generate_id (name ):
38- name = name .lower ().strip ()
39- data = {"name" : name }
40+ def generate_id (covered_ref ):
41+ data = {"covered_ref" : covered_ref .lower ().strip ()}
4042 data = canonicalize (data , utf8 = False )
4143 id = str (uuid .uuid5 (uuid .UUID ("00abedb4-aa42-466c-9c01-fed23315a9b7" ), data ))
42- return "securityAssessment --" + id
44+ return "security-coverage --" + id
4345
4446 @staticmethod
4547 def generate_id_from_data (data ):
46- return SecurityAssessment .generate_id (data ["name " ])
48+ return SecurityCoverage .generate_id (data ["covered_ref " ])
4749
4850 """
49- List SecurityAssessment objects
51+ List securityCoverage objects
5052
5153 :param filters: the filters to apply
5254 :param search: the search keyword
5355 :param first: return the first n rows from the after ID (or the beginning if not set)
5456 :param after: ID of the first row for pagination
55- :return List of SecurityAssessment objects
57+ :return List of SecurityCoverage objects
5658 """
5759
5860 def list (self , ** kwargs ):
@@ -67,12 +69,12 @@ def list(self, **kwargs):
6769 with_pagination = kwargs .get ("withPagination" , False )
6870
6971 self .opencti .app_logger .info (
70- "Listing SecurityAssessment with filters" , {"filters" : json .dumps (filters )}
72+ "Listing SecurityCoverage with filters" , {"filters" : json .dumps (filters )}
7173 )
7274 query = (
7375 """
74- query SecurityAssessment ($filters: FilterGroup, $search: String, $first: Int, $after: ID, $orderBy: SecurityAssessmentOrdering , $orderMode: OrderingMode) {
75- securityAssessments (filters: $filters, search: $search, first: $first, after: $after, orderBy: $orderBy, orderMode: $orderMode) {
76+ query SecurityCoverage ($filters: FilterGroup, $search: String, $first: Int, $after: ID, $orderBy: SecurityCoverageOrdering , $orderMode: OrderingMode) {
77+ securityCoverages (filters: $filters, search: $search, first: $first, after: $after, orderBy: $orderBy, orderMode: $orderMode) {
7678 edges {
7779 node {
7880 """
@@ -105,12 +107,12 @@ def list(self, **kwargs):
105107
106108 if get_all :
107109 final_data = []
108- data = self .opencti .process_multiple (result ["data" ]["securityAssessments " ])
110+ data = self .opencti .process_multiple (result ["data" ]["securityCoverages " ])
109111 final_data = final_data + data
110- while result ["data" ]["securityAssessments " ]["pageInfo" ]["hasNextPage" ]:
111- after = result ["data" ]["securityAssessments " ]["pageInfo" ]["endCursor" ]
112+ while result ["data" ]["securityCoverages " ]["pageInfo" ]["hasNextPage" ]:
113+ after = result ["data" ]["securityCoverages " ]["pageInfo" ]["endCursor" ]
112114 self .opencti .app_logger .info (
113- "Listing SecurityAssessment " , {"after" : after }
115+ "Listing SecurityCoverage " , {"after" : after }
114116 )
115117 result = self .opencti .query (
116118 query ,
@@ -124,33 +126,33 @@ def list(self, **kwargs):
124126 },
125127 )
126128 data = self .opencti .process_multiple (
127- result ["data" ]["securityAssessments " ]
129+ result ["data" ]["securityCoverages " ]
128130 )
129131 final_data = final_data + data
130132 return final_data
131133 else :
132134 return self .opencti .process_multiple (
133- result ["data" ]["securityAssessments " ], with_pagination
135+ result ["data" ]["securityCoverages " ], with_pagination
134136 )
135137
136138 """
137- Read a SecurityAssessment object
139+ Read a SecurityCoverage object
138140
139- :param id: the id of the SecurityAssessment
141+ :param id: the id of the SecurityCoverage
140142 :param filters: the filters to apply if no id provided
141- :return SecurityAssessment object
143+ :return SecurityCoverage object
142144 """
143145
144146 def read (self , ** kwargs ):
145147 id = kwargs .get ("id" , None )
146148 filters = kwargs .get ("filters" , None )
147149 custom_attributes = kwargs .get ("customAttributes" , None )
148150 if id is not None :
149- self .opencti .app_logger .info ("Reading SecurityAssessment " , {"id" : id })
151+ self .opencti .app_logger .info ("Reading SecurityCoverage " , {"id" : id })
150152 query = (
151153 """
152- query SecurityAssessment ($id: String!) {
153- securityAssessment (id: $id) {
154+ query SecurityCoverage ($id: String!) {
155+ securityCoverage (id: $id) {
154156 """
155157 + (
156158 custom_attributes
@@ -164,7 +166,7 @@ def read(self, **kwargs):
164166 )
165167 result = self .opencti .query (query , {"id" : id })
166168 return self .opencti .process_multiple_fields (
167- result ["data" ]["securityAssessment " ]
169+ result ["data" ]["securityCoverage " ]
168170 )
169171 elif filters is not None :
170172 result = self .list (filters = filters )
@@ -174,6 +176,6 @@ def read(self, **kwargs):
174176 return None
175177 else :
176178 self .opencti .app_logger .error (
177- "[opencti_tool ] Missing parameters: id or filters"
179+ "[opencti_security_coverage ] Missing parameters: id or filters"
178180 )
179181 return None
0 commit comments