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.
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/PKG-INFO +1 -1
- assemblyline-core-4.5.1.dev192/assemblyline_core/VERSION +1 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/dispatcher.py +23 -4
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core.egg-info/PKG-INFO +1 -1
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_dispatcher.py +3 -0
- assemblyline-core-4.5.1.dev191/assemblyline_core/VERSION +0 -1
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/LICENCE.md +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/README.md +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/alerter/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/alerter/processing.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/alerter/run_alerter.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/archiver/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/archiver/run_archiver.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/badlist_client.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/__main__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/client.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/schedules.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/dispatching/timeout.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/expiry/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/expiry/run_expiry.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/ingester/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/ingester/__main__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/ingester/constants.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/ingester/ingester.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/es_metrics.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/helper.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/metrics_server.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/plumber/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/plumber/run_plumber.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/client.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/creator/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/creator/run.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/creator/run_worker.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/loader/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/loader/run.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/loader/run_worker.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/replay.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/safelist_client.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/collection.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/controllers/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/controllers/interface.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/run_scaler.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/scaler/scaler_server.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/server_base.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/signature_client.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/submission_client.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/tasking_client.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/updater/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/updater/helper.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/updater/run_updater.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/crawler.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/department_map.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/safelist.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/stream_map.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/worker.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/workflow/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/workflow/run_workflow.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core.egg-info/SOURCES.txt +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core.egg-info/dependency_links.txt +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core.egg-info/requires.txt +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core.egg-info/top_level.txt +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/setup.cfg +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/setup.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_alerter.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_badlist_client.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_expiry.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_plumber.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_replay.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_safelist_client.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_scaler.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_scheduler.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_signature_client.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_simulation.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_vacuum.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_worker_ingest.py +0 -0
- {assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_worker_submit.py +0 -0
|
@@ -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
|
-
|
|
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
|
|
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
|
-
|
|
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=[
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/__init__.py
RENAMED
|
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
|
{assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/replay/replay.py
RENAMED
|
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
|
{assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/server_base.py
RENAMED
|
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
|
{assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/assemblyline_core/vacuum/worker.py
RENAMED
|
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
|
{assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_badlist_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_safelist_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_signature_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_worker_ingest.py
RENAMED
|
File without changes
|
{assemblyline-core-4.5.1.dev191 → assemblyline-core-4.5.1.dev192}/test/test_worker_submit.py
RENAMED
|
File without changes
|