diff --git a/capectracer/requirements_capec_tracer.txt b/capectracer/requirements_capec_tracer.txt index 205667098ded7fb1ef0699bc71262be4b0416c0f..354c7e3f16c07446aa6971bb67cd803a9838d0fa 100644 --- a/capectracer/requirements_capec_tracer.txt +++ b/capectracer/requirements_capec_tracer.txt @@ -2,4 +2,5 @@ scikit-learn==1.0.2 gensim==4.1.2 spacy==3.7.2 xmltodict==0.13.0 -nltk==3.7 \ No newline at end of file +nltk==3.7 +scipy==1.10.1 diff --git a/capectracer/requirements_model_training.txt b/capectracer/requirements_model_training.txt index 46d9d49fecc66a8f9a5fa22fc0e5bdf77c171f82..9a9fd05fbada70484ea69ad1979dd039d47fb895 100644 --- a/capectracer/requirements_model_training.txt +++ b/capectracer/requirements_model_training.txt @@ -1,4 +1,4 @@ tqdm==4.64.0 -numpy==1.21.5 +numpy==1.22.4 bayesian-optimization==1.4.3 -pandas==1.4.2 \ No newline at end of file +pandas==1.4.2 diff --git a/src/main/java/ai/AIAttackPatternTree1.java b/src/main/java/ai/AIAttackPatternTree1.java index 4d965d7fb501ee0e6310a2023870a6f310a96935..bd11221c5a6a63bacf5d42416428ab178e04a9b4 100644 --- a/src/main/java/ai/AIAttackPatternTree1.java +++ b/src/main/java/ai/AIAttackPatternTree1.java @@ -299,7 +299,7 @@ public class AIAttackPatternTree1 extends AIInteract { } } - public Object applyAnswer(Object input) { return at; } + public Object applyAnswer(Object input) { return atList; } private void initKnowledge() { chatData.aiinterface.clearKnowledge(); diff --git a/src/main/java/ui/window/JFrameAI.java b/src/main/java/ui/window/JFrameAI.java index ddede95b58c759833d4a78fa3bf639845edcde4e..cbed87d77cadf83712e998a515155691d043a61d 100644 --- a/src/main/java/ui/window/JFrameAI.java +++ b/src/main/java/ui/window/JFrameAI.java @@ -640,13 +640,6 @@ public class JFrameAI extends JFrame implements ActionListener { } private void applyAttackTree(Object spec) { -// TDiagramPanel tdp = mgui.getCurrentTDiagramPanel(); -// -// if (!(tdp instanceof AttackTreeDiagramPanel)) { -// error("An attack tree diagram must be selected first"); -// return; -// } - if (spec == null) { error("Empty attack tree diagram generated by AI"); return; @@ -656,8 +649,7 @@ public class JFrameAI extends JFrame implements ActionListener { error("Invalid attack tree diagram generated by AI"); return; } - -// AttackTreeDiagramPanel atpanel = (AttackTreeDiagramPanel) tdp; + AttackTree at = (AttackTree) spec; inform("Drawing attack tree diagram with ai answer, please wait\n"); @@ -669,32 +661,21 @@ public class JFrameAI extends JFrame implements ActionListener { } private void applyAttackTrees(Object spec) { -// TDiagramPanel tdp = mgui.getCurrentTDiagramPanel(); -// -// if (!(tdp instanceof AttackTreeDiagramPanel)) { -// error("An attack tree diagram must be selected first"); -// return; -// } - if (spec == null) { - error("Empty attack tree diagram generated by AI"); + error("Empty attack tree diagram list generated by AI"); return; } - if (!(spec instanceof AttackTree)) { - error("Invalid attack tree diagram generated by AI"); + if (!(spec instanceof Iterable)) { + error("Invalid attack tree diagram list generated by AI"); return; } -// AttackTreeDiagramPanel atpanel = (AttackTreeDiagramPanel) tdp; - AttackTree at = (AttackTree) spec; - - inform("Drawing attack tree diagram with ai answer, please wait\n"); - TraceManager.addDev("Considered AT: " + at.toString()); + Iterable<Object> atList = (Iterable<Object>) spec; - mgui.drawAttackTreeDiagram(at); - - inform("Enhancing attack tree diagram with ai answer: done\n"); + for (Object at : atList) { + applyAttackTree(at); + } } private void applyIdentifySystemBlocks(Object input) {