mal-toolbox 0.1.3__tar.gz → 0.1.5__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.
- {mal_toolbox-0.1.3/mal_toolbox.egg-info → mal_toolbox-0.1.5}/PKG-INFO +1 -1
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5/mal_toolbox.egg-info}/PKG-INFO +1 -1
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/__init__.py +2 -2
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/attackgraph/attackgraph.py +1 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/language/languagegraph.py +15 -16
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/pyproject.toml +1 -1
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/AUTHORS +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/LICENSE +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/README.md +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/mal_toolbox.egg-info/SOURCES.txt +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/mal_toolbox.egg-info/dependency_links.txt +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/mal_toolbox.egg-info/requires.txt +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/mal_toolbox.egg-info/top_level.txt +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/__main__.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/attackgraph/__init__.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/attackgraph/analyzers/__init__.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/attackgraph/analyzers/apriori.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/attackgraph/attacker.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/attackgraph/node.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/attackgraph/query.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/default.conf +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/exceptions.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/file_utils.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/ingestors/__init__.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/ingestors/neo4j.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/language/__init__.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/language/classes_factory.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/language/compiler/__init__.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/language/compiler/mal_lexer.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/language/compiler/mal_parser.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/language/compiler/mal_visitor.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/model.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/translators/__init__.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/translators/securicad.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/translators/updater.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/maltoolbox/wrappers.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/setup.cfg +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/tests/test_model.py +0 -0
- {mal_toolbox-0.1.3 → mal_toolbox-0.1.5}/tests/test_wrappers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mal-toolbox
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.5
|
|
4
4
|
Summary: A collection of tools used to create MAL models and attack graphs.
|
|
5
5
|
Author-email: Andrei Buhaiu <buhaiu@kth.se>, Giuseppe Nebbione <nebbione@kth.se>, Nikolaos Kakouros <nkak@kth.se>, Jakob Nyberg <jaknyb@kth.se>, Joakim Loxdal <loxdal@kth.se>
|
|
6
6
|
License: Apache Software License
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mal-toolbox
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.5
|
|
4
4
|
Summary: A collection of tools used to create MAL models and attack graphs.
|
|
5
5
|
Author-email: Andrei Buhaiu <buhaiu@kth.se>, Giuseppe Nebbione <nebbione@kth.se>, Nikolaos Kakouros <nkak@kth.se>, Jakob Nyberg <jaknyb@kth.se>, Joakim Loxdal <loxdal@kth.se>
|
|
6
6
|
License: Apache Software License
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# MAL Toolbox v0.1.
|
|
2
|
+
# MAL Toolbox v0.1.5
|
|
3
3
|
# Copyright 2024, 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__ = '0.1.
|
|
24
|
+
__version__ = '0.1.5'
|
|
25
25
|
__authors__ = ['Andrei Buhaiu',
|
|
26
26
|
'Giuseppe Nebbione',
|
|
27
27
|
'Nikolaos Kakouros',
|
|
@@ -287,6 +287,7 @@ class AttackGraph():
|
|
|
287
287
|
'mitre_info' in node_dict else None
|
|
288
288
|
ag_node.tags = node_dict['tags'] if \
|
|
289
289
|
'tags' in node_dict else []
|
|
290
|
+
ag_node.extras = node_dict.get('extras', [])
|
|
290
291
|
|
|
291
292
|
# Add AttackGraphNode to AttackGraph
|
|
292
293
|
attack_graph.add_node(ag_node, node_id=node_dict['id'])
|
|
@@ -622,7 +622,7 @@ class LanguageGraph():
|
|
|
622
622
|
new_dep_chain,
|
|
623
623
|
attack_step)
|
|
624
624
|
|
|
625
|
-
case '
|
|
625
|
+
case 'subType':
|
|
626
626
|
# Create a subType tuple entry that applies to the next
|
|
627
627
|
# component of the step expression and changes the target
|
|
628
628
|
# asset to the subasset.
|
|
@@ -651,7 +651,7 @@ class LanguageGraph():
|
|
|
651
651
|
return (None, None, None)
|
|
652
652
|
|
|
653
653
|
new_dep_chain = DependencyChain(
|
|
654
|
-
type = '
|
|
654
|
+
type = 'subType',
|
|
655
655
|
next_link = result_dep_chain)
|
|
656
656
|
new_dep_chain.subtype = subtype_asset
|
|
657
657
|
return (subtype_asset,
|
|
@@ -748,19 +748,18 @@ class LanguageGraph():
|
|
|
748
748
|
new_dep_chain
|
|
749
749
|
)
|
|
750
750
|
|
|
751
|
-
case '
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
# return
|
|
763
|
-
return reverse_chain
|
|
751
|
+
case 'subType':
|
|
752
|
+
result_reverse_chain = self.reverse_dep_chain(
|
|
753
|
+
dep_chain.next_link,
|
|
754
|
+
reverse_chain
|
|
755
|
+
)
|
|
756
|
+
new_dep_chain = DependencyChain(
|
|
757
|
+
type = 'subType',
|
|
758
|
+
next_link = result_reverse_chain
|
|
759
|
+
)
|
|
760
|
+
new_dep_chain.subtype = dep_chain.subtype
|
|
761
|
+
return new_dep_chain
|
|
762
|
+
# return reverse_chain
|
|
764
763
|
|
|
765
764
|
case _:
|
|
766
765
|
msg = 'Unknown assoc chain element "%s"'
|
|
@@ -1001,7 +1000,7 @@ class LanguageGraph():
|
|
|
1001
1000
|
attack_steps[step['name']] = copy.deepcopy(step)
|
|
1002
1001
|
else:
|
|
1003
1002
|
if attack_steps[step['name']]['reaches'] is not None and \
|
|
1004
|
-
'
|
|
1003
|
+
'stepExpressions' in \
|
|
1005
1004
|
attack_steps[step['name']]['reaches']:
|
|
1006
1005
|
attack_steps[step['name']]['reaches']['stepExpressions'].\
|
|
1007
1006
|
extend(step['reaches']['stepExpressions'])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|