assemblyline 4.8.1.dev1__tar.gz → 4.8.1.dev5__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 (181) hide show
  1. {assemblyline-4.8.1.dev1/assemblyline.egg-info → assemblyline-4.8.1.dev5}/PKG-INFO +3 -5
  2. assemblyline-4.8.1.dev5/assemblyline/VERSION +1 -0
  3. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/cachestore/__init__.py +1 -1
  4. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/identify.py +29 -7
  5. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/tag_safelist.yml +9 -11
  6. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5/assemblyline.egg-info}/PKG-INFO +3 -5
  7. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline.egg-info/requires.txt +2 -4
  8. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/pyproject.toml +2 -4
  9. assemblyline-4.8.1.dev1/assemblyline/VERSION +0 -1
  10. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/LICENCE.md +0 -0
  11. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/MANIFEST.in +0 -0
  12. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/README.md +0 -0
  13. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/__init__.py +0 -0
  14. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/__init__.py +0 -0
  15. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/archiving.py +0 -0
  16. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/attack_map.py +0 -0
  17. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/backupmanager.py +0 -0
  18. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/banner.py +0 -0
  19. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/bundling.py +0 -0
  20. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/caching.py +0 -0
  21. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/chunk.py +0 -0
  22. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/classification.py +0 -0
  23. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/classification.yml +0 -0
  24. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/cleanup_filestore.py +0 -0
  25. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/codec.py +0 -0
  26. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/comms.py +0 -0
  27. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/constants.py +0 -0
  28. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/custom.magic +0 -0
  29. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/custom.yara +0 -0
  30. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/dict_utils.py +0 -0
  31. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/digests.py +0 -0
  32. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/dispatcher.py +0 -0
  33. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/entropy.py +0 -0
  34. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/exceptions.py +0 -0
  35. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/file.py +0 -0
  36. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/forge.py +0 -0
  37. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/heuristics.py +0 -0
  38. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/hexdump.py +0 -0
  39. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/identify_defaults.py +0 -0
  40. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/importing.py +0 -0
  41. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/iprange.py +0 -0
  42. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/isotime.py +0 -0
  43. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/log.py +0 -0
  44. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/logformat.py +0 -0
  45. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/lucene.lark +0 -0
  46. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/memory_zip.py +0 -0
  47. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/metrics.py +0 -0
  48. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/net.py +0 -0
  49. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/net_static.py +0 -0
  50. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/null.py +0 -0
  51. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/path.py +0 -0
  52. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/postprocess.py +0 -0
  53. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/random_user.py +0 -0
  54. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/safe_archive.py +0 -0
  55. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/security.py +0 -0
  56. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/signaturing.py +0 -0
  57. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/str_utils.py +0 -0
  58. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/tagging.py +0 -0
  59. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/threading.py +0 -0
  60. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/uid.py +0 -0
  61. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/common/version.py +0 -0
  62. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datasource/__init__.py +0 -0
  63. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datasource/al.py +0 -0
  64. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datasource/alert.py +0 -0
  65. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datasource/common.py +0 -0
  66. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datastore/__init__.py +0 -0
  67. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datastore/bulk.py +0 -0
  68. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datastore/collection.py +0 -0
  69. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datastore/exceptions.py +0 -0
  70. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datastore/helper.py +0 -0
  71. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datastore/store.py +0 -0
  72. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datastore/support/__init__.py +0 -0
  73. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datastore/support/build.py +0 -0
  74. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/datastore/support/schemas.py +0 -0
  75. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/filestore/__init__.py +0 -0
  76. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/filestore/transport/__init__.py +0 -0
  77. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/filestore/transport/azure.py +0 -0
  78. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/filestore/transport/base.py +0 -0
  79. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/filestore/transport/ftp.py +0 -0
  80. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/filestore/transport/http.py +0 -0
  81. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/filestore/transport/local.py +0 -0
  82. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/filestore/transport/s3.py +0 -0
  83. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/filestore/transport/sftp.py +0 -0
  84. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/__init__.py +0 -0
  85. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/base.py +0 -0
  86. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/common.py +0 -0
  87. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/__init__.py +0 -0
  88. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/alert.py +0 -0
  89. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/alerter_heartbeat.py +0 -0
  90. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/archive_heartbeat.py +0 -0
  91. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/changes.py +0 -0
  92. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/dispatcher_heartbeat.py +0 -0
  93. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/dispatching.py +0 -0
  94. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/elastic_heartbeat.py +0 -0
  95. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/expiry_heartbeat.py +0 -0
  96. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/ingest_heartbeat.py +0 -0
  97. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/metrics.py +0 -0
  98. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/retrohunt_heartbeat.py +0 -0
  99. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/scaler_heartbeat.py +0 -0
  100. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/scaler_status_heartbeat.py +0 -0
  101. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/service_heartbeat.py +0 -0
  102. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/service_timing_heartbeat.py +0 -0
  103. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/submission.py +0 -0
  104. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/task.py +0 -0
  105. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/messages/vacuum_heartbeat.py +0 -0
  106. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/__init__.py +0 -0
  107. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/actions.py +0 -0
  108. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/alert.py +0 -0
  109. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/apikey.py +0 -0
  110. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/badlist.py +0 -0
  111. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/cached_file.py +0 -0
  112. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/config.py +0 -0
  113. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/emptyresult.py +0 -0
  114. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/error.py +0 -0
  115. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/file.py +0 -0
  116. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/filescore.py +0 -0
  117. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/heuristic.py +0 -0
  118. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/__init__.py +0 -0
  119. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/file.py +0 -0
  120. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/filetypes/__init__.py +0 -0
  121. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/filetypes/pe.py +0 -0
  122. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/ontology.py +0 -0
  123. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/results/__init__.py +0 -0
  124. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/results/antivirus.py +0 -0
  125. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/results/http.py +0 -0
  126. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/results/malware_config.py +0 -0
  127. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/results/network.py +0 -0
  128. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/results/process.py +0 -0
  129. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/results/sandbox.py +0 -0
  130. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/ontology/results/signature.py +0 -0
  131. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/replay.py +0 -0
  132. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/result.py +0 -0
  133. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/retrohunt.py +0 -0
  134. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/safelist.py +0 -0
  135. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/service.py +0 -0
  136. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/service_delta.py +0 -0
  137. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/signature.py +0 -0
  138. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/statistics.py +0 -0
  139. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/submission.py +0 -0
  140. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/submission_summary.py +0 -0
  141. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/submission_tree.py +0 -0
  142. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/tagging.py +0 -0
  143. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/user.py +0 -0
  144. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/user_favorites.py +0 -0
  145. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/user_settings.py +0 -0
  146. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/models/workflow.py +0 -0
  147. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/random_data/__init__.py +0 -0
  148. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/random_data/create_test_data.py +0 -0
  149. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/random_data/sample_rules.yar +0 -0
  150. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/random_data/sample_suricata.rules +0 -0
  151. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/odm/randomizer.py +0 -0
  152. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/py.typed +0 -0
  153. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/__init__.py +0 -0
  154. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/__init__.py +0 -0
  155. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/cache.py +0 -0
  156. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/counters.py +0 -0
  157. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/daily_quota_tracker.py +0 -0
  158. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/events.py +0 -0
  159. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/exporting_counter.py +0 -0
  160. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/hash.py +0 -0
  161. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/lock.py +0 -0
  162. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/queues/__init__.py +0 -0
  163. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/queues/comms.py +0 -0
  164. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/queues/multi.py +0 -0
  165. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/queues/named.py +0 -0
  166. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/queues/priority.py +0 -0
  167. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/set.py +0 -0
  168. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/remote/datatypes/user_quota_tracker.py +0 -0
  169. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/run/__init__.py +0 -0
  170. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/run/cli.py +0 -0
  171. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/run/pubsub_reader.py +0 -0
  172. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/run/suricata_importer.py +0 -0
  173. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline/run/yara_importer.py +0 -0
  174. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline.egg-info/SOURCES.txt +0 -0
  175. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline.egg-info/dependency_links.txt +0 -0
  176. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline.egg-info/entry_points.txt +0 -0
  177. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/assemblyline.egg-info/top_level.txt +0 -0
  178. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/dev/core/config/classification.yml +0 -0
  179. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/external/generate_attack_map.py +0 -0
  180. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/external/generate_tlds.py +0 -0
  181. {assemblyline-4.8.1.dev1 → assemblyline-4.8.1.dev5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assemblyline
3
- Version: 4.8.1.dev1
3
+ Version: 4.8.1.dev5
4
4
  Summary: Assemblyline 4 - Automated malware analysis framework
5
5
  Author-email: CCCS Assemblyline development team <assemblyline@cyber.gc.ca>
6
6
  License-Expression: MIT
@@ -17,9 +17,7 @@ Requires-Python: >=3.11
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENCE.md
19
19
  Requires-Dist: arrow
20
- Requires-Dist: aiohttp
21
20
  Requires-Dist: lark
22
- Requires-Dist: urllib3>=2.6.0
23
21
  Requires-Dist: python-baseconv
24
22
  Requires-Dist: boto3
25
23
  Requires-Dist: sftpretty
@@ -35,7 +33,6 @@ Requires-Dist: assemblyline-toolbox>=0.4.0
35
33
  Requires-Dist: python-magic
36
34
  Requires-Dist: pytz
37
35
  Requires-Dist: apscheduler
38
- Requires-Dist: websocket_client<1.0.0
39
36
  Requires-Dist: elastic-apm[flask]>=6.13.0
40
37
  Requires-Dist: notifications-python-client
41
38
  Requires-Dist: rstr
@@ -51,7 +48,8 @@ Requires-Dist: pytest; extra == "test"
51
48
  Requires-Dist: retrying; extra == "test"
52
49
  Requires-Dist: pytest-mock; extra == "test"
53
50
  Requires-Dist: pyftpdlib; extra == "test"
54
- Requires-Dist: pyopenssl==23.3.0; extra == "test"
51
+ Requires-Dist: pyopenssl; extra == "test"
52
+ Requires-Dist: cryptography; extra == "test"
55
53
  Dynamic: license-file
56
54
 
57
55
  [![Discord](https://img.shields.io/badge/chat-on%20discord-7289da.svg?sanitize=true)](https://discord.gg/GUAy9wErNu)
@@ -0,0 +1 @@
1
+ 4.8.1.dev5
@@ -49,7 +49,7 @@ class CacheStore(object):
49
49
  new_key = f"{self.component}_{cache_key}" if self.component else cache_key
50
50
 
51
51
  self.datastore.cached_file.save(new_key, {'expiry_ts': now_as_iso(ttl), 'component': self.component})
52
- self.filestore.upload(new_key, path, force=True)
52
+ self.filestore.upload(path, new_key, force=True)
53
53
 
54
54
  def touch(self, cache_key: str, ttl=DEFAULT_CACHE_LEN):
55
55
  if not COMPONENT_VALIDATOR.match(cache_key):
@@ -41,6 +41,10 @@ CUSTOM_PS1_ID = b"#!/usr/bin/env pwsh\n"
41
41
  CUSTOM_BATCH_ID = b"REM Batch extracted by Assemblyline\n"
42
42
  CUSTOM_URI_ID = "# Assemblyline URI file\n"
43
43
 
44
+ PDF_ENCRYPT_MARKER = b"/Encrypt"
45
+ PDF_PORTFOLIO_MARKER = b"/Type/Catalog/Collection"
46
+ PDF_SCAN_BLOCKSIZE = 1048576
47
+
44
48
 
45
49
  class Identify:
46
50
  def __init__(self, use_cache: bool = True, config=None, datastore=None, log=None) -> None:
@@ -452,13 +456,9 @@ class Identify:
452
456
  # - Check for encryption
453
457
  # - Check for PDF collection (portfolio)
454
458
  if data["type"] == "document/pdf":
455
- # Password protected documents typically contain '/Encrypt'
456
- pdf_content = open(path, "rb").read()
457
- if re.search(b"/Encrypt", pdf_content):
458
- data["type"] = "document/pdf/passwordprotected"
459
- # Portfolios typically contain '/Type/Catalog/Collection
460
- elif re.search(b"/Type/Catalog/Collection", pdf_content):
461
- data["type"] = "document/pdf/portfolio"
459
+ refined_type = pdf_ident(path)
460
+ if refined_type:
461
+ data["type"] = refined_type
462
462
 
463
463
  return data
464
464
 
@@ -640,6 +640,28 @@ def uri_ident(path: str, info: Dict) -> str:
640
640
  return f"uri/{u.scheme}"
641
641
 
642
642
 
643
+ def pdf_ident(path: str) -> Optional[str]:
644
+ # The file is scanned in fixed-size blocks (with a small overlap so markers straddling a
645
+ # block boundary are still found) to keep memory usage flat no matter the file size.
646
+ overlap = len(PDF_PORTFOLIO_MARKER) - 1
647
+ saw_portfolio = False
648
+ tail = b""
649
+ with open(path, "rb") as fh:
650
+ while block := fh.read(PDF_SCAN_BLOCKSIZE):
651
+ boundary = tail + block[:overlap]
652
+ # Password protected documents typically contain '/Encrypt'
653
+ # '/Encrypt' anywhere in the file takes precedence over the portfolio marker.
654
+ if PDF_ENCRYPT_MARKER in block or PDF_ENCRYPT_MARKER in boundary:
655
+ return "document/pdf/passwordprotected"
656
+ # Portfolios typically contain '/Type/Catalog/Collection'
657
+ if not saw_portfolio and (PDF_PORTFOLIO_MARKER in block or PDF_PORTFOLIO_MARKER in boundary):
658
+ saw_portfolio = True
659
+ tail = block[-overlap:]
660
+
661
+ if saw_portfolio:
662
+ return "document/pdf/portfolio"
663
+ return None
664
+
643
665
  def shell_main():
644
666
  from pprint import pprint
645
667
 
@@ -92,11 +92,10 @@ regex:
92
92
  - https?://schemas\.android\.com/apk/res(-auto|/android)
93
93
  - https?://xmlpull\.org/v1/doc/features\.html(?:$|.*)
94
94
  - https?://android\.googlesource\.com/toolchain/llvm-project
95
- - https?://schemas\.openxmlformats\.org/officeDocument/2006/relationships/(image|attachedTemplate|header|footnotes|fontTable|customXml|endnotes|theme|settings|webSettings|glossaryDocument|numbering|footer|styles)
95
+ - ^https?://schemas\.openxmlformats\.org/officeDocument/2006/(?:math|relationships(?:/[\w./-]+)?)$
96
96
  - https?://schemas\.openxmlformats\.org/drawingml/2006/(main|wordprocessingDrawing)
97
- - https?://schemas\.openxmlformats\.org/package/2006/relationships
97
+ - ^https?://schemas\.openxmlformats\.org/package/2006/relationships(?:/[\w./-]+)?$
98
98
  - https?://schemas\.openxmlformats\.org/markup-compatibility/2006
99
- - https?://schemas\.openxmlformats\.org/officeDocument/2006/(relationships|math)
100
99
  - https?://schemas\.openxmlformats\.org/word/2010/wordprocessingShape
101
100
  - https?://schemas\.openxmlformats\.org/wordprocessingml/2006/main
102
101
  - https?://www\.verisign\.com/(rpa0|rpa|cps0)
@@ -117,9 +116,9 @@ regex:
117
116
  # Azure
118
117
  - https?://wpad\..*/wpad\.dat
119
118
  # Google
120
- - https?://www\.google\.c(om|a)
119
+ - ^https?://www\.google\.c(?:om|a)/?$
121
120
  # Adobe
122
- - (?:https?://)?files\.acrobat\.com(?:(?::443)|/?$)
121
+ - ^(?:https?://)?files\.acrobat\.com(?::443)?/?$
123
122
  network.static.uri:
124
123
  - ^(\w{2,5}:\/\/)?[^:\/]*\.verisign\.com(:([1-9]|[1-5]?[0-9]{2,4}|6[1-4][0-9]{3}|65[1-4][0-9]{2}|655[1-2][0-9]|6553[1-5]))?\/[^:]*$
125
124
  - ^(\w{2,5}:\/\/)?[^:\/]*\.bootstrapcdn\.com(:([1-9]|[1-5]?[0-9]{2,4}|6[1-4][0-9]{3}|65[1-4][0-9]{2}|655[1-2][0-9]|6553[1-5]))?\/[^:]*$
@@ -129,16 +128,15 @@ regex:
129
128
  - https?://schemas\.android\.com/apk/res(-auto|/android)
130
129
  - https?://xmlpull\.org/v1/doc/features\.html(?:$|.*)
131
130
  - https?://android\.googlesource\.com/toolchain/llvm-project
132
- - https?://schemas\.openxmlformats\.org/officeDocument/2006/relationships/(image|attachedTemplate|header|footnotes|fontTable|customXml|endnotes|theme|settings|webSettings|glossaryDocument|numbering|footer|styles)
131
+ - ^https?://schemas\.openxmlformats\.org/officeDocument/2006/(?:math|relationships(?:/[\w./-]+)?)$
133
132
  - https?://schemas\.microsoft\.com/office/word/2010/(wordml|wordprocessingCanvas|wordprocessingInk|wordprocessingGroup|wordprocessingDrawing)
134
133
  - https?://schemas\.microsoft\.com/office/word/(2012|2006)/wordml
135
134
  - https?://schemas\.microsoft\.com/office/word/2015/wordml/symex
136
135
  - https?://schemas\.microsoft\.com/office/drawing/2014/chartex
137
136
  - https?://schemas\.microsoft\.com/office/drawing/2015/9/8/chartex
138
137
  - https?://schemas\.openxmlformats\.org/drawingml/2006/(main|wordprocessingDrawing)
139
- - https?://schemas\.openxmlformats\.org/package/2006/relationships
138
+ - ^https?://schemas\.openxmlformats\.org/package/2006/relationships(?:/[\w./-]+)?$
140
139
  - https?://schemas\.openxmlformats\.org/markup-compatibility/2006
141
- - https?://schemas\.openxmlformats\.org/officeDocument/2006/(relationships|math)
142
140
  - https?://schemas\.openxmlformats\.org/word/2010/wordprocessingShape
143
141
  - https?://schemas\.openxmlformats\.org/wordprocessingml/2006/main
144
142
  - https?://www\.verisign\.com/(rpa0|rpa|cps0)
@@ -247,9 +245,9 @@ regex:
247
245
  - ((api|www|platform)\.)?bing\.com$
248
246
  # Azure
249
247
  - md-ssd-.+\.blob\.core\.windows\.net$
250
- - .+\.table\.core\.windows\.net
251
- - .+\.blob\.core\.windows\.net
252
- - .+\.opinsights\.azure\.com
248
+ - .+\.table\.core\.windows\.net$
249
+ - .+\.blob\.core\.windows\.net$
250
+ - .+\.opinsights\.azure\.com$
253
251
  - agentserviceapi\.azure-automation\.net$
254
252
  - agentserviceapi\.guestconfiguration\.azure\.com$
255
253
  - .+\.blob\.storage\.azure\.net$
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assemblyline
3
- Version: 4.8.1.dev1
3
+ Version: 4.8.1.dev5
4
4
  Summary: Assemblyline 4 - Automated malware analysis framework
5
5
  Author-email: CCCS Assemblyline development team <assemblyline@cyber.gc.ca>
6
6
  License-Expression: MIT
@@ -17,9 +17,7 @@ Requires-Python: >=3.11
17
17
  Description-Content-Type: text/markdown
18
18
  License-File: LICENCE.md
19
19
  Requires-Dist: arrow
20
- Requires-Dist: aiohttp
21
20
  Requires-Dist: lark
22
- Requires-Dist: urllib3>=2.6.0
23
21
  Requires-Dist: python-baseconv
24
22
  Requires-Dist: boto3
25
23
  Requires-Dist: sftpretty
@@ -35,7 +33,6 @@ Requires-Dist: assemblyline-toolbox>=0.4.0
35
33
  Requires-Dist: python-magic
36
34
  Requires-Dist: pytz
37
35
  Requires-Dist: apscheduler
38
- Requires-Dist: websocket_client<1.0.0
39
36
  Requires-Dist: elastic-apm[flask]>=6.13.0
40
37
  Requires-Dist: notifications-python-client
41
38
  Requires-Dist: rstr
@@ -51,7 +48,8 @@ Requires-Dist: pytest; extra == "test"
51
48
  Requires-Dist: retrying; extra == "test"
52
49
  Requires-Dist: pytest-mock; extra == "test"
53
50
  Requires-Dist: pyftpdlib; extra == "test"
54
- Requires-Dist: pyopenssl==23.3.0; extra == "test"
51
+ Requires-Dist: pyopenssl; extra == "test"
52
+ Requires-Dist: cryptography; extra == "test"
55
53
  Dynamic: license-file
56
54
 
57
55
  [![Discord](https://img.shields.io/badge/chat-on%20discord-7289da.svg?sanitize=true)](https://discord.gg/GUAy9wErNu)
@@ -1,7 +1,5 @@
1
1
  arrow
2
- aiohttp
3
2
  lark
4
- urllib3>=2.6.0
5
3
  python-baseconv
6
4
  boto3
7
5
  sftpretty
@@ -17,7 +15,6 @@ assemblyline-toolbox>=0.4.0
17
15
  python-magic
18
16
  pytz
19
17
  apscheduler
20
- websocket_client<1.0.0
21
18
  elastic-apm[flask]>=6.13.0
22
19
  notifications-python-client
23
20
  rstr
@@ -34,4 +31,5 @@ pytest
34
31
  retrying
35
32
  pytest-mock
36
33
  pyftpdlib
37
- pyopenssl==23.3.0
34
+ pyopenssl
35
+ cryptography
@@ -36,9 +36,7 @@ classifiers = [
36
36
  ]
37
37
  dependencies = [
38
38
  "arrow",
39
- "aiohttp",
40
39
  "lark",
41
- "urllib3>=2.6.0",
42
40
  "python-baseconv",
43
41
  "boto3",
44
42
  "sftpretty",
@@ -54,7 +52,6 @@ dependencies = [
54
52
  "python-magic",
55
53
  "pytz",
56
54
  "apscheduler",
57
- "websocket_client<1.0.0",
58
55
  "elastic-apm[flask]>=6.13.0",
59
56
  "notifications-python-client",
60
57
  "rstr",
@@ -77,7 +74,8 @@ test = [
77
74
  "retrying",
78
75
  "pytest-mock",
79
76
  "pyftpdlib",
80
- "pyopenssl==23.3.0",
77
+ "pyopenssl",
78
+ "cryptography",
81
79
  ]
82
80
 
83
81
  [project.scripts]
@@ -1 +0,0 @@
1
- 4.8.1.dev1