assemblyline-core 4.5.1.dev20__tar.gz → 4.5.1.dev21__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.dev20 → assemblyline-core-4.5.1.dev21}/PKG-INFO +1 -1
  2. assemblyline-core-4.5.1.dev21/assemblyline_core/VERSION +1 -0
  3. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/metrics/metrics_server.py +5 -4
  4. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/vacuum/worker.py +13 -2
  5. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core.egg-info/PKG-INFO +1 -1
  6. assemblyline-core-4.5.1.dev20/assemblyline_core/VERSION +0 -1
  7. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/LICENCE.md +0 -0
  8. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/README.md +0 -0
  9. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/__init__.py +0 -0
  10. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/alerter/__init__.py +0 -0
  11. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/alerter/processing.py +0 -0
  12. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/alerter/run_alerter.py +0 -0
  13. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/archiver/__init__.py +0 -0
  14. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/archiver/run_archiver.py +0 -0
  15. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/badlist_client.py +0 -0
  16. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/dispatching/__init__.py +0 -0
  17. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/dispatching/__main__.py +0 -0
  18. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/dispatching/client.py +0 -0
  19. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/dispatching/dispatcher.py +0 -0
  20. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/dispatching/schedules.py +0 -0
  21. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/dispatching/timeout.py +0 -0
  22. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/expiry/__init__.py +0 -0
  23. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/expiry/run_expiry.py +0 -0
  24. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/ingester/__init__.py +0 -0
  25. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/ingester/__main__.py +0 -0
  26. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/ingester/constants.py +0 -0
  27. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/ingester/ingester.py +0 -0
  28. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/metrics/__init__.py +0 -0
  29. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/metrics/es_metrics.py +9 -9
  30. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
  31. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/metrics/helper.py +0 -0
  32. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
  33. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
  34. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
  35. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/plumber/__init__.py +0 -0
  36. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/plumber/run_plumber.py +0 -0
  37. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/replay/__init__.py +0 -0
  38. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/replay/client.py +0 -0
  39. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/replay/creator/__init__.py +0 -0
  40. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/replay/creator/run.py +0 -0
  41. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/replay/creator/run_worker.py +0 -0
  42. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/replay/loader/__init__.py +0 -0
  43. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/replay/loader/run.py +0 -0
  44. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/replay/loader/run_worker.py +0 -0
  45. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/replay/replay.py +0 -0
  46. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/safelist_client.py +0 -0
  47. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/scaler/__init__.py +0 -0
  48. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/scaler/collection.py +0 -0
  49. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/scaler/controllers/__init__.py +0 -0
  50. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
  51. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/scaler/controllers/interface.py +0 -0
  52. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
  53. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/scaler/run_scaler.py +0 -0
  54. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/scaler/scaler_server.py +0 -0
  55. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/server_base.py +0 -0
  56. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/signature_client.py +0 -0
  57. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/submission_client.py +0 -0
  58. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/tasking_client.py +0 -0
  59. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/updater/__init__.py +0 -0
  60. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/updater/helper.py +0 -0
  61. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/updater/run_updater.py +0 -0
  62. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/vacuum/__init__.py +0 -0
  63. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/vacuum/crawler.py +0 -0
  64. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/vacuum/department_map.py +0 -0
  65. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/vacuum/safelist.py +0 -0
  66. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/vacuum/stream_map.py +0 -0
  67. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/workflow/__init__.py +0 -0
  68. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core/workflow/run_workflow.py +0 -0
  69. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core.egg-info/SOURCES.txt +0 -0
  70. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core.egg-info/dependency_links.txt +0 -0
  71. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core.egg-info/requires.txt +0 -0
  72. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/assemblyline_core.egg-info/top_level.txt +0 -0
  73. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/setup.cfg +0 -0
  74. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/setup.py +0 -0
  75. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_alerter.py +0 -0
  76. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_badlist_client.py +0 -0
  77. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_dispatcher.py +0 -0
  78. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_expiry.py +0 -0
  79. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_plumber.py +0 -0
  80. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_replay.py +0 -0
  81. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_safelist_client.py +0 -0
  82. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_scaler.py +0 -0
  83. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_scheduler.py +0 -0
  84. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_signature_client.py +0 -0
  85. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_simulation.py +0 -0
  86. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_vacuum.py +0 -0
  87. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/test/test_worker_ingest.py +0 -0
  88. {assemblyline-core-4.5.1.dev20 → assemblyline-core-4.5.1.dev21}/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.dev20
3
+ Version: 4.5.1.dev21
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.dev21
@@ -4,10 +4,14 @@ import tempfile
4
4
  import sys
5
5
  import time
6
6
  from collections import Counter
7
- from threading import Lock
7
+ from threading import Lock, Thread
8
+ from os import environ, path
9
+ from urllib.parse import urlparse
8
10
 
9
11
  import elasticapm
10
12
  import elasticsearch
13
+ import requests
14
+ from packaging import version
11
15
 
12
16
  from apscheduler.schedulers.background import BackgroundScheduler
13
17
  from assemblyline_core.metrics.heartbeat_formatter import HeartbeatFormatter
@@ -16,9 +20,6 @@ from assemblyline_core.server_base import ServerBase
16
20
  from assemblyline.common.isotime import now_as_iso
17
21
  from assemblyline.common import forge
18
22
  from assemblyline.remote.datatypes.queues.comms import CommsQueue
19
- from os import environ, path
20
- from packaging import version
21
- from urllib.parse import urlparse
22
23
 
23
24
  METRICS_QUEUE = "assemblyline_metrics"
24
25
  NON_AGGREGATED = ['scaler', 'scaler_status']
@@ -21,7 +21,7 @@ from assemblyline.common.codec import decode_file
21
21
  from assemblyline.common.dict_utils import flatten
22
22
  from assemblyline.common.log import init_logging
23
23
  from assemblyline.common.metrics import MetricsFactory
24
- from assemblyline.datastore.helper import AssemblylineDatastore
24
+ from assemblyline.datastore.helper import AssemblylineDatastore, MetadataValidator
25
25
  from assemblyline.common import identify
26
26
  from assemblyline.common.isotime import now_as_iso
27
27
  from assemblyline.common.uid import get_random_id
@@ -164,6 +164,7 @@ class FileProcessor(threading.Thread):
164
164
  # Anything that can't be copied easily should be initialized in 'run'.
165
165
  self.config: Config = config
166
166
  self.datastore = datastore
167
+ self.metadata_check = MetadataValidator(datastore)
167
168
  self.counter = counter
168
169
  self.minimum_classification = self.config.core.vacuum.minimum_classification
169
170
  logger.info("Connect to work queue")
@@ -494,7 +495,7 @@ class FileProcessor(threading.Thread):
494
495
  # Extract email body strings or similar password settings
495
496
  password_strings = metadata.pop("email_strings", [])
496
497
  if not isinstance(password_strings, list):
497
- logger.warning("Unsupported password list format: " + str(password_strings))
498
+ logger.warning("Unsupported password list format: %s", password_strings)
498
499
  password_strings = []
499
500
 
500
501
  if password_strings:
@@ -504,6 +505,16 @@ class FileProcessor(threading.Thread):
504
505
  # Set description if it does not exists
505
506
  s_params['description'] = f"[{s_params['type']}] Inspection of file: {file_sha256}"
506
507
 
508
+ # Validate the metadata
509
+ while metadata:
510
+ metadata_error = self.metadata_check.check_metadata(metadata)
511
+ if metadata_error:
512
+ logger.error("Could not accept metadata %s on %s: %s", metadata_error[0],
513
+ file_sha256, metadata_error[1])
514
+ metadata.pop(metadata_error[0], None)
515
+ else:
516
+ break
517
+
507
518
  # Create submission object
508
519
  try:
509
520
  submission_obj = Submission({
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: assemblyline-core
3
- Version: 4.5.1.dev20
3
+ Version: 4.5.1.dev21
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.1.dev20
@@ -1,25 +1,25 @@
1
1
  import json
2
2
  import tempfile
3
-
4
- import elasticapm
3
+ import time
5
4
  import sys
5
+ from os import environ, path
6
+ from urllib.parse import urlparse
6
7
 
8
+ import elasticapm
7
9
  import elasticsearch
8
- import time
9
-
10
- from assemblyline_core.metrics.helper import with_retries, ensure_indexes
11
- from assemblyline_core.server_base import ServerBase
10
+ from packaging import version
12
11
 
13
12
  from assemblyline.common import forge
14
13
  from assemblyline.common.isotime import now_as_iso
15
14
 
16
- from os import environ, path
17
- from packaging import version
18
- from urllib.parse import urlparse
15
+ from assemblyline_core.metrics.helper import with_retries, ensure_indexes
16
+ from assemblyline_core.server_base import ServerBase
17
+
19
18
 
20
19
  METRICSTORE_ROOT_CA_PATH = environ.get('METRICSTORE_ROOT_CA_PATH', '/etc/assemblyline/ssl/al_root-ca.crt')
21
20
  METRICSTORE_VERIFY_CERTS = environ.get('METRICSTORE_VERIFY_CERTS', 'true').lower() == "true"
22
21
 
22
+
23
23
  class ESMetricsServer(ServerBase):
24
24
  """
25
25
  There can only be one of these type of metrics server running because it gathers elasticsearch metrics for