assemblyline-core 4.5.0.36__tar.gz → 4.5.0.38__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.36 → assemblyline-core-4.5.0.38}/PKG-INFO +1 -1
  2. assemblyline-core-4.5.0.38/assemblyline_core/VERSION +1 -0
  3. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/scaler/scaler_server.py +18 -11
  4. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/tasking_client.py +2 -2
  5. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core.egg-info/PKG-INFO +1 -1
  6. assemblyline-core-4.5.0.36/assemblyline_core/VERSION +0 -1
  7. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/LICENCE.md +0 -0
  8. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/README.md +0 -0
  9. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/__init__.py +0 -0
  10. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/alerter/__init__.py +0 -0
  11. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/alerter/processing.py +0 -0
  12. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/alerter/run_alerter.py +0 -0
  13. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/archiver/__init__.py +0 -0
  14. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/archiver/run_archiver.py +0 -0
  15. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/badlist_client.py +0 -0
  16. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/dispatching/__init__.py +0 -0
  17. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/dispatching/__main__.py +0 -0
  18. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/dispatching/client.py +0 -0
  19. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/dispatching/dispatcher.py +0 -0
  20. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/dispatching/schedules.py +0 -0
  21. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/dispatching/timeout.py +0 -0
  22. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/expiry/__init__.py +0 -0
  23. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/expiry/run_expiry.py +0 -0
  24. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/ingester/__init__.py +0 -0
  25. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/ingester/__main__.py +0 -0
  26. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/ingester/constants.py +0 -0
  27. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/ingester/ingester.py +0 -0
  28. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/metrics/__init__.py +0 -0
  29. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/metrics/es_metrics.py +0 -0
  30. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
  31. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/metrics/helper.py +0 -0
  32. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/metrics/metrics_server.py +0 -0
  33. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
  34. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
  35. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
  36. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/plumber/__init__.py +0 -0
  37. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/plumber/run_plumber.py +0 -0
  38. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/replay/__init__.py +0 -0
  39. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/replay/client.py +0 -0
  40. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/replay/creator/__init__.py +0 -0
  41. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/replay/creator/run.py +0 -0
  42. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/replay/creator/run_worker.py +0 -0
  43. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/replay/loader/__init__.py +0 -0
  44. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/replay/loader/run.py +0 -0
  45. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/replay/loader/run_worker.py +0 -0
  46. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/replay/replay.py +0 -0
  47. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/safelist_client.py +0 -0
  48. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/scaler/__init__.py +0 -0
  49. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/scaler/collection.py +0 -0
  50. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/scaler/controllers/__init__.py +0 -0
  51. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
  52. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/scaler/controllers/interface.py +0 -0
  53. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
  54. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/scaler/run_scaler.py +0 -0
  55. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/server_base.py +0 -0
  56. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/signature_client.py +0 -0
  57. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/submission_client.py +0 -0
  58. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/updater/__init__.py +0 -0
  59. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/updater/helper.py +0 -0
  60. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/updater/run_updater.py +0 -0
  61. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/vacuum/__init__.py +0 -0
  62. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/vacuum/crawler.py +0 -0
  63. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/vacuum/department_map.py +0 -0
  64. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/vacuum/safelist.py +0 -0
  65. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/vacuum/stream_map.py +0 -0
  66. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/vacuum/worker.py +0 -0
  67. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/workflow/__init__.py +0 -0
  68. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core/workflow/run_workflow.py +0 -0
  69. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core.egg-info/SOURCES.txt +0 -0
  70. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core.egg-info/dependency_links.txt +0 -0
  71. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core.egg-info/requires.txt +0 -0
  72. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/assemblyline_core.egg-info/top_level.txt +0 -0
  73. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/setup.cfg +0 -0
  74. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/setup.py +0 -0
  75. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_alerter.py +0 -0
  76. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_badlist_client.py +0 -0
  77. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_dispatcher.py +0 -0
  78. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_expiry.py +0 -0
  79. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_plumber.py +0 -0
  80. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_replay.py +0 -0
  81. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_safelist_client.py +0 -0
  82. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_scaler.py +0 -0
  83. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_scheduler.py +0 -0
  84. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_signature_client.py +0 -0
  85. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_simulation.py +0 -0
  86. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_vacuum.py +0 -0
  87. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/test/test_worker_ingest.py +0 -0
  88. {assemblyline-core-4.5.0.36 → assemblyline-core-4.5.0.38}/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.36
3
+ Version: 4.5.0.38
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.38
@@ -6,7 +6,7 @@ import functools
6
6
  import threading
7
7
  from collections import defaultdict
8
8
  from string import Template
9
- from typing import Optional, Any
9
+ from typing import Dict, Optional, Any
10
10
  import os
11
11
  import re
12
12
  import math
@@ -30,7 +30,7 @@ from assemblyline.odm.models.config import Mount
30
30
  from assemblyline.odm.messages.scaler_heartbeat import Metrics
31
31
  from assemblyline.odm.messages.scaler_status_heartbeat import Status
32
32
  from assemblyline.odm.messages.changes import ServiceChange, Operation
33
- from assemblyline.common.dict_utils import get_recursive_sorted_tuples
33
+ from assemblyline.common.dict_utils import get_recursive_sorted_tuples, flatten
34
34
  from assemblyline.common.uid import get_id_from_data
35
35
  from assemblyline.common.forge import get_classification, get_service_queue, get_apm_client
36
36
  from assemblyline.common.constants import SCALER_TIMEOUT_QUEUE, SERVICE_STATE_HASH, ServiceStatus
@@ -269,17 +269,24 @@ class ScalerServer(ThreadedCoreBase):
269
269
  self.service_change_watcher.register('changes.services.*', self._handle_service_change_event)
270
270
 
271
271
  core_env: dict[str, str] = {}
272
+
272
273
  # If we have privileged services, we must be able to pass the necessary environment variables for them to
273
274
  # function properly.
274
- for secret in re.findall(r'\${\w+}', open('/etc/assemblyline/config.yml', 'r').read()):
275
- env_name = secret.strip("${}")
276
- try:
277
- core_env[env_name] = os.environ[env_name]
278
- except KeyError:
279
- # Don't pass through variables that scaler doesn't have
280
- # they are likely specific to other components and shouldn't
281
- # be shared with privileged services.
282
- pass
275
+ with open('/etc/assemblyline/config.yml') as fh:
276
+ flattened_config: Dict[str, Any] = flatten(yaml.safe_load(fh.read()))
277
+
278
+ # Limit secrets to be shared to very specific configurations
279
+ for cfg in ["datastore.hosts", "filestore.archive", "filestore.cache", "filestore.storage"]:
280
+ for conn_str in flattened_config.get(cfg, []):
281
+ # Look for any secrets that need to passed onto services via env
282
+ for secret in Template(conn_str).get_identifiers():
283
+ try:
284
+ core_env[secret] = os.environ[secret]
285
+ except KeyError:
286
+ # Don't pass through variables that scaler doesn't have
287
+ # they are likely specific to other components and shouldn't
288
+ # be shared with privileged services.
289
+ pass
283
290
 
284
291
  labels = {
285
292
  'app': 'assemblyline',
@@ -8,7 +8,7 @@ from assemblyline.common import forge
8
8
  from assemblyline.common.constants import SERVICE_STATE_HASH, ServiceStatus
9
9
  from assemblyline.common.dict_utils import flatten, unflatten
10
10
  from assemblyline.common.heuristics import HeuristicHandler, InvalidHeuristicException
11
- from assemblyline.common.isotime import now_as_iso
11
+ from assemblyline.common.isotime import now_as_iso, now_as_utc_datetime
12
12
  from assemblyline.common.threading import APMAwareThreadPoolExecutor
13
13
  from assemblyline.datastore.helper import AssemblylineDatastore
14
14
  from assemblyline.filestore import FileStore
@@ -264,7 +264,7 @@ class TaskingClient:
264
264
  result.archive_ts = None
265
265
 
266
266
  if task.ttl and result.expiry_ts:
267
- result.expiry_ts = max(result.expiry_ts, now_as_iso(task.ttl * 24 * 60 * 60))
267
+ result.expiry_ts = max(result.expiry_ts, now_as_utc_datetime(task.ttl * 24 * 60 * 60))
268
268
 
269
269
  # Create a list of files to freshen
270
270
  freshen_hashes = [task.fileinfo.sha256]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: assemblyline-core
3
- Version: 4.5.0.36
3
+ Version: 4.5.0.38
4
4
  Summary: Assemblyline 4 - Core components
5
5
  Home-page: https://github.com/CybercentreCanada/assemblyline-core/
6
6
  Author: CCCS Assemblyline development team
@@ -1 +0,0 @@
1
- 4.5.0.36