assemblyline-core 4.5.1.dev191__tar.gz → 4.5.1.dev192__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.1.dev191 → assemblyline-core-4.5.1.dev192}/PKG-INFO +1 -1
  2. assemblyline-core-4.5.1.dev192/assemblyline_core/VERSION +1 -0
  3. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/dispatcher.py +23 -4
  4. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core.egg-info/PKG-INFO +1 -1
  5. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_dispatcher.py +3 -0
  6. assemblyline-core-4.5.1.dev191/assemblyline_core/VERSION +0 -1
  7. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/LICENCE.md +0 -0
  8. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/README.md +0 -0
  9. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/__init__.py +0 -0
  10. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/alerter/__init__.py +0 -0
  11. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/alerter/processing.py +0 -0
  12. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/alerter/run_alerter.py +0 -0
  13. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/archiver/__init__.py +0 -0
  14. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/archiver/run_archiver.py +0 -0
  15. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/badlist_client.py +0 -0
  16. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/__init__.py +0 -0
  17. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/__main__.py +0 -0
  18. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/client.py +0 -0
  19. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/schedules.py +0 -0
  20. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/timeout.py +0 -0
  21. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/expiry/__init__.py +0 -0
  22. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/expiry/run_expiry.py +0 -0
  23. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/ingester/__init__.py +0 -0
  24. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/ingester/__main__.py +0 -0
  25. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/ingester/constants.py +0 -0
  26. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/ingester/ingester.py +0 -0
  27. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/__init__.py +0 -0
  28. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/es_metrics.py +0 -0
  29. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
  30. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/helper.py +0 -0
  31. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/metrics_server.py +0 -0
  32. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
  33. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
  34. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
  35. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/plumber/__init__.py +0 -0
  36. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/plumber/run_plumber.py +0 -0
  37. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/__init__.py +0 -0
  38. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/client.py +0 -0
  39. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/creator/__init__.py +0 -0
  40. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/creator/run.py +0 -0
  41. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/creator/run_worker.py +0 -0
  42. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/loader/__init__.py +0 -0
  43. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/loader/run.py +0 -0
  44. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/loader/run_worker.py +0 -0
  45. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/replay.py +0 -0
  46. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/safelist_client.py +0 -0
  47. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/__init__.py +0 -0
  48. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/collection.py +0 -0
  49. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/controllers/__init__.py +0 -0
  50. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
  51. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/controllers/interface.py +0 -0
  52. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
  53. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/run_scaler.py +0 -0
  54. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/scaler_server.py +0 -0
  55. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/server_base.py +0 -0
  56. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/signature_client.py +0 -0
  57. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/submission_client.py +0 -0
  58. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/tasking_client.py +0 -0
  59. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/updater/__init__.py +0 -0
  60. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/updater/helper.py +0 -0
  61. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/updater/run_updater.py +0 -0
  62. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/__init__.py +0 -0
  63. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/crawler.py +0 -0
  64. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/department_map.py +0 -0
  65. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/safelist.py +0 -0
  66. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/stream_map.py +0 -0
  67. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/worker.py +0 -0
  68. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/workflow/__init__.py +0 -0
  69. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/workflow/run_workflow.py +0 -0
  70. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core.egg-info/SOURCES.txt +0 -0
  71. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core.egg-info/dependency_links.txt +0 -0
  72. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core.egg-info/requires.txt +0 -0
  73. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core.egg-info/top_level.txt +0 -0
  74. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/setup.cfg +0 -0
  75. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/setup.py +0 -0
  76. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_alerter.py +0 -0
  77. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_badlist_client.py +0 -0
  78. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_expiry.py +0 -0
  79. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_plumber.py +0 -0
  80. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_replay.py +0 -0
  81. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_safelist_client.py +0 -0
  82. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_scaler.py +0 -0
  83. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_scheduler.py +0 -0
  84. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_signature_client.py +0 -0
  85. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_simulation.py +0 -0
  86. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_vacuum.py +0 -0
  87. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_worker_ingest.py +0 -0
  88. {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/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.1.dev191
3
+ Version: 4.5.1.dev192
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.1.dev192
@@ -59,9 +59,11 @@ AL_SHUTDOWN_QUIT = 60
59
59
  FINALIZING_WINDOW = max(AL_SHUTDOWN_GRACE - AL_SHUTDOWN_QUIT, 0)
60
60
  RESULT_BATCH_SIZE = int(os.environ.get('DISPATCHER_RESULT_BATCH_SIZE', '50'))
61
61
  ERROR_BATCH_SIZE = int(os.environ.get('DISPATCHER_ERROR_BATCH_SIZE', '50'))
62
- DYNAMIC_ANALYSIS_CATEGORY = 'Dynamic Analysis'
63
62
  DAY_IN_SECONDS = 24 * 60 * 60
64
63
 
64
+ # TODO: DYNAMIC_ANALYSIS_CATEGORY can be removed after assemblyline version
65
+ DYNAMIC_ANALYSIS_CATEGORY = 'Dynamic Analysis'
66
+
65
67
 
66
68
  class KeyType(enum.Enum):
67
69
  OVERWRITE = 'overwrite'
@@ -327,9 +329,16 @@ class SubmissionTask:
327
329
  service = scheduler.services.get(service)
328
330
  if not service:
329
331
  continue
332
+
333
+ # TODO: the following 2 lines can be removed when assemblyline changed to version 4.6+
330
334
  if service.category == DYNAMIC_ANALYSIS_CATEGORY:
331
335
  self.forbid_for_children(sha256, service.name)
332
336
 
337
+ prevented_services = scheduler.expand_categories(service.recursion_prevention)
338
+
339
+ for service_name in prevented_services:
340
+ self.forbid_for_children(sha256, service_name)
341
+
333
342
  # Replay the process of receiving results for dispatcher internal state
334
343
  for k, result in results.items():
335
344
  sha256, service, _ = k.split('.', 2)
@@ -367,6 +376,7 @@ class SubmissionTask:
367
376
  except KeyError:
368
377
  self._forbidden_services[sha256] = {service_name}
369
378
 
379
+
370
380
  def register_children(self, parent: str, children: list[str]):
371
381
  """
372
382
  Note which files extracted other files.
@@ -892,7 +902,8 @@ class Dispatcher(ThreadedCoreBase):
892
902
 
893
903
  # If Dynamic Recursion Prevention is in effect and the file is not part of the bypass list,
894
904
  # Find the list of services this file is forbidden from being sent to.
895
- ignore_drp = submission.params.ignore_dynamic_recursion_prevention
905
+ # TODO: remove "or submission.params.ignore_dynamic_recursion_prevention" after assemblyline upgrade to version 4.6+
906
+ ignore_drp = submission.params.ignore_recursion_prevention or submission.params.ignore_dynamic_recursion_prevention
896
907
  if not ignore_drp and sha256 not in task.dynamic_recursion_bypass:
897
908
  forbidden_services = task.find_recursion_excluded_services(sha256)
898
909
 
@@ -990,10 +1001,17 @@ class Dispatcher(ThreadedCoreBase):
990
1001
  if service.uses_tag_scores:
991
1002
  tag_fields.append('score')
992
1003
 
993
- # Mark this routing for the purposes of dynamic recursion prevention
1004
+ # Mark this routing for the purposes of recursion prevention
1005
+ # TODO: The following 2 lines can be removed after assemblyline upgrade to version 4.6+
994
1006
  if service.category == DYNAMIC_ANALYSIS_CATEGORY:
995
1007
  task.forbid_for_children(sha256, service_name)
996
1008
 
1009
+ prevented_services = self.scheduler.expand_categories(service.recursion_prevention)
1010
+
1011
+ for service_name in prevented_services:
1012
+ task.forbid_for_children(sha256, service_name)
1013
+
1014
+
997
1015
  # Build the actual service dispatch message
998
1016
  config = self.build_service_config(service, submission)
999
1017
  service_task = ServiceTask(dict(
@@ -1008,7 +1026,8 @@ class Dispatcher(ThreadedCoreBase):
1008
1026
  max_files=task.submission.params.max_extracted,
1009
1027
  ttl=submission.params.ttl,
1010
1028
  ignore_cache=submission.params.ignore_cache,
1011
- ignore_dynamic_recursion_prevention=submission.params.ignore_dynamic_recursion_prevention,
1029
+ # TODO: remove "or submission.params.ignore_dynamic_recursion_prevention" after assemblyline upgrade to version 4.6+
1030
+ ignore_recursion_prevention=submission.params.ignore_recursion_prevention or submission.params.ignore_dynamic_recursion_prevention ,
1012
1031
  ignore_filtering=ignore_filtering,
1013
1032
  tags=[{field: x[field] for field in tag_fields} for x in tags],
1014
1033
  temporary_submission_data=[
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: assemblyline-core
3
- Version: 4.5.1.dev191
3
+ Version: 4.5.1.dev192
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.1.dev191