assemblyline 4.7.5.dev15__tar.gz → 4.7.5.dev16__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.
Files changed (179) hide show
  1. {assemblyline-4.7.5.dev15/assemblyline.egg-info → assemblyline-4.7.5.dev16}/PKG-INFO +1 -1
  2. assemblyline-4.7.5.dev16/assemblyline/VERSION +1 -0
  3. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/filestore/__init__.py +5 -7
  4. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/filestore/transport/azure.py +10 -4
  5. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/filestore/transport/base.py +3 -0
  6. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/filestore/transport/ftp.py +6 -1
  7. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/filestore/transport/s3.py +7 -1
  8. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/filestore/transport/sftp.py +5 -2
  9. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16/assemblyline.egg-info}/PKG-INFO +1 -1
  10. assemblyline-4.7.5.dev15/assemblyline/VERSION +0 -1
  11. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/LICENCE.md +0 -0
  12. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/MANIFEST.in +0 -0
  13. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/README.md +0 -0
  14. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/__init__.py +0 -0
  15. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/cachestore/__init__.py +0 -0
  16. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/__init__.py +0 -0
  17. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/archiving.py +0 -0
  18. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/attack_map.py +0 -0
  19. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/backupmanager.py +0 -0
  20. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/banner.py +0 -0
  21. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/bundling.py +0 -0
  22. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/caching.py +0 -0
  23. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/chunk.py +0 -0
  24. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/classification.py +0 -0
  25. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/classification.yml +0 -0
  26. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/cleanup_filestore.py +0 -0
  27. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/codec.py +0 -0
  28. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/comms.py +0 -0
  29. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/constants.py +0 -0
  30. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/custom.magic +0 -0
  31. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/custom.yara +0 -0
  32. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/dict_utils.py +0 -0
  33. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/digests.py +0 -0
  34. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/dispatcher.py +0 -0
  35. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/entropy.py +0 -0
  36. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/exceptions.py +0 -0
  37. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/file.py +0 -0
  38. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/forge.py +0 -0
  39. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/heuristics.py +0 -0
  40. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/hexdump.py +0 -0
  41. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/identify.py +0 -0
  42. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/identify_defaults.py +0 -0
  43. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/importing.py +0 -0
  44. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/iprange.py +0 -0
  45. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/isotime.py +0 -0
  46. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/log.py +0 -0
  47. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/logformat.py +0 -0
  48. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/lucene.lark +0 -0
  49. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/memory_zip.py +0 -0
  50. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/metrics.py +0 -0
  51. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/net.py +0 -0
  52. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/net_static.py +0 -0
  53. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/null.py +0 -0
  54. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/path.py +0 -0
  55. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/postprocess.py +0 -0
  56. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/random_user.py +0 -0
  57. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/safe_archive.py +0 -0
  58. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/security.py +0 -0
  59. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/signaturing.py +0 -0
  60. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/str_utils.py +0 -0
  61. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/tag_safelist.yml +0 -0
  62. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/tagging.py +0 -0
  63. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/threading.py +0 -0
  64. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/uid.py +0 -0
  65. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/common/version.py +0 -0
  66. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datasource/__init__.py +0 -0
  67. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datasource/al.py +0 -0
  68. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datasource/alert.py +0 -0
  69. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datasource/common.py +0 -0
  70. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datastore/__init__.py +0 -0
  71. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datastore/bulk.py +0 -0
  72. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datastore/collection.py +0 -0
  73. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datastore/exceptions.py +0 -0
  74. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datastore/helper.py +0 -0
  75. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datastore/store.py +0 -0
  76. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datastore/support/__init__.py +0 -0
  77. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datastore/support/build.py +0 -0
  78. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/datastore/support/schemas.py +0 -0
  79. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/filestore/transport/__init__.py +0 -0
  80. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/filestore/transport/http.py +0 -0
  81. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/filestore/transport/local.py +0 -0
  82. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/__init__.py +0 -0
  83. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/base.py +0 -0
  84. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/common.py +0 -0
  85. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/__init__.py +0 -0
  86. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/alert.py +0 -0
  87. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/alerter_heartbeat.py +0 -0
  88. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/archive_heartbeat.py +0 -0
  89. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/changes.py +0 -0
  90. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/dispatcher_heartbeat.py +0 -0
  91. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/dispatching.py +0 -0
  92. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/elastic_heartbeat.py +0 -0
  93. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/expiry_heartbeat.py +0 -0
  94. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/ingest_heartbeat.py +0 -0
  95. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/metrics.py +0 -0
  96. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/retrohunt_heartbeat.py +0 -0
  97. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/scaler_heartbeat.py +0 -0
  98. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/scaler_status_heartbeat.py +0 -0
  99. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/service_heartbeat.py +0 -0
  100. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/service_timing_heartbeat.py +0 -0
  101. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/submission.py +0 -0
  102. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/task.py +0 -0
  103. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/messages/vacuum_heartbeat.py +0 -0
  104. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/__init__.py +0 -0
  105. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/actions.py +0 -0
  106. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/alert.py +0 -0
  107. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/apikey.py +0 -0
  108. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/badlist.py +0 -0
  109. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/cached_file.py +0 -0
  110. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/config.py +0 -0
  111. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/emptyresult.py +0 -0
  112. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/error.py +0 -0
  113. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/file.py +0 -0
  114. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/filescore.py +0 -0
  115. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/heuristic.py +0 -0
  116. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/__init__.py +0 -0
  117. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/file.py +0 -0
  118. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/filetypes/__init__.py +0 -0
  119. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/filetypes/pe.py +0 -0
  120. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/ontology.py +0 -0
  121. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/results/__init__.py +0 -0
  122. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/results/antivirus.py +0 -0
  123. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/results/http.py +0 -0
  124. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/results/malware_config.py +0 -0
  125. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/results/network.py +0 -0
  126. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/results/process.py +0 -0
  127. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/results/sandbox.py +0 -0
  128. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/ontology/results/signature.py +0 -0
  129. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/replay.py +0 -0
  130. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/result.py +0 -0
  131. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/retrohunt.py +0 -0
  132. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/safelist.py +0 -0
  133. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/service.py +0 -0
  134. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/service_delta.py +0 -0
  135. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/signature.py +0 -0
  136. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/statistics.py +0 -0
  137. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/submission.py +0 -0
  138. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/submission_summary.py +0 -0
  139. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/submission_tree.py +0 -0
  140. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/tagging.py +0 -0
  141. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/user.py +0 -0
  142. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/user_favorites.py +0 -0
  143. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/user_settings.py +0 -0
  144. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/models/workflow.py +0 -0
  145. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/random_data/__init__.py +0 -0
  146. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/random_data/create_test_data.py +0 -0
  147. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/random_data/sample_rules.yar +0 -0
  148. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/random_data/sample_suricata.rules +0 -0
  149. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/odm/randomizer.py +0 -0
  150. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/py.typed +0 -0
  151. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/__init__.py +0 -0
  152. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/__init__.py +0 -0
  153. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/cache.py +0 -0
  154. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/counters.py +0 -0
  155. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/daily_quota_tracker.py +0 -0
  156. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/events.py +0 -0
  157. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/exporting_counter.py +0 -0
  158. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/hash.py +0 -0
  159. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/lock.py +0 -0
  160. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/queues/__init__.py +0 -0
  161. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/queues/comms.py +0 -0
  162. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/queues/multi.py +0 -0
  163. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/queues/named.py +0 -0
  164. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/queues/priority.py +0 -0
  165. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/set.py +0 -0
  166. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/remote/datatypes/user_quota_tracker.py +0 -0
  167. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/run/__init__.py +0 -0
  168. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/run/cli.py +0 -0
  169. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/run/pubsub_reader.py +0 -0
  170. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/run/suricata_importer.py +0 -0
  171. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline/run/yara_importer.py +0 -0
  172. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline.egg-info/SOURCES.txt +0 -0
  173. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline.egg-info/dependency_links.txt +0 -0
  174. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline.egg-info/entry_points.txt +0 -0
  175. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline.egg-info/requires.txt +0 -0
  176. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/assemblyline.egg-info/top_level.txt +0 -0
  177. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/pyproject.toml +0 -0
  178. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/setup.cfg +0 -0
  179. {assemblyline-4.7.5.dev15 → assemblyline-4.7.5.dev16}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assemblyline
3
- Version: 4.7.5.dev15
3
+ Version: 4.7.5.dev16
4
4
  Summary: Assemblyline 4 - Automated malware analysis framework
5
5
  Home-page: https://github.com/CybercentreCanada/assemblyline-base
6
6
  Author: CCCS Assemblyline development team
@@ -0,0 +1 @@
1
+ 4.7.5.dev16
@@ -143,7 +143,7 @@ def create_transport(url, connection_attempts=None):
143
143
  valid_bool_keys = ['allow_directory_access', 'use_default_credentials', 'initalize_container', 'read_only']
144
144
  extras = _get_extras(parse_qs(parsed.query), valid_str_keys=valid_str_keys, valid_bool_keys=valid_bool_keys)
145
145
 
146
- t = TransportAzure(base=base, host=host, connection_attempts=connection_attempts, **extras)
146
+ t = TransportAzure(base=base, host=host, connection_attempts=connection_attempts, port=port, **extras)
147
147
 
148
148
  else:
149
149
  raise FileStoreException("Unknown transport: %s" % scheme)
@@ -200,6 +200,9 @@ class FileStore(object):
200
200
  trace = get_stacktrace_info(ex)
201
201
  self.log.info('Transport problem: %s', trace)
202
202
 
203
+ def delete_batch_chunk_size(self) -> int:
204
+ return min(transport.delete_batch_chunk_size() for transport in self.transports)
205
+
203
206
  @elasticapm.capture_span(span_type='filestore')
204
207
  def delete_batch(self, file_list: list[str], location='all'):
205
208
  # Don't even call into the transports if there are no files given
@@ -211,12 +214,7 @@ class FileStore(object):
211
214
  if t.read_only:
212
215
  # Don't attempt to delete from read only transports
213
216
  continue
214
-
215
- try:
216
- t.delete_batch(file_list)
217
- except Exception as ex:
218
- trace = get_stacktrace_info(ex)
219
- self.log.info('Transport problem: %s', trace)
217
+ t.delete_batch(file_list)
220
218
 
221
219
  @elasticapm.capture_span(span_type='filestore')
222
220
  def download(self, src_path: str, dest_path: str, location='any'):
@@ -37,7 +37,7 @@ class TransportAzure(Transport):
37
37
 
38
38
  def __init__(self, base=None, access_key=None, tenant_id=None, client_id=None, client_secret=None,
39
39
  host=None, connection_attempts=None, allow_directory_access=False, use_default_credentials=False,
40
- initalize_container=True, read_only=False):
40
+ initalize_container=True, read_only=False, port=None):
41
41
  self.log = logging.getLogger('assemblyline.transport.azure')
42
42
  self.read_only = False
43
43
  self.connection_attempts: Optional[int] = connection_attempts
@@ -46,6 +46,8 @@ class TransportAzure(Transport):
46
46
  # Get URL
47
47
  self.host = host
48
48
  self.endpoint_url = f"https://{self.host}"
49
+ if port:
50
+ self.endpoint_url += ":" + str(port)
49
51
 
50
52
  # Get container and base_path
51
53
  parts = base.strip("/").split("/", 1)
@@ -59,7 +61,7 @@ class TransportAzure(Transport):
59
61
  if use_default_credentials:
60
62
  if (tenant_id and client_id) and (not client_secret):
61
63
  self.credential = WorkloadIdentityCredential(tenant_id=tenant_id,
62
- client_id=client_id)
64
+ client_id=client_id)
63
65
  else:
64
66
  # Service accounts will by default create the enviromental variables, and use them as params
65
67
  self.credential = DefaultAzureCredential()
@@ -146,12 +148,16 @@ class TransportAzure(Transport):
146
148
  if not isinstance(error.cause, ResourceNotFoundError):
147
149
  raise
148
150
 
151
+ def delete_batch_chunk_size(self) -> int:
152
+ return 256
153
+
149
154
  def delete_batch(self, file_list: Iterable[str]):
150
155
  """Deletes a batch of files."""
151
- container_client = self.service_client.get_container_client(self.blob_container)
152
156
  keys = [self.normalize(path) for path in file_list]
153
157
  for key_chunk in chunk.chunk(keys, 256):
154
- responses: Iterable[HttpResponse] = self.with_retries(container_client.delete_blobs(*key_chunk))
158
+ responses: Iterable[HttpResponse] = self.with_retries(
159
+ self.container_client.delete_blobs, *key_chunk, raise_on_any_failure=False
160
+ )
155
161
  for response in responses:
156
162
  if response.status_code == 404:
157
163
  continue
@@ -46,6 +46,9 @@ class Transport(object):
46
46
  """
47
47
  raise TransportException("Not Implemented")
48
48
 
49
+ def delete_batch_chunk_size(self) -> int:
50
+ return 1
51
+
49
52
  def delete_batch(self, file_list: Iterable[str]):
50
53
  """
51
54
  Deletes a batch of files
@@ -154,7 +154,12 @@ class TransportFTP(Transport):
154
154
  @reconnect_retry_on_fail
155
155
  def delete(self, path):
156
156
  path = self.normalize(path)
157
- self.ftp.delete(path)
157
+ try:
158
+ self.ftp.delete(path)
159
+ except ftplib.error_perm as e:
160
+ # If the file doesnt exist we get a 550.
161
+ if not str(e).startswith('550'):
162
+ raise
158
163
 
159
164
  @reconnect_retry_on_fail
160
165
  def exists(self, path) -> bool:
@@ -134,7 +134,7 @@ class TransportS3(Transport):
134
134
  return ret_val
135
135
 
136
136
  except (EndpointConnectionError, ConnectionClosedError):
137
- self.log.warning(f"No connection to S3 transport {self.endpoint_url}, retrying...")
137
+ self.log.warning("No connection to S3 transport %s, retrying...", self.endpoint_url)
138
138
  retries += 1
139
139
  raise ConnectionError(f"Couldn't connect to the requested S3 endpoint {self.endpoint_url} inside retry limit")
140
140
 
@@ -142,6 +142,12 @@ class TransportS3(Transport):
142
142
  key = self.normalize(path)
143
143
  self.with_retries(self.client.delete_object, Bucket=self.bucket, Key=key)
144
144
 
145
+ def delete_batch_chunk_size(self) -> int:
146
+ if self.use_batch_delete:
147
+ return 1000
148
+ else:
149
+ return 1
150
+
145
151
  def delete_batch(self, file_list: Iterable[str]):
146
152
  """Deletes a batch of files."""
147
153
  if not self.use_batch_delete:
@@ -117,8 +117,11 @@ class TransportSFTP(Transport):
117
117
 
118
118
  @reconnect_retry_on_fail
119
119
  def delete(self, path):
120
- path = self.normalize(path)
121
- self.sftp.remove(path)
120
+ try:
121
+ path = self.normalize(path)
122
+ self.sftp.remove(path)
123
+ except FileNotFoundError:
124
+ pass
122
125
 
123
126
  @reconnect_retry_on_fail
124
127
  def exists(self, path):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assemblyline
3
- Version: 4.7.5.dev15
3
+ Version: 4.7.5.dev16
4
4
  Summary: Assemblyline 4 - Automated malware analysis framework
5
5
  Home-page: https://github.com/CybercentreCanada/assemblyline-base
6
6
  Author: CCCS Assemblyline development team
@@ -1 +0,0 @@
1
- 4.7.5.dev15