assemblyline-core 4.5.0.61__tar.gz → 4.5.0.63__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.61 → assemblyline-core-4.5.0.63}/PKG-INFO +1 -1
  2. assemblyline-core-4.5.0.63/assemblyline_core/VERSION +1 -0
  3. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/ingester/ingester.py +4 -3
  4. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/vacuum/worker.py +10 -4
  5. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core.egg-info/PKG-INFO +1 -1
  6. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_vacuum.py +2 -1
  7. assemblyline-core-4.5.0.61/assemblyline_core/VERSION +0 -1
  8. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/LICENCE.md +0 -0
  9. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/README.md +0 -0
  10. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/__init__.py +0 -0
  11. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/alerter/__init__.py +0 -0
  12. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/alerter/processing.py +0 -0
  13. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/alerter/run_alerter.py +0 -0
  14. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/archiver/__init__.py +0 -0
  15. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/archiver/run_archiver.py +0 -0
  16. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/badlist_client.py +0 -0
  17. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/dispatching/__init__.py +0 -0
  18. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/dispatching/__main__.py +0 -0
  19. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/dispatching/client.py +0 -0
  20. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/dispatching/dispatcher.py +0 -0
  21. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/dispatching/schedules.py +0 -0
  22. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/dispatching/timeout.py +0 -0
  23. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/expiry/__init__.py +0 -0
  24. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/expiry/run_expiry.py +0 -0
  25. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/ingester/__init__.py +0 -0
  26. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/ingester/__main__.py +0 -0
  27. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/ingester/constants.py +0 -0
  28. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/metrics/__init__.py +0 -0
  29. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/metrics/es_metrics.py +0 -0
  30. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
  31. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/metrics/helper.py +0 -0
  32. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/metrics/metrics_server.py +0 -0
  33. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
  34. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
  35. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
  36. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/plumber/__init__.py +0 -0
  37. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/plumber/run_plumber.py +0 -0
  38. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/replay/__init__.py +0 -0
  39. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/replay/client.py +0 -0
  40. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/replay/creator/__init__.py +0 -0
  41. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/replay/creator/run.py +0 -0
  42. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/replay/creator/run_worker.py +0 -0
  43. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/replay/loader/__init__.py +0 -0
  44. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/replay/loader/run.py +0 -0
  45. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/replay/loader/run_worker.py +0 -0
  46. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/replay/replay.py +0 -0
  47. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/safelist_client.py +0 -0
  48. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/scaler/__init__.py +0 -0
  49. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/scaler/collection.py +0 -0
  50. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/scaler/controllers/__init__.py +0 -0
  51. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
  52. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/scaler/controllers/interface.py +0 -0
  53. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
  54. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/scaler/run_scaler.py +0 -0
  55. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/scaler/scaler_server.py +0 -0
  56. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/server_base.py +0 -0
  57. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/signature_client.py +0 -0
  58. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/submission_client.py +0 -0
  59. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/tasking_client.py +0 -0
  60. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/updater/__init__.py +0 -0
  61. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/updater/helper.py +0 -0
  62. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/updater/run_updater.py +0 -0
  63. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/vacuum/__init__.py +0 -0
  64. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/vacuum/crawler.py +0 -0
  65. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/vacuum/department_map.py +0 -0
  66. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/vacuum/safelist.py +0 -0
  67. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/vacuum/stream_map.py +0 -0
  68. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/workflow/__init__.py +0 -0
  69. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core/workflow/run_workflow.py +0 -0
  70. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core.egg-info/SOURCES.txt +0 -0
  71. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core.egg-info/dependency_links.txt +0 -0
  72. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core.egg-info/requires.txt +0 -0
  73. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/assemblyline_core.egg-info/top_level.txt +0 -0
  74. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/setup.cfg +0 -0
  75. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/setup.py +0 -0
  76. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_alerter.py +0 -0
  77. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_badlist_client.py +0 -0
  78. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_dispatcher.py +0 -0
  79. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_expiry.py +0 -0
  80. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_plumber.py +0 -0
  81. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_replay.py +0 -0
  82. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_safelist_client.py +0 -0
  83. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_scaler.py +0 -0
  84. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_scheduler.py +0 -0
  85. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_signature_client.py +0 -0
  86. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_simulation.py +0 -0
  87. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/test/test_worker_ingest.py +0 -0
  88. {assemblyline-core-4.5.0.61 → assemblyline-core-4.5.0.63}/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.61
3
+ Version: 4.5.0.63
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.63
@@ -20,6 +20,7 @@ import elasticapm
20
20
 
21
21
  from assemblyline.common.postprocess import ActionWorker
22
22
  from assemblyline_core.server_base import ThreadedCoreBase
23
+ from assemblyline.common.constants import DROP_PRIORITY
23
24
  from assemblyline.common.metrics import MetricsFactory
24
25
  from assemblyline.common.str_utils import dotdump, safe_str
25
26
  from assemblyline.common.exceptions import get_stacktrace_info
@@ -48,7 +49,6 @@ from .constants import INGEST_QUEUE_NAME, drop_chance, COMPLETE_QUEUE_NAME
48
49
 
49
50
  _dup_prefix = 'w-m-'
50
51
  _notification_queue_prefix = 'nq-'
51
- _min_priority = 1
52
52
  _max_retries = 10
53
53
  _retry_delay = 60 * 4 # Wait 4 minutes to retry
54
54
  _max_time = 2 * 24 * 60 * 60 # Wait 2 days for responses.
@@ -622,7 +622,8 @@ class Ingester(ThreadedCoreBase):
622
622
  # Reduce the priority by an order of magnitude for very old files.
623
623
  current_time = now()
624
624
  if priority and self.expired(current_time - task.submission.time.timestamp(), 0):
625
- priority = (priority / 10) or 1
625
+ # Round priority reduction to the nearest integer
626
+ priority = round(priority / 10)
626
627
 
627
628
  param.priority = priority
628
629
 
@@ -845,7 +846,7 @@ class Ingester(ThreadedCoreBase):
845
846
  sample_threshold = self.config.core.ingester.sampling_at
846
847
 
847
848
  dropped = False
848
- if priority <= _min_priority:
849
+ if priority == DROP_PRIORITY:
849
850
  dropped = True
850
851
  else:
851
852
  for level, rng in self.priority_range.items():
@@ -37,8 +37,10 @@ from assemblyline.common.str_utils import safe_str
37
37
  from assemblyline.remote.datatypes import get_client as get_redis_client
38
38
  from assemblyline.odm.messages.submission import Submission
39
39
  from assemblyline.remote.datatypes.queues.named import NamedQueue
40
+ from assemblyline.remote.datatypes.hash import Hash
40
41
 
41
42
  from assemblyline_core.vacuum.crawler import VACUUM_BUFFER_NAME
43
+ from assemblyline_core.ingester.constants import INGEST_QUEUE_NAME
42
44
 
43
45
  from .safelist import VacuumSafelist
44
46
  from .department_map import DepartmentMap
@@ -164,12 +166,16 @@ class FileProcessor(threading.Thread):
164
166
  # Anything that can't be copied easily should be initialized in 'run'.
165
167
  self.config: Config = config
166
168
  self.datastore = datastore
167
- self.metadata_check = MetadataValidator(datastore)
169
+ self.metadata_check = MetadataValidator(datastore, Hash("metadata_suggestions", persistent_redis))
170
+
171
+ # Merge the default metadata required for ingestion with those that are required from vacuum
172
+ validation_scheme = config.submission.metadata.ingest.get('_default', {})
173
+ validation_scheme.update(config.submission.metadata.ingest.get(self.config.core.vacuum.ingest_type, {}))
174
+
168
175
  self.metadata_check_kwargs = {
169
- 'validation_scheme': self.config.submission.metadata.ingest.get(self.config.core.vacuum.ingest_type, {}),
176
+ 'validation_scheme': validation_scheme,
170
177
  'strict': self.config.core.vacuum.ingest_type in self.config.submission.metadata.strict_schemes
171
178
  }
172
- self.validation_scheme = self.config.submission.metadata.ingest.get(self.config.core.vacuum.ingest_type, {})
173
179
  self.counter = counter
174
180
  self.minimum_classification = self.config.core.vacuum.minimum_classification
175
181
  logger.info("Connect to work queue")
@@ -184,7 +190,7 @@ class FileProcessor(threading.Thread):
184
190
  self.identify = identifier
185
191
 
186
192
  self.traffic_queue = CommsQueue('submissions', redis)
187
- self.ingest_queue = NamedQueue("m-ingest", persistent_redis)
193
+ self.ingest_queue = NamedQueue(INGEST_QUEUE_NAME, persistent_redis)
188
194
  self.service_list = CachedObject(self.datastore.list_all_services, kwargs={'as_obj': False, 'full': True})
189
195
 
190
196
  with self.profile_lock:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: assemblyline-core
3
- Version: 4.5.0.61
3
+ Version: 4.5.0.63
4
4
  Summary: Assemblyline 4 - Core components
5
5
  Home-page: https://github.com/CybercentreCanada/assemblyline-core/
6
6
  Author: CCCS Assemblyline development team
@@ -12,6 +12,7 @@ import threading
12
12
  from assemblyline.odm.models.config import Config, MetadataConfig
13
13
  from assemblyline.remote.datatypes.queues.named import NamedQueue
14
14
  from assemblyline_core.vacuum import crawler, worker
15
+ from assemblyline_core.ingester.constants import INGEST_QUEUE_NAME
15
16
 
16
17
 
17
18
  def test_crawler(config: Config, redis_connection):
@@ -110,7 +111,7 @@ def test_worker(config: Config, redis_connection):
110
111
  queue.push(second_file)
111
112
 
112
113
  # Get a message from for the ingested file
113
- ingest_queue = NamedQueue("m-ingest", redis_connection)
114
+ ingest_queue = NamedQueue(INGEST_QUEUE_NAME, redis_connection)
114
115
  ingested = ingest_queue.pop(timeout=20)
115
116
  assert ingested is not None
116
117
  assert ingested['files'][0]['sha256'] == sha256
@@ -1 +0,0 @@
1
- 4.5.0.61