Browse Source

add temporal efficiency test for SMBLorisAttack

Jens Keim 6 years ago
parent
commit
29e4dc9d83
2 changed files with 26 additions and 8 deletions
  1. 8 8
      code/Test/ID2TAttackTest.py
  2. 18 0
      code/Test/efficiency_testing.py

+ 8 - 8
code/Test/ID2TAttackTest.py

@@ -13,7 +13,7 @@ class ID2TAttackTest(unittest.TestCase):
 
     def checksum_test(self, attack_args, sha256_checksum, seed=5, cleanup=True, pcap=Lib.test_pcap,
                       flag_write_file=False, flag_recalculate_stats=False, flag_print_statistics=False,
-                      attack_sub_dir=True, test_sub_dir=True):
+                      attack_sub_dir=True, test_sub_dir=True, time=False):
         """
         Runs the attack against a given sha256 checksum.
 
@@ -30,22 +30,22 @@ class ID2TAttackTest(unittest.TestCase):
         :param time: Measure time for packet generation.
         """
 
-        controller = Ctrl.Controller(pcap_file_path=pcap, do_extra_tests=False)
-        controller.load_pcap_statistics(flag_write_file, flag_recalculate_stats, flag_print_statistics)
-        controller.process_attacks(attack_args, [[seed]])
+        self.controller = Ctrl.Controller(pcap_file_path=pcap, do_extra_tests=False)
+        self.controller.load_pcap_statistics(flag_write_file, flag_recalculate_stats, flag_print_statistics)
+        self.controller.process_attacks(attack_args, [[seed]], time)
 
         caller_function = inspect.stack()[1].function
 
         try:
-            self.assertEqual(sha256_checksum, Lib.get_sha256(controller.pcap_dest_path))
+            self.assertEqual(sha256_checksum, Lib.get_sha256(self.controller.pcap_dest_path))
         except self.failureException:
-            Lib.rename_test_result_files(controller, caller_function, attack_sub_dir, test_sub_dir)
+            Lib.rename_test_result_files(self.controller, caller_function, attack_sub_dir, test_sub_dir)
             raise
 
         if cleanup:
-            Lib.clean_up(controller)
+            Lib.clean_up(self.controller)
         else:
-            Lib.rename_test_result_files(controller, caller_function, attack_sub_dir, test_sub_dir)
+            Lib.rename_test_result_files(self.controller, caller_function, attack_sub_dir, test_sub_dir)
 
     def order_test(self, attack_args, seed=None, cleanup=True, pcap=Lib.test_pcap,
                    flag_write_file=False, flag_recalculate_stats=False, flag_print_statistics=False,

+ 18 - 0
code/Test/efficiency_testing.py

@@ -0,0 +1,18 @@
+import ID2TLib.TestLibrary as Lib
+import Test.ID2TAttackTest as Test
+
+sha_10_000_packets = '1433f4f69e9311ca7f64920f94992a8e8fbd045433fc0143dc47dfd25a6a02c1'
+sha_100_000_packets = '4891720093ba32f9794431ee16815931b1866bccac58b8ef750b669742875fb0'
+
+
+class EfficiencyTests(Test.ID2TAttackTest):
+
+    def test_SMBLoris_10_000(self):
+        self.checksum_test([['SMBLorisAttack', 'attackers.count=30', 'packets.per-second=7.7']], sha_10_000_packets,
+                           time=True)
+        self.assertLessEqual(self.controller.durations[0], 15)
+
+    def test_SMBLoris_100_000(self):
+        self.checksum_test([['SMBLorisAttack', 'attackers.count=30', 'packets.per-second=95']], sha_100_000_packets,
+                           time=True)
+        self.assertLessEqual(self.controller.durations[0], 150)