From db717d7d325f294eec3eac6137712020009bbeb8 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Thu, 10 Aug 2023 10:21:25 -0400 Subject: [PATCH] minor updates and fixes --- mitreattack/stix20/MitreAttackData.py | 14 ++++++++++---- mitreattack/stix20/custom_attack_objects.py | 7 ++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/mitreattack/stix20/MitreAttackData.py b/mitreattack/stix20/MitreAttackData.py index 0731637e..fb65b19f 100644 --- a/mitreattack/stix20/MitreAttackData.py +++ b/mitreattack/stix20/MitreAttackData.py @@ -1671,7 +1671,7 @@ def get_all_techniques_targeting_all_assets(self) -> dict: if self.all_techniques_targeting_all_assets: return self.all_techniques_targeting_all_assets - self.all_techniques_targeting_all_assets = self.get_related("attack-pattern", "targets", "x-mitre-asset") + self.all_techniques_targeting_all_assets = self.get_related("attack-pattern", "targets", "x-mitre-asset", reverse=True) return self.all_techniques_targeting_all_assets @@ -1690,7 +1690,9 @@ def get_techniques_targeting_asset(self, asset_stix_id: str) -> list: """ techniques_targeting_assets = self.get_all_techniques_targeting_all_assets() return ( - techniques_targeting_assets[asset_stix_id] if asset_stix_id in techniques_targeting_assets else [] + techniques_targeting_assets[asset_stix_id] + if asset_stix_id in techniques_targeting_assets + else [] ) def get_all_assets_targeted_by_all_techniques(self) -> dict: @@ -1705,7 +1707,7 @@ def get_all_assets_targeted_by_all_techniques(self) -> dict: if self.all_assets_targeted_by_all_techniques: return self.all_assets_targeted_by_all_techniques - self.all_assets_targeted_by_all_techniques = self.get_related("attack-pattern", "targets", "x-mitre-asset", reverse=True) + self.all_assets_targeted_by_all_techniques = self.get_related("attack-pattern", "targets", "x-mitre-asset") return self.all_assets_targeted_by_all_techniques @@ -1723,4 +1725,8 @@ def get_assets_targeted_by_technique(self, technique_stix_id: str) -> list: a list of {asset, relationship} for each asset targeted by the technique """ assets_targeted_by_techniques = self.get_all_assets_targeted_by_all_techniques() - return assets_targeted_by_techniques[technique_stix_id] if technique_stix_id in assets_targeted_by_techniques else [] \ No newline at end of file + return ( + assets_targeted_by_techniques[technique_stix_id] + if technique_stix_id in assets_targeted_by_techniques + else [] + ) \ No newline at end of file diff --git a/mitreattack/stix20/custom_attack_objects.py b/mitreattack/stix20/custom_attack_objects.py index ecf7ae31..5a612b3a 100644 --- a/mitreattack/stix20/custom_attack_objects.py +++ b/mitreattack/stix20/custom_attack_objects.py @@ -9,6 +9,7 @@ ReferenceProperty, TimestampProperty, BooleanProperty, + DictionaryProperty ) @@ -216,11 +217,7 @@ class DataComponent(CustomStixObject, object): ("x_mitre_contributors", ListProperty(StringProperty())), # Asset Properties ("sectors", ListProperty(StringProperty())), - ("x_mitre_related_assets", ListProperty({ - ("name", StringProperty(required=True)), - ("related_asset_sector", StringProperty()), - ("description", StringProperty()) - })), + ("x_mitre_related_assets", ListProperty(DictionaryProperty())), ("x_mitre_platforms", ListProperty(StringProperty())), ] )