mal-toolbox 1.0.7__tar.gz → 1.1.1__tar.gz

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.
Files changed (38) hide show
  1. {mal_toolbox-1.0.7/mal_toolbox.egg-info → mal_toolbox-1.1.1}/PKG-INFO +2 -1
  2. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1/mal_toolbox.egg-info}/PKG-INFO +2 -1
  3. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/mal_toolbox.egg-info/requires.txt +1 -0
  4. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/__init__.py +2 -2
  5. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/attackgraph/attackgraph.py +11 -0
  6. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/pyproject.toml +2 -1
  7. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/AUTHORS +0 -0
  8. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/LICENSE +0 -0
  9. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/README.md +0 -0
  10. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/mal_toolbox.egg-info/SOURCES.txt +0 -0
  11. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/mal_toolbox.egg-info/dependency_links.txt +0 -0
  12. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/mal_toolbox.egg-info/entry_points.txt +0 -0
  13. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/mal_toolbox.egg-info/top_level.txt +0 -0
  14. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/__main__.py +0 -0
  15. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/attackgraph/__init__.py +0 -0
  16. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/attackgraph/analyzers/__init__.py +0 -0
  17. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/attackgraph/node.py +0 -0
  18. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/exceptions.py +0 -0
  19. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/file_utils.py +0 -0
  20. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/language/__init__.py +0 -0
  21. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/language/compiler/__init__.py +0 -0
  22. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/language/compiler/mal_lexer.py +0 -0
  23. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/language/compiler/mal_parser.py +0 -0
  24. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/language/languagegraph.py +0 -0
  25. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/model.py +0 -0
  26. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/patternfinder/__init__.py +0 -0
  27. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/patternfinder/attackgraph_patterns.py +0 -0
  28. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/py.typed +0 -0
  29. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/translators/__init__.py +0 -0
  30. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/translators/securicad.py +0 -0
  31. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/translators/updater.py +0 -0
  32. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/visualization/__init__.py +0 -0
  33. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/visualization/draw_io_utils.py +0 -0
  34. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/visualization/graphviz_utils.py +0 -0
  35. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/visualization/neo4j_utils.py +0 -0
  36. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/maltoolbox/visualization/utils.py +0 -0
  37. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/setup.cfg +0 -0
  38. {mal_toolbox-1.0.7 → mal_toolbox-1.1.1}/tests/test_model.py +0 -0
@@ -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,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
@@ -3,6 +3,7 @@ antlr4-tools
3
3
  antlr4-python3-runtime
4
4
  docopt
5
5
  PyYAML
6
+ py2neo
6
7
 
7
8
  [dev]
8
9
  pytest
@@ -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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mal-toolbox"
3
- version = "1.0.7"
3
+ version = "1.1.1"
4
4
  authors = [
5
5
  { name="Andrei Buhaiu", email="buhaiu@kth.se" },
6
6
  { name="Joakim Loxdal", email="loxdal@kth.se" },
@@ -18,6 +18,7 @@ dependencies = [
18
18
  "antlr4-python3-runtime",
19
19
  "docopt",
20
20
  "PyYAML",
21
+ "py2neo"
21
22
  ]
22
23
  license = {text = "Apache Software License"}
23
24
  keywords = ["mal"]
File without changes
File without changes
File without changes
File without changes