Пример #1
0
 def parse_object(self, o, labels):
     object_type = self.get_misp_type(labels)
     object_category = self.get_misp_category(labels)
     stix_type = o._type
     misp_object = MISPObject(object_type)
     misp_object['meta-category'] = object_category
     if stix_type == 'indicator':
         pattern = o.get('pattern').replace('\\\\', '\\').split(' AND ')
         pattern[0] = pattern[0][2:]
         pattern[-1] = pattern[-1][:-2]
         attributes = objects_mapping[object_type]['pattern'](pattern)
     if stix_type == 'observed-data':
         observable = o.get('objects')
         attributes = objects_mapping[object_type]['observable'](observable)
     for attribute in attributes:
         misp_object.add_attribute(**attribute)
     misp_object.to_ids = bool(labels[1].split('=')[1])
     self.misp_event.add_object(**misp_object)
Пример #2
0
 def parse_object(self, o, labels):
     object_type = self.get_misp_type(labels)
     name = 'file' if object_type == 'WindowsPEBinaryFile' else object_type
     object_category = self.get_misp_category(labels)
     stix_type = o._type
     misp_object = MISPObject(name)
     misp_object['meta-category'] = object_category
     if stix_type == 'indicator':
         pattern = o.get('pattern').replace('\\\\', '\\').split(' AND ')
         pattern[0] = pattern[0][1:]
         pattern[-1] = pattern[-1][:-1]
         attributes = self.objects_mapping[object_type]['pattern'](pattern)
     if stix_type == 'observed-data':
         observable = o.get('objects')
         attributes = self.objects_mapping[object_type]['observable'](observable)
     if isinstance(attributes, tuple):
         attributes, pe_uuid = attributes
         misp_object.add_reference(pe_uuid, 'included-in')
     for attribute in attributes:
         misp_object.add_attribute(**attribute)
     misp_object.to_ids = bool(labels[1].split('=')[1])
     self.misp_event.add_object(**misp_object)