mal-toolbox 1.0.7__py3-none-any.whl → 1.1.1__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mal-toolbox
3
- Version: 1.0.7
3
+ Version: 1.1.1
4
4
  Summary: A collection of tools used to create MAL models and attack graphs.
5
5
  Author-email: Andrei Buhaiu <buhaiu@kth.se>, Joakim Loxdal <loxdal@kth.se>, Nikolaos Kakouros <nkak@kth.se>, Jakob Nyberg <jaknyb@kth.se>, Giuseppe Nebbione <nebbione@kth.se>, Sandor Berglund <sandor@kth.se>
6
6
  License: Apache Software License
@@ -23,6 +23,7 @@ Requires-Dist: antlr4-tools
23
23
  Requires-Dist: antlr4-python3-runtime
24
24
  Requires-Dist: docopt
25
25
  Requires-Dist: PyYAML
26
+ Requires-Dist: py2neo
26
27
  Provides-Extra: dev
27
28
  Requires-Dist: pytest; extra == "dev"
28
29
  Dynamic: license-file
@@ -1,13 +1,13 @@
1
- mal_toolbox-1.0.7.dist-info/licenses/AUTHORS,sha256=zxLrLe8EY39WtRKlAY4Oorx4Z2_LHV2ApRvDGZgY7xY,127
2
- mal_toolbox-1.0.7.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
3
- maltoolbox/__init__.py,sha256=9wvROJXAXZYbVf-JVy_6eVH7XFJANdJ0atFtqvjfor4,2158
1
+ mal_toolbox-1.1.1.dist-info/licenses/AUTHORS,sha256=zxLrLe8EY39WtRKlAY4Oorx4Z2_LHV2ApRvDGZgY7xY,127
2
+ mal_toolbox-1.1.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
3
+ maltoolbox/__init__.py,sha256=XZ8sSK4zPhqPNVWRIy-JKgipTyX3dx6CpnloZs37xlY,2158
4
4
  maltoolbox/__main__.py,sha256=XREFzTuS_hIajSt1aNdzW8a5XFS3lAGrenEBnB_zzjI,3484
5
5
  maltoolbox/exceptions.py,sha256=0YjPx2v1yYumZ2o7pVZ1s_jS-GAb3Ng979KEFhROSNY,1399
6
6
  maltoolbox/file_utils.py,sha256=fYG3UsvPQcU0ES_WI3nLfuzSZgc0jtE4IAxdMGgs9aA,1876
7
7
  maltoolbox/model.py,sha256=0z0S0SH4lkslsAxPNxb7exfmNwBPXM_BK0Oujo899a4,18139
8
8
  maltoolbox/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  maltoolbox/attackgraph/__init__.py,sha256=m_81AjzwXONdclcW_R7mF2f8p-4DvoSRVfQ3Nyh7fak,298
10
- maltoolbox/attackgraph/attackgraph.py,sha256=uN4QiWQ8eu_nGpUZSNXaSUkw-lDYdlEmvUIEs5mevz4,27348
10
+ maltoolbox/attackgraph/attackgraph.py,sha256=ux6TjBLfAgKEfwzGqNU6D_xDGCzc4UTCrdTh1ADoKeI,27722
11
11
  maltoolbox/attackgraph/node.py,sha256=F48FgCeYQFEiAq1HswjOnHImYSSRINZpHDvUZP0FqRk,4265
12
12
  maltoolbox/attackgraph/analyzers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  maltoolbox/language/__init__.py,sha256=TsTTryEyjChwHN1o5F2BSUlFsAss2N6J0H0-nzvXiD8,489
@@ -25,8 +25,8 @@ maltoolbox/visualization/draw_io_utils.py,sha256=7ZmhG5yTEYLZnMhOY9gfyKOb4Dmu2K9
25
25
  maltoolbox/visualization/graphviz_utils.py,sha256=dfQhPL6Z2hvlMFpThsDr-5tm4Pa22SGHEiXw5ym9JJc,3906
26
26
  maltoolbox/visualization/neo4j_utils.py,sha256=FHTkkaTvlrf36RXdVdD65TYtlKLNcna9pCl39d6o8wg,3487
27
27
  maltoolbox/visualization/utils.py,sha256=8SrGMUXJPFBjDd2Ujw7jgoR2zqCNFdoNHGmG4_tEhwQ,1485
28
- mal_toolbox-1.0.7.dist-info/METADATA,sha256=vYkPtFS9HBuWvArXqfnkHNGLVPvjJEa8m4w2kVwSqvU,5938
29
- mal_toolbox-1.0.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
30
- mal_toolbox-1.0.7.dist-info/entry_points.txt,sha256=oqby5O6cUP_OHCm70k_iYPA6UlbTBf7se1i3XwdK3uU,56
31
- mal_toolbox-1.0.7.dist-info/top_level.txt,sha256=phqRVLRKGdSUgRY03mcpi2cmbbDo5YGjkV4gkqHFFcM,11
32
- mal_toolbox-1.0.7.dist-info/RECORD,,
28
+ mal_toolbox-1.1.1.dist-info/METADATA,sha256=Fcv-ZEhpIHUPmGkmR7_QgfkxCt3fncco7BFVl_J9KAs,5960
29
+ mal_toolbox-1.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
30
+ mal_toolbox-1.1.1.dist-info/entry_points.txt,sha256=oqby5O6cUP_OHCm70k_iYPA6UlbTBf7se1i3XwdK3uU,56
31
+ mal_toolbox-1.1.1.dist-info/top_level.txt,sha256=phqRVLRKGdSUgRY03mcpi2cmbbDo5YGjkV4gkqHFFcM,11
32
+ mal_toolbox-1.1.1.dist-info/RECORD,,
maltoolbox/__init__.py CHANGED
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # MAL Toolbox v1.0.7
2
+ # MAL Toolbox v1.1.1
3
3
  # Copyright 2025, Andrei Buhaiu.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,7 +21,7 @@ MAL-Toolbox Framework
21
21
  """
22
22
 
23
23
  __title__ = "maltoolbox"
24
- __version__ = "1.0.7"
24
+ __version__ = "1.1.1"
25
25
  __authors__ = [
26
26
  "Andrei Buhaiu",
27
27
  "Giuseppe Nebbione",
@@ -91,6 +91,9 @@ class AttackGraph():
91
91
  """Graph representation of attack steps"""
92
92
  def __init__(self, lang_graph: LanguageGraph, model: Optional[Model] = None):
93
93
  self.nodes: dict[int, AttackGraphNode] = {}
94
+ self.attack_steps: list[AttackGraphNode] = []
95
+ self.defense_steps: list[AttackGraphNode] = []
96
+
94
97
  # Dictionaries used in optimization to get nodes by id or full name
95
98
  # faster
96
99
  self._full_name_to_node: dict[str, AttackGraphNode] = {}
@@ -665,6 +668,14 @@ class AttackGraph():
665
668
  )
666
669
 
667
670
  self.nodes[node_id] = node
671
+
672
+ # Add to different lists depending on types
673
+ # Useful but not vital for functionality
674
+ if node.type in ('or', 'and'):
675
+ self.attack_steps.append(node)
676
+ if node.type == 'defense':
677
+ self.defense_steps.append(node)
678
+
668
679
  self._full_name_to_node[node.full_name] = node
669
680
 
670
681
  return node