diff --git a/stix2/environment.py b/stix2/environment.py index 3d9ca30..3be0bb0 100644 --- a/stix2/environment.py +++ b/stix2/environment.py @@ -505,71 +505,6 @@ def partial_location_distance(lat1, long1, lat2, long2, threshold): return result -def _attack_pattern_checks(obj1, obj2, **weights): - matching_score = 0.0 - sum_weights = 0.0 - if check_property_present("name", obj1, obj2): - w = weights["name"] - contributing_score = w * partial_string_based(obj1["name"], obj2["name"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'name' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("external_references", obj1, obj2): - w = weights["external_references"] - contributing_score = ( - w * partial_external_reference_based(obj1["external_references"], obj2["external_references"]) - ) - sum_weights += w - matching_score += contributing_score - logger.debug("'external_references' check -- weight: %s, contributing score: %s", w, contributing_score) - logger.debug("Matching Score: %s, Sum of Weights: %s", matching_score, sum_weights) - return matching_score, sum_weights - - -def _campaign_checks(obj1, obj2, **weights): - matching_score = 0.0 - sum_weights = 0.0 - if check_property_present("name", obj1, obj2): - w = weights["name"] - contributing_score = w * partial_string_based(obj1["name"], obj2["name"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'name' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("aliases", obj1, obj2): - w = weights["aliases"] - contributing_score = w * partial_list_based(obj1["aliases"], obj2["aliases"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'aliases' check -- weight: %s, contributing score: %s", w, contributing_score) - logger.debug("Matching Score: %s, Sum of Weights: %s", matching_score, sum_weights) - return matching_score, sum_weights - - -def _identity_checks(obj1, obj2, **weights): - matching_score = 0.0 - sum_weights = 0.0 - if check_property_present("name", obj1, obj2): - w = weights["name"] - contributing_score = w * exact_match(obj1["name"], obj2["name"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'name' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("identity_class", obj1, obj2): - w = weights["identity_class"] - contributing_score = w * exact_match(obj1["identity_class"], obj2["identity_class"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'identity_class' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("sectors", obj1, obj2): - w = weights["sectors"] - contributing_score = w * partial_list_based(obj1["sectors"], obj2["sectors"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'sectors' check -- weight: %s, contributing score: %s", w, contributing_score) - logger.debug("Matching Score: %s, Sum of Weights: %s", matching_score, sum_weights) - return matching_score, sum_weights - - def _indicator_checks(obj1, obj2, **weights): matching_score = 0.0 sum_weights = 0.0 @@ -596,116 +531,3 @@ def _indicator_checks(obj1, obj2, **weights): logger.debug("'valid_from' check -- weight: %s, contributing score: %s", w, contributing_score) logger.debug("Matching Score: %s, Sum of Weights: %s", matching_score, sum_weights) return matching_score, sum_weights - - -def _location_checks(obj1, obj2, **weights): - matching_score = 0.0 - sum_weights = 0.0 - if check_property_present("latitude", obj1, obj2) and check_property_present("longitude", obj1, obj2): - w = weights["longitude_latitude"] - contributing_score = ( - w * - partial_location_distance(obj1["latitude"], obj1["longitude"], obj2["latitude"], obj2["longitude"], weights["threshold"]) - ) - sum_weights += w - matching_score += contributing_score - logger.debug("'longitude_latitude' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("region", obj1, obj2): - w = weights["region"] - contributing_score = w * exact_match(obj1["region"], obj2["region"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'region' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("country", obj1, obj2): - w = weights["country"] - contributing_score = w * exact_match(obj1["country"], obj2["country"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'country' check -- weight: %s, contributing score: %s", w, contributing_score) - logger.debug("Matching Score: %s, Sum of Weights: %s", matching_score, sum_weights) - return matching_score, sum_weights - - -def _malware_checks(obj1, obj2, **weights): - matching_score = 0.0 - sum_weights = 0.0 - if check_property_present("malware_types", obj1, obj2): - w = weights["malware_types"] - contributing_score = w * partial_list_based(obj1["malware_types"], obj2["malware_types"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'malware_types' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("name", obj1, obj2): - w = weights["name"] - contributing_score = w * partial_string_based(obj1["name"], obj2["name"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'name' check -- weight: %s, contributing score: %s", w, contributing_score) - logger.debug("Matching Score: %s, Sum of Weights: %s", matching_score, sum_weights) - return matching_score, sum_weights - - -def _threat_actor_checks(obj1, obj2, **weights): - matching_score = 0.0 - sum_weights = 0.0 - if check_property_present("name", obj1, obj2): - w = weights["name"] - contributing_score = w * partial_string_based(obj1["name"], obj2["name"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'name' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("threat_actor_types", obj1, obj2): - w = weights["threat_actor_types"] - contributing_score = w * partial_list_based(obj1["threat_actor_types"], obj2["threat_actor_types"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'threat_actor_types' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("aliases", obj1, obj2): - w = weights["aliases"] - contributing_score = w * partial_list_based(obj1["aliases"], obj2["aliases"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'aliases' check -- weight: %s, contributing score: %s", w, contributing_score) - logger.debug("Matching Score: %s, Sum of Weights: %s", matching_score, sum_weights) - return matching_score, sum_weights - - -def _tool_checks(obj1, obj2, **weights): - matching_score = 0.0 - sum_weights = 0.0 - if check_property_present("tool_types", obj1, obj2): - w = weights["tool_types"] - contributing_score = w * partial_list_based(obj1["tool_types"], obj2["tool_types"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'tool_types' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("name", obj1, obj2): - w = weights["name"] - contributing_score = w * partial_string_based(obj1["name"], obj2["name"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'name' check -- weight: %s, contributing score: %s", w, contributing_score) - logger.debug("Matching Score: %s, Sum of Weights: %s", matching_score, sum_weights) - return matching_score, sum_weights - - -def _vulnerability_checks(obj1, obj2, **weights): - matching_score = 0.0 - sum_weights = 0.0 - if check_property_present("name", obj1, obj2): - w = weights["name"] - contributing_score = w * partial_string_based(obj1["name"], obj2["name"]) - sum_weights += w - matching_score += contributing_score - logger.debug("'name' check -- weight: %s, contributing score: %s", w, contributing_score) - if check_property_present("external_references", obj1, obj2): - w = weights["external_references"] - contributing_score = w * partial_external_reference_based( - obj1["external_references"], - obj2["external_references"], - ) - sum_weights += w - matching_score += contributing_score - logger.debug("'external_references' check -- weight: %s, contributing score: %s", w, contributing_score) - logger.debug("Matching Score: %s, Sum of Weights: %s", matching_score, sum_weights) - return matching_score, sum_weights