assemblyline-core 4.5.0.39__tar.gz → 4.5.0.40__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.

Potentially problematic release.


This version of assemblyline-core might be problematic. Click here for more details.

Files changed (88) hide show
  1. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/PKG-INFO +1 -1
  2. assemblyline-core-4.5.0.40/assemblyline_core/VERSION +1 -0
  3. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/dispatching/dispatcher.py +23 -4
  4. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/dispatching/schedules.py +1 -1
  5. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core.egg-info/PKG-INFO +1 -1
  6. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_dispatcher.py +3 -0
  7. assemblyline-core-4.5.0.39/assemblyline_core/VERSION +0 -1
  8. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/LICENCE.md +0 -0
  9. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/README.md +0 -0
  10. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/__init__.py +0 -0
  11. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/alerter/__init__.py +0 -0
  12. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/alerter/processing.py +0 -0
  13. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/alerter/run_alerter.py +0 -0
  14. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/archiver/__init__.py +0 -0
  15. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/archiver/run_archiver.py +0 -0
  16. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/badlist_client.py +0 -0
  17. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/dispatching/__init__.py +0 -0
  18. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/dispatching/__main__.py +0 -0
  19. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/dispatching/client.py +0 -0
  20. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/dispatching/timeout.py +0 -0
  21. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/expiry/__init__.py +0 -0
  22. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/expiry/run_expiry.py +0 -0
  23. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/ingester/__init__.py +0 -0
  24. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/ingester/__main__.py +0 -0
  25. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/ingester/constants.py +0 -0
  26. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/ingester/ingester.py +0 -0
  27. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/metrics/__init__.py +0 -0
  28. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/metrics/es_metrics.py +0 -0
  29. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
  30. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/metrics/helper.py +0 -0
  31. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/metrics/metrics_server.py +0 -0
  32. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
  33. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
  34. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
  35. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/plumber/__init__.py +0 -0
  36. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/plumber/run_plumber.py +0 -0
  37. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/replay/__init__.py +0 -0
  38. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/replay/client.py +0 -0
  39. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/replay/creator/__init__.py +0 -0
  40. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/replay/creator/run.py +0 -0
  41. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/replay/creator/run_worker.py +0 -0
  42. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/replay/loader/__init__.py +0 -0
  43. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/replay/loader/run.py +0 -0
  44. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/replay/loader/run_worker.py +0 -0
  45. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/replay/replay.py +0 -0
  46. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/safelist_client.py +0 -0
  47. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/scaler/__init__.py +0 -0
  48. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/scaler/collection.py +0 -0
  49. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/scaler/controllers/__init__.py +0 -0
  50. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
  51. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/scaler/controllers/interface.py +0 -0
  52. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
  53. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/scaler/run_scaler.py +0 -0
  54. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/scaler/scaler_server.py +0 -0
  55. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/server_base.py +0 -0
  56. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/signature_client.py +0 -0
  57. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/submission_client.py +0 -0
  58. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/tasking_client.py +0 -0
  59. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/updater/__init__.py +0 -0
  60. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/updater/helper.py +0 -0
  61. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/updater/run_updater.py +0 -0
  62. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/vacuum/__init__.py +0 -0
  63. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/vacuum/crawler.py +0 -0
  64. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/vacuum/department_map.py +0 -0
  65. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/vacuum/safelist.py +0 -0
  66. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/vacuum/stream_map.py +0 -0
  67. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/vacuum/worker.py +0 -0
  68. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/workflow/__init__.py +0 -0
  69. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core/workflow/run_workflow.py +0 -0
  70. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core.egg-info/SOURCES.txt +0 -0
  71. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core.egg-info/dependency_links.txt +0 -0
  72. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core.egg-info/requires.txt +0 -0
  73. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/assemblyline_core.egg-info/top_level.txt +0 -0
  74. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/setup.cfg +0 -0
  75. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/setup.py +0 -0
  76. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_alerter.py +0 -0
  77. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_badlist_client.py +0 -0
  78. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_expiry.py +0 -0
  79. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_plumber.py +0 -0
  80. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_replay.py +0 -0
  81. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_safelist_client.py +0 -0
  82. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_scaler.py +0 -0
  83. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_scheduler.py +0 -0
  84. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_signature_client.py +0 -0
  85. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_simulation.py +0 -0
  86. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_vacuum.py +0 -0
  87. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_worker_ingest.py +0 -0
  88. {assemblyline-core-4.5.0.39 → assemblyline-core-4.5.0.40}/test/test_worker_submit.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: assemblyline-core
3
- Version: 4.5.0.39
3
+ Version: 4.5.0.40
4
4
  Summary: Assemblyline 4 - Core components
5
5
  Home-page: https://github.com/CybercentreCanada/assemblyline-core/
6
6
  Author: CCCS Assemblyline development team
@@ -0,0 +1 @@
1
+ 4.5.0.40
@@ -60,9 +60,11 @@ AL_SHUTDOWN_QUIT = 60
60
60
  FINALIZING_WINDOW = max(AL_SHUTDOWN_GRACE - AL_SHUTDOWN_QUIT, 0)
61
61
  RESULT_BATCH_SIZE = int(os.environ.get('DISPATCHER_RESULT_BATCH_SIZE', '50'))
62
62
  ERROR_BATCH_SIZE = int(os.environ.get('DISPATCHER_ERROR_BATCH_SIZE', '50'))
63
- DYNAMIC_ANALYSIS_CATEGORY = 'Dynamic Analysis'
64
63
  DAY_IN_SECONDS = 24 * 60 * 60
65
64
 
65
+ # TODO: DYNAMIC_ANALYSIS_CATEGORY can be removed after assemblyline version 4.6+
66
+ DYNAMIC_ANALYSIS_CATEGORY = 'Dynamic Analysis'
67
+
66
68
 
67
69
  class Action(enum.IntEnum):
68
70
  start = 0
@@ -165,9 +167,16 @@ class SubmissionTask:
165
167
  service = scheduler.services.get(service)
166
168
  if not service:
167
169
  continue
170
+
171
+ # TODO: the following 2 lines can be removed when assemblyline changed to version 4.6+
168
172
  if service.category == DYNAMIC_ANALYSIS_CATEGORY:
169
173
  self.forbid_for_children(sha256, service.name)
170
174
 
175
+ prevented_services = scheduler.expand_categories(service.recursion_prevention)
176
+
177
+ for service_name in prevented_services:
178
+ self.forbid_for_children(sha256, service_name)
179
+
171
180
  # Replay the process of receiving results for dispatcher internal state
172
181
  for k, result in results.items():
173
182
  sha256, service, _ = k.split('.', 2)
@@ -204,6 +213,7 @@ class SubmissionTask:
204
213
  except KeyError:
205
214
  self._forbidden_services[sha256] = {service_name}
206
215
 
216
+
207
217
  def register_children(self, parent: str, children: list[str]):
208
218
  """
209
219
  Note for the purposes of dynamic recursion prevention which
@@ -658,7 +668,8 @@ class Dispatcher(ThreadedCoreBase):
658
668
 
659
669
  # If Dynamic Recursion Prevention is in effect and the file is not part of the bypass list,
660
670
  # Find the list of services this file is forbidden from being sent to.
661
- ignore_drp = submission.params.ignore_dynamic_recursion_prevention
671
+ # TODO: remove "or submission.params.ignore_dynamic_recursion_prevention" after assemblyline upgrade to version 4.6+
672
+ ignore_drp = submission.params.ignore_recursion_prevention or submission.params.ignore_dynamic_recursion_prevention
662
673
  if not ignore_drp and sha256 not in task.dynamic_recursion_bypass:
663
674
  forbidden_services = task.find_recursion_excluded_services(sha256)
664
675
 
@@ -753,10 +764,17 @@ class Dispatcher(ThreadedCoreBase):
753
764
  if service.uses_tag_scores:
754
765
  tag_fields.append('score')
755
766
 
756
- # Mark this routing for the purposes of dynamic recursion prevention
767
+ # Mark this routing for the purposes of recursion prevention
768
+ # TODO: The following 2 lines can be removed after assemblyline upgrade to version 4.6+
757
769
  if service.category == DYNAMIC_ANALYSIS_CATEGORY:
758
770
  task.forbid_for_children(sha256, service_name)
759
771
 
772
+ prevented_services = self.scheduler.expand_categories(service.recursion_prevention)
773
+
774
+ for service_name in prevented_services:
775
+ task.forbid_for_children(sha256, service_name)
776
+
777
+
760
778
  # Build the actual service dispatch message
761
779
  config = self.build_service_config(service, submission)
762
780
  service_task = ServiceTask(dict(
@@ -771,7 +789,8 @@ class Dispatcher(ThreadedCoreBase):
771
789
  max_files=task.submission.params.max_extracted,
772
790
  ttl=submission.params.ttl,
773
791
  ignore_cache=submission.params.ignore_cache,
774
- ignore_dynamic_recursion_prevention=submission.params.ignore_dynamic_recursion_prevention,
792
+ # TODO: remove "or submission.params.ignore_dynamic_recursion_prevention" after assemblyline upgrade to version 4.6+
793
+ ignore_recursion_prevention=submission.params.ignore_recursion_prevention or submission.params.ignore_dynamic_recursion_prevention ,
775
794
  ignore_filtering=ignore_filtering,
776
795
  tags=[{field: x[field] for field in tag_fields} for x in tags],
777
796
  temporary_submission_data=[
@@ -112,7 +112,7 @@ class Scheduler:
112
112
  # things that we need to evaluate, and mark this
113
113
  # group as having been seen.
114
114
  services.extend(categories[name])
115
- seen_categories.update(name)
115
+ seen_categories.add(name)
116
116
  continue
117
117
 
118
118
  # If it isn't a category, its a service
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: assemblyline-core
3
- Version: 4.5.0.39
3
+ Version: 4.5.0.40
4
4
  Summary: Assemblyline 4 - Core components
5
5
  Home-page: https://github.com/CybercentreCanada/assemblyline-core/
6
6
  Author: CCCS Assemblyline development team
@@ -310,7 +310,10 @@ def test_dispatch_extracted_bypass_drp(clean_redis, clean_datastore):
310
310
  # Inject the fake submission
311
311
  submission = random_model_obj(Submission)
312
312
  submission.to_be_deleted = False
313
+
314
+ # the following 1 line can be removed after assemblyline upgrade to version 4.6+
313
315
  submission.params.ignore_dynamic_recursion_prevention = False
316
+ submission.params.ignore_recursion_prevention = False
314
317
  submission.params.services.selected = ['extract', 'sandbox']
315
318
  submission.files = [dict(name='./file', sha256=file_hash)]
316
319
  sid = submission.sid = 'first-submission'
@@ -1 +0,0 @@
1
- 4.5.0.39