pymisp 2.5.3__tar.gz → 2.5.4__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 pymisp might be problematic. Click here for more details.

Files changed (615) hide show
  1. {pymisp-2.5.3 → pymisp-2.5.4}/CHANGELOG.txt +59 -0
  2. {pymisp-2.5.3 → pymisp-2.5.4}/PKG-INFO +3 -3
  3. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/README.md +1 -0
  4. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/android-app/definition.json +8 -2
  5. pymisp-2.5.4/pymisp/data/misp-objects/objects/spambee-report/definition.json +54 -0
  6. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/vulnerability/definition.json +5 -4
  7. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/relationships/definition.json +17 -1
  8. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/mispevent.py +87 -23
  9. {pymisp-2.5.3 → pymisp-2.5.4}/pyproject.toml +4 -4
  10. pymisp-2.5.4/tests/test_analyst_data.py +123 -0
  11. {pymisp-2.5.3 → pymisp-2.5.4}/LICENSE +0 -0
  12. {pymisp-2.5.3 → pymisp-2.5.4}/README.md +0 -0
  13. {pymisp-2.5.3 → pymisp-2.5.4}/docs/Makefile +0 -0
  14. {pymisp-2.5.3 → pymisp-2.5.4}/docs/PDF-export/ExportPDF.png +0 -0
  15. {pymisp-2.5.3 → pymisp-2.5.4}/docs/PDF-export/Internationalization_parameters.png +0 -0
  16. {pymisp-2.5.3 → pymisp-2.5.4}/docs/PDF-export/Internationalization_path.png +0 -0
  17. {pymisp-2.5.3 → pymisp-2.5.4}/docs/PDF-export/Parameters.png +0 -0
  18. {pymisp-2.5.3 → pymisp-2.5.4}/docs/PDF-export/README.MD +0 -0
  19. {pymisp-2.5.3 → pymisp-2.5.4}/docs/source/conf.py +0 -0
  20. {pymisp-2.5.3 → pymisp-2.5.4}/docs/source/index.rst +0 -0
  21. {pymisp-2.5.3 → pymisp-2.5.4}/docs/source/modules.rst +0 -0
  22. {pymisp-2.5.3 → pymisp-2.5.4}/docs/source/tools.rst +0 -0
  23. {pymisp-2.5.3 → pymisp-2.5.4}/docs/tutorial/FullOverview.ipynb +0 -0
  24. {pymisp-2.5.3 → pymisp-2.5.4}/docs/tutorial/Search-FullOverview.ipynb +0 -0
  25. {pymisp-2.5.3 → pymisp-2.5.4}/docs/tutorial/a.7-rest-api-extensive-restsearch.ipynb +0 -0
  26. {pymisp-2.5.3 → pymisp-2.5.4}/docs/tutorial/install_notebook.sh +0 -0
  27. {pymisp-2.5.3 → pymisp-2.5.4}/docs/tutorial/old/PyMISP_tutorial.ipynb +0 -0
  28. {pymisp-2.5.3 → pymisp-2.5.4}/docs/tutorial/old/Search.ipynb +0 -0
  29. {pymisp-2.5.3 → pymisp-2.5.4}/docs/tutorial/old/Usage-NG.ipynb +0 -0
  30. {pymisp-2.5.3 → pymisp-2.5.4}/examples/__init__.py +0 -0
  31. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_attributes_from_csv.py +0 -0
  32. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_email_object.py +0 -0
  33. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_fail2ban_object.py +0 -0
  34. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_feed.py +0 -0
  35. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_file_object.py +0 -0
  36. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_filetype_object_from_csv.py +0 -0
  37. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_generic_object.py +0 -0
  38. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_github_user.py +0 -0
  39. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_gitlab_user.py +0 -0
  40. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_named_attribute.py +0 -0
  41. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_organisations.py +0 -0
  42. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_ssh_authorized_keys.py +0 -0
  43. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_user.py +0 -0
  44. {pymisp-2.5.3 → pymisp-2.5.4}/examples/add_vehicle_object.py +0 -0
  45. {pymisp-2.5.3 → pymisp-2.5.4}/examples/addtag2.py +0 -0
  46. {pymisp-2.5.3 → pymisp-2.5.4}/examples/admin/setup_sync.py +0 -0
  47. {pymisp-2.5.3 → pymisp-2.5.4}/examples/asciidoc_generator.py +0 -0
  48. {pymisp-2.5.3 → pymisp-2.5.4}/examples/cache_all.py +0 -0
  49. {pymisp-2.5.3 → pymisp-2.5.4}/examples/climate/scrippsco2.py +0 -0
  50. {pymisp-2.5.3 → pymisp-2.5.4}/examples/copyTagsFromAttributesToEvent.py +0 -0
  51. {pymisp-2.5.3 → pymisp-2.5.4}/examples/copy_list.py +0 -0
  52. {pymisp-2.5.3 → pymisp-2.5.4}/examples/covid19/import_csse_covid19_daily.py +0 -0
  53. {pymisp-2.5.3 → pymisp-2.5.4}/examples/covid19/import_dxy_covid19_live.py +0 -0
  54. {pymisp-2.5.3 → pymisp-2.5.4}/examples/create_events.py +0 -0
  55. {pymisp-2.5.3 → pymisp-2.5.4}/examples/cytomic_orion.py +0 -0
  56. {pymisp-2.5.3 → pymisp-2.5.4}/examples/del.py +0 -0
  57. {pymisp-2.5.3 → pymisp-2.5.4}/examples/delete_user.py +0 -0
  58. {pymisp-2.5.3 → pymisp-2.5.4}/examples/edit_organisation.py +0 -0
  59. {pymisp-2.5.3 → pymisp-2.5.4}/examples/edit_user.py +0 -0
  60. {pymisp-2.5.3 → pymisp-2.5.4}/examples/events/README.md +0 -0
  61. {pymisp-2.5.3 → pymisp-2.5.4}/examples/events/create_dummy_event.py +0 -0
  62. {pymisp-2.5.3 → pymisp-2.5.4}/examples/events/create_massive_dummy_events.py +0 -0
  63. {pymisp-2.5.3 → pymisp-2.5.4}/examples/events/dummy +0 -0
  64. {pymisp-2.5.3 → pymisp-2.5.4}/examples/events/tools.py +0 -0
  65. {pymisp-2.5.3 → pymisp-2.5.4}/examples/falsepositive_disabletoids.py +0 -0
  66. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator/README.md +0 -0
  67. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator/generate.py +0 -0
  68. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator/output/empty +0 -0
  69. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator/settings.default.py +0 -0
  70. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator-from-redis/MISPItemToRedis.py +0 -0
  71. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator-from-redis/ObjectConstructor/CowrieMISPObject.py +0 -0
  72. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator-from-redis/README.md +0 -0
  73. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator-from-redis/fromredis.py +0 -0
  74. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator-from-redis/generator.py +0 -0
  75. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator-from-redis/install.sh +0 -0
  76. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator-from-redis/server.py +0 -0
  77. {pymisp-2.5.3 → pymisp-2.5.4}/examples/feed-generator-from-redis/settings.default.py +0 -0
  78. {pymisp-2.5.3 → pymisp-2.5.4}/examples/fetch_events_feed.py +0 -0
  79. {pymisp-2.5.3 → pymisp-2.5.4}/examples/fetch_warninglist_hits.py +0 -0
  80. {pymisp-2.5.3 → pymisp-2.5.4}/examples/freetext.py +0 -0
  81. {pymisp-2.5.3 → pymisp-2.5.4}/examples/freetext.txt +0 -0
  82. {pymisp-2.5.3 → pymisp-2.5.4}/examples/generate_file_objects.py +0 -0
  83. {pymisp-2.5.3 → pymisp-2.5.4}/examples/generate_meta_feed.py +0 -0
  84. {pymisp-2.5.3 → pymisp-2.5.4}/examples/get.py +0 -0
  85. {pymisp-2.5.3 → pymisp-2.5.4}/examples/get_csv.py +0 -0
  86. {pymisp-2.5.3 → pymisp-2.5.4}/examples/get_network_activity.event_id +0 -0
  87. {pymisp-2.5.3 → pymisp-2.5.4}/examples/get_network_activity.py +0 -0
  88. {pymisp-2.5.3 → pymisp-2.5.4}/examples/graphdb/make_neo4j.py +0 -0
  89. {pymisp-2.5.3 → pymisp-2.5.4}/examples/ioc_2_misp/README.md +0 -0
  90. {pymisp-2.5.3 → pymisp-2.5.4}/examples/ioc_2_misp/ioc2misp.py +0 -0
  91. {pymisp-2.5.3 → pymisp-2.5.4}/examples/ioc_2_misp/keys.py.sample +0 -0
  92. {pymisp-2.5.3 → pymisp-2.5.4}/examples/ioc_2_misp/taxonomy.csv +0 -0
  93. {pymisp-2.5.3 → pymisp-2.5.4}/examples/keys.py.sample +0 -0
  94. {pymisp-2.5.3 → pymisp-2.5.4}/examples/last.py +0 -0
  95. {pymisp-2.5.3 → pymisp-2.5.4}/examples/load_csv.py +0 -0
  96. {pymisp-2.5.3 → pymisp-2.5.4}/examples/lookup.py +0 -0
  97. {pymisp-2.5.3 → pymisp-2.5.4}/examples/misp2cef.py +0 -0
  98. {pymisp-2.5.3 → pymisp-2.5.4}/examples/misp2clamav.py +0 -0
  99. {pymisp-2.5.3 → pymisp-2.5.4}/examples/openioc_to_misp.py +0 -0
  100. {pymisp-2.5.3 → pymisp-2.5.4}/examples/profiles/__init__.py +0 -0
  101. {pymisp-2.5.3 → pymisp-2.5.4}/examples/profiles/daily_report.py +0 -0
  102. {pymisp-2.5.3 → pymisp-2.5.4}/examples/profiles/weekly_report.py +0 -0
  103. {pymisp-2.5.3 → pymisp-2.5.4}/examples/proofpoint_tap.py +0 -0
  104. {pymisp-2.5.3 → pymisp-2.5.4}/examples/proofpoint_vap.py +0 -0
  105. {pymisp-2.5.3 → pymisp-2.5.4}/examples/search.py +0 -0
  106. {pymisp-2.5.3 → pymisp-2.5.4}/examples/search_attributes_yara.py +0 -0
  107. {pymisp-2.5.3 → pymisp-2.5.4}/examples/search_sighting.py +0 -0
  108. {pymisp-2.5.3 → pymisp-2.5.4}/examples/server_sync_check_conn.py +0 -0
  109. {pymisp-2.5.3 → pymisp-2.5.4}/examples/sharing_groups.py +0 -0
  110. {pymisp-2.5.3 → pymisp-2.5.4}/examples/show_sightings.py +0 -0
  111. {pymisp-2.5.3 → pymisp-2.5.4}/examples/sighting.json +0 -0
  112. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/README.md +0 -0
  113. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/__init__.py +0 -0
  114. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/attribute_treemap.py +0 -0
  115. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/bokeh_tools.py +0 -0
  116. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/date_tools.py +0 -0
  117. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/pygal_tools.py +0 -0
  118. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/style.css +0 -0
  119. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/style2.css +0 -0
  120. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/tag_scatter.py +0 -0
  121. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/tag_search.py +0 -0
  122. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/tags_count.py +0 -0
  123. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/tags_to_graphs.py +0 -0
  124. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/test_attribute_treemap.html +0 -0
  125. {pymisp-2.5.3 → pymisp-2.5.4}/examples/situational_awareness/tools.py +0 -0
  126. {pymisp-2.5.3 → pymisp-2.5.4}/examples/stats_report.py +0 -0
  127. {pymisp-2.5.3 → pymisp-2.5.4}/examples/suricata_search/README.md +0 -0
  128. {pymisp-2.5.3 → pymisp-2.5.4}/examples/sync_sighting.py +0 -0
  129. {pymisp-2.5.3 → pymisp-2.5.4}/examples/tags.py +0 -0
  130. {pymisp-2.5.3 → pymisp-2.5.4}/examples/test_sign.py +0 -0
  131. {pymisp-2.5.3 → pymisp-2.5.4}/examples/trustar.conf +0 -0
  132. {pymisp-2.5.3 → pymisp-2.5.4}/examples/trustar_misp.py +0 -0
  133. {pymisp-2.5.3 → pymisp-2.5.4}/examples/up.py +0 -0
  134. {pymisp-2.5.3 → pymisp-2.5.4}/examples/upload.py +0 -0
  135. {pymisp-2.5.3 → pymisp-2.5.4}/examples/user_sample.json +0 -0
  136. {pymisp-2.5.3 → pymisp-2.5.4}/examples/users_list.py +0 -0
  137. {pymisp-2.5.3 → pymisp-2.5.4}/examples/vmray_automation.py +0 -0
  138. {pymisp-2.5.3 → pymisp-2.5.4}/examples/vt_to_misp.py +0 -0
  139. {pymisp-2.5.3 → pymisp-2.5.4}/examples/warninglists.py +0 -0
  140. {pymisp-2.5.3 → pymisp-2.5.4}/examples/yara.py +0 -0
  141. {pymisp-2.5.3 → pymisp-2.5.4}/examples/yara_dump.py +0 -0
  142. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/__init__.py +0 -0
  143. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/abstract.py +0 -0
  144. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/api.py +0 -0
  145. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/describeTypes.json +0 -0
  146. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/.git +0 -0
  147. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/.gitchangelog.rc +0 -0
  148. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/.github/workflows/codeql.yml +0 -0
  149. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/.github/workflows/nosetests.yml +0 -0
  150. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/.travis.yml +0 -0
  151. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/LICENSE-software-only.md +0 -0
  152. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/LICENSE.md +0 -0
  153. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/docs/time-related-objects.ods +0 -0
  154. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/docs/time-related-objects.pdf +0 -0
  155. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/jq_all_the_things.sh +0 -0
  156. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ADS/definition.json +0 -0
  157. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/abuseipdb/definition.json +0 -0
  158. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ai-chat-prompt/definition.json +0 -0
  159. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ail-leak/definition.json +0 -0
  160. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ais/definition.json +0 -0
  161. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ais-info/definition.json +0 -0
  162. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/android-permission/definition.json +0 -0
  163. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/annotation/definition.json +0 -0
  164. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/anonymisation/definition.json +0 -0
  165. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/apivoid-email-verification/definition.json +0 -0
  166. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/artifact/definition.json +0 -0
  167. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/asn/definition.json +0 -0
  168. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/attack-pattern/definition.json +0 -0
  169. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/attack-step/definition.json +0 -0
  170. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/attacker-infra/definition.json +0 -0
  171. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/authentication-failure-report/definition.json +0 -0
  172. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/authenticode-signerinfo/definition.json +0 -0
  173. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/av-signature/definition.json +0 -0
  174. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/availability-impact/definition.json +0 -0
  175. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/bank-account/definition.json +0 -0
  176. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/bgp-hijack/definition.json +0 -0
  177. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/bgp-ranking/definition.json +0 -0
  178. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/blog/definition.json +0 -0
  179. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/boleto/definition.json +0 -0
  180. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/btc-transaction/definition.json +0 -0
  181. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/btc-wallet/definition.json +0 -0
  182. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/c2-list/definition.json +0 -0
  183. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cap-alert/definition.json +0 -0
  184. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cap-info/definition.json +0 -0
  185. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cap-resource/definition.json +0 -0
  186. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cert-pl-phishing/definition.json +0 -0
  187. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cloth/definition.json +0 -0
  188. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/coin-address/definition.json +0 -0
  189. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/command/definition.json +0 -0
  190. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/command-line/definition.json +0 -0
  191. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/concordia-mtmf-intrusion-set/definition.json +0 -0
  192. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/confidentiality-impact/definition.json +0 -0
  193. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cookie/definition.json +0 -0
  194. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cortex/definition.json +0 -0
  195. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cortex-taxonomy/definition.json +0 -0
  196. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/course-of-action/definition.json +0 -0
  197. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/covid19-csse-daily-report/definition.json +0 -0
  198. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/covid19-dxy-live-city/definition.json +0 -0
  199. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/covid19-dxy-live-province/definition.json +0 -0
  200. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cowrie/definition.json +0 -0
  201. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cpe-asset/definition.json +0 -0
  202. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/credential/definition.json +0 -0
  203. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/credit-card/definition.json +0 -0
  204. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/crowdsec-ip-context/definition.json +0 -0
  205. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/crowdstrike-report/definition.json +0 -0
  206. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/crypto-material/definition.json +0 -0
  207. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cryptocurrency-transaction/definition.json +0 -0
  208. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cs-beacon-config/definition.json +0 -0
  209. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ctf-challenge/definition.json +0 -0
  210. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cytomic-orion-file/definition.json +0 -0
  211. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/cytomic-orion-machine/definition.json +0 -0
  212. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/dark-pattern-item/definition.json +0 -0
  213. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ddos/definition.json +0 -0
  214. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ddos-claim/definition.json +0 -0
  215. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ddos-config/definition.json +0 -0
  216. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/device/definition.json +0 -0
  217. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/diameter-attack/definition.json +0 -0
  218. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/diamond/definition.json +0 -0
  219. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/directory/definition.json +0 -0
  220. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/dkim/definition.json +0 -0
  221. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/dns-record/definition.json +0 -0
  222. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/dom-hash/definition.json +0 -0
  223. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/domain-crawled/definition.json +0 -0
  224. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/domain-ip/definition.json +0 -0
  225. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/edr-report/definition.json +0 -0
  226. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/elf/definition.json +0 -0
  227. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/elf-section/definition.json +0 -0
  228. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/email/definition.json +0 -0
  229. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/employee/definition.json +0 -0
  230. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/error-message/definition.json +0 -0
  231. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/event/definition.json +0 -0
  232. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/exploit/definition.json +0 -0
  233. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/exploit-poc/definition.json +0 -0
  234. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/external-impact/definition.json +0 -0
  235. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/facebook-account/definition.json +0 -0
  236. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/facebook-group/definition.json +0 -0
  237. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/facebook-page/definition.json +0 -0
  238. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/facebook-post/definition.json +0 -0
  239. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/facebook-reaction/definition.json +0 -0
  240. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/facial-composite/definition.json +0 -0
  241. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/fail2ban/definition.json +0 -0
  242. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/favicon/definition.json +0 -0
  243. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/file/definition.json +0 -0
  244. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/flowintel-cm-case/definition.json +0 -0
  245. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/flowintel-cm-task/definition.json +0 -0
  246. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/flowintel-cm-task-note/definition.json +0 -0
  247. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/forensic-case/definition.json +0 -0
  248. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/forensic-evidence/definition.json +0 -0
  249. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/forged-document/definition.json +0 -0
  250. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Airplane/definition.json +0 -0
  251. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Assessment/definition.json +0 -0
  252. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Asset/definition.json +0 -0
  253. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Associate/definition.json +0 -0
  254. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Audio/definition.json +0 -0
  255. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-BankAccount/definition.json +0 -0
  256. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Call/definition.json +0 -0
  257. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Company/definition.json +0 -0
  258. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Contract/definition.json +0 -0
  259. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-ContractAward/definition.json +0 -0
  260. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-CourtCase/definition.json +0 -0
  261. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-CourtCaseParty/definition.json +0 -0
  262. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Debt/definition.json +0 -0
  263. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Directorship/definition.json +0 -0
  264. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Document/definition.json +0 -0
  265. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Documentation/definition.json +0 -0
  266. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-EconomicActivity/definition.json +0 -0
  267. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Email/definition.json +0 -0
  268. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Event/definition.json +0 -0
  269. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Family/definition.json +0 -0
  270. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Folder/definition.json +0 -0
  271. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-HyperText/definition.json +0 -0
  272. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Image/definition.json +0 -0
  273. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Land/definition.json +0 -0
  274. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-LegalEntity/definition.json +0 -0
  275. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-License/definition.json +0 -0
  276. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Membership/definition.json +0 -0
  277. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Message/definition.json +0 -0
  278. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Organization/definition.json +0 -0
  279. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Ownership/definition.json +0 -0
  280. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Package/definition.json +0 -0
  281. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Page/definition.json +0 -0
  282. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Pages/definition.json +0 -0
  283. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Passport/definition.json +0 -0
  284. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Payment/definition.json +0 -0
  285. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Person/definition.json +0 -0
  286. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-PlainText/definition.json +0 -0
  287. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-PublicBody/definition.json +0 -0
  288. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-RealEstate/definition.json +0 -0
  289. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Representation/definition.json +0 -0
  290. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Row/definition.json +0 -0
  291. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Sanction/definition.json +0 -0
  292. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Succession/definition.json +0 -0
  293. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Table/definition.json +0 -0
  294. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-TaxRoll/definition.json +0 -0
  295. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-UnknownLink/definition.json +0 -0
  296. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-UserAccount/definition.json +0 -0
  297. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Vehicle/definition.json +0 -0
  298. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Vessel/definition.json +0 -0
  299. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Video/definition.json +0 -0
  300. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ftm-Workbook/definition.json +0 -0
  301. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/game-cheat/definition.json +0 -0
  302. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/generalizing-persuasion-framework/definition.json +0 -0
  303. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/geolocation/definition.json +0 -0
  304. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/git-vuln-finder/definition.json +0 -0
  305. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/github-user/definition.json +0 -0
  306. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/gitlab-user/definition.json +0 -0
  307. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/google-safe-browsing/definition.json +0 -0
  308. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/google-threat-intelligence-report/definition.json +0 -0
  309. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/greynoise-ip/definition.json +0 -0
  310. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/gtp-attack/definition.json +0 -0
  311. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/hashlookup/definition.json +0 -0
  312. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/hhhash/definition.json +0 -0
  313. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/http-request/definition.json +0 -0
  314. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/identity/definition.json +0 -0
  315. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ilr-impact/definition.json +0 -0
  316. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ilr-notification-incident/definition.json +0 -0
  317. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/image/definition.json +0 -0
  318. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/impersonation/definition.json +0 -0
  319. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/imsi-catcher/definition.json +0 -0
  320. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/incident/definition.json +0 -0
  321. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/infrastructure/definition.json +0 -0
  322. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/instant-message/definition.json +0 -0
  323. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/instant-message-group/definition.json +0 -0
  324. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/integrity-impact/definition.json +0 -0
  325. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/intel471-vulnerability-intelligence/definition.json +0 -0
  326. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/intelmq_event/definition.json +0 -0
  327. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/intelmq_report/definition.json +0 -0
  328. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/internal-reference/definition.json +0 -0
  329. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/interpol-notice/definition.json +0 -0
  330. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/intrusion-set/definition.json +0 -0
  331. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/iot-device/definition.json +0 -0
  332. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/iot-firmware/definition.json +0 -0
  333. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ip-api-address/definition.json +0 -0
  334. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ip-port/definition.json +0 -0
  335. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/irc/definition.json +0 -0
  336. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ja3/definition.json +0 -0
  337. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ja3s/definition.json +0 -0
  338. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ja4-plus/definition.json +0 -0
  339. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/jarm/definition.json +0 -0
  340. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/keybase-account/definition.json +0 -0
  341. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/language-content/definition.json +0 -0
  342. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/leaked-document/definition.json +0 -0
  343. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/legal-entity/definition.json +0 -0
  344. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/lnk/definition.json +0 -0
  345. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/macho/definition.json +0 -0
  346. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/macho-section/definition.json +0 -0
  347. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/mactime-timeline-analysis/definition.json +0 -0
  348. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/malware/definition.json +0 -0
  349. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/malware-analysis/definition.json +0 -0
  350. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/malware-config/definition.json +0 -0
  351. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/meme-image/definition.json +0 -0
  352. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/microblog/definition.json +0 -0
  353. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/monetary-impact/definition.json +0 -0
  354. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/mutex/definition.json +0 -0
  355. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/narrative/definition.json +0 -0
  356. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/netflow/definition.json +0 -0
  357. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/network-connection/definition.json +0 -0
  358. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/network-profile/definition.json +0 -0
  359. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/network-socket/definition.json +0 -0
  360. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/network-traffic/definition.json +0 -0
  361. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/news-agency/definition.json +0 -0
  362. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/news-media/definition.json +0 -0
  363. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/open-data-security/definition.json +0 -0
  364. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/opentide/definition.json +0 -0
  365. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/organization/definition.json +0 -0
  366. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/original-imported-file/definition.json +0 -0
  367. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/paloalto-threat-event/definition.json +0 -0
  368. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/parler-account/definition.json +0 -0
  369. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/parler-comment/definition.json +0 -0
  370. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/parler-post/definition.json +0 -0
  371. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/passive-dns/definition.json +0 -0
  372. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/passive-dns-dnsdbflex/definition.json +0 -0
  373. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/passive-ssh/definition.json +0 -0
  374. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/paste/definition.json +0 -0
  375. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/pcap-metadata/definition.json +0 -0
  376. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/pe/definition.json +0 -0
  377. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/pe-optional-header/definition.json +0 -0
  378. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/pe-section/definition.json +0 -0
  379. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/persnona/definition.json +0 -0
  380. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/person/definition.json +0 -0
  381. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/personification/definition.json +0 -0
  382. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/pgp-meta/definition.json +0 -0
  383. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/phishing/definition.json +0 -0
  384. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/phishing-kit/definition.json +0 -0
  385. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/phone/definition.json +0 -0
  386. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/phone-number/definition.json +0 -0
  387. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/physical-impact/definition.json +0 -0
  388. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/postal-address/definition.json +0 -0
  389. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/probabilistic-data-structure/definition.json +0 -0
  390. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/process/definition.json +0 -0
  391. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/publication/definition.json +0 -0
  392. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/python-etvx-event-log/definition.json +0 -0
  393. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/query/definition.json +0 -0
  394. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/r2graphity/definition.json +0 -0
  395. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ransom-negotiation/definition.json +0 -0
  396. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ransomware-group-post/definition.json +0 -0
  397. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/reddit-account/definition.json +0 -0
  398. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/reddit-comment/definition.json +0 -0
  399. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/reddit-post/definition.json +0 -0
  400. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/reddit-subreddit/definition.json +0 -0
  401. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regexp/definition.json +0 -0
  402. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/registry-key/definition.json +0 -0
  403. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/registry-key-value/definition.json +0 -0
  404. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-NTUser/definition.json +0 -0
  405. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-sam-hive-single-user/definition.json +0 -0
  406. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-sam-hive-user-group/definition.json +0 -0
  407. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-software-hive-BHO/definition.json +0 -0
  408. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-software-hive-appInit-DLLS/definition.json +0 -0
  409. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-software-hive-application-paths/definition.json +0 -0
  410. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-software-hive-applications-installed/definition.json +0 -0
  411. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-software-hive-command-shell/definition.json +0 -0
  412. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-software-hive-software-run/definition.json +0 -0
  413. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-software-hive-userprofile-winlogon/definition.json +0 -0
  414. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-software-hive-windows-general-info/definition.json +0 -0
  415. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-system-hive-firewall-configuration/definition.json +0 -0
  416. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-system-hive-general-configuration/definition.json +0 -0
  417. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-system-hive-network-information/definition.json +0 -0
  418. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/regripper-system-hive-services-drivers/definition.json +0 -0
  419. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/report/definition.json +0 -0
  420. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/research-scanner/definition.json +0 -0
  421. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/risk-assessment-report/definition.json +0 -0
  422. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/rogue-dns/definition.json +0 -0
  423. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/rtir/definition.json +0 -0
  424. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/sandbox-report/definition.json +0 -0
  425. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/sb-signature/definition.json +0 -0
  426. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/scan-result/definition.json +0 -0
  427. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/scheduled-event/definition.json +0 -0
  428. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/scheduled-task/definition.json +0 -0
  429. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/scrippsco2-c13-daily/definition.json +0 -0
  430. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/scrippsco2-c13-monthly/definition.json +0 -0
  431. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/scrippsco2-co2-daily/definition.json +0 -0
  432. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/scrippsco2-co2-monthly/definition.json +0 -0
  433. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/scrippsco2-o18-daily/definition.json +0 -0
  434. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/scrippsco2-o18-monthly/definition.json +0 -0
  435. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/script/definition.json +0 -0
  436. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/security-playbook/definition.json +0 -0
  437. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/shadowserver-malware-url-report/definition.json +0 -0
  438. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/shadowserver-scan-http-proxy/definition.json +0 -0
  439. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/shell-commands/definition.json +0 -0
  440. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/shodan-report/definition.json +0 -0
  441. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/short-message-service/definition.json +0 -0
  442. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/shortened-link/definition.json +0 -0
  443. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/sigma/definition.json +0 -0
  444. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/sigmf-archive/definition.json +0 -0
  445. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/sigmf-expanded-recording/definition.json +0 -0
  446. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/sigmf-recording/definition.json +0 -0
  447. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/social-media-group/definition.json +0 -0
  448. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/software/definition.json +0 -0
  449. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/spearphishing-attachment/definition.json +0 -0
  450. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/spearphishing-link/definition.json +0 -0
  451. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/splunk/definition.json +0 -0
  452. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ss7-attack/definition.json +0 -0
  453. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/ssh-authorized-keys/definition.json +0 -0
  454. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/stairwell/definition.json +0 -0
  455. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/stix2-pattern/definition.json +0 -0
  456. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/stock/definition.json +0 -0
  457. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/submarine/definition.json +0 -0
  458. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/suricata/definition.json +0 -0
  459. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/target-system/definition.json +0 -0
  460. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/task/definition.json +0 -0
  461. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/tattoo/definition.json +0 -0
  462. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/telegram-account/definition.json +0 -0
  463. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/telegram-bot/definition.json +0 -0
  464. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/temporal-event/definition.json +0 -0
  465. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/thaicert-group-cards/definition.json +0 -0
  466. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/threatgrid-report/definition.json +0 -0
  467. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/timecode/definition.json +0 -0
  468. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/timesketch-timeline/definition.json +0 -0
  469. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/timesketch_message/definition.json +0 -0
  470. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/timestamp/definition.json +0 -0
  471. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/tor-hiddenservice/definition.json +0 -0
  472. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/tor-node/definition.json +0 -0
  473. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/traceability-impact/definition.json +0 -0
  474. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/tracking-id/definition.json +0 -0
  475. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/transaction/definition.json +0 -0
  476. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/translation/definition.json +0 -0
  477. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/transport-ticket/definition.json +0 -0
  478. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/trustar_report/definition.json +0 -0
  479. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/tsk-chats/definition.json +0 -0
  480. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/tsk-web-bookmark/definition.json +0 -0
  481. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/tsk-web-cookie/definition.json +0 -0
  482. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/tsk-web-downloads/definition.json +0 -0
  483. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/tsk-web-history/definition.json +0 -0
  484. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/tsk-web-search-query/definition.json +0 -0
  485. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/twitter-account/definition.json +0 -0
  486. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/twitter-list/definition.json +0 -0
  487. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/twitter-post/definition.json +0 -0
  488. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/typosquatting-finder/definition.json +0 -0
  489. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/typosquatting-finder-result/definition.json +0 -0
  490. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/url/definition.json +0 -0
  491. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/user-account/definition.json +0 -0
  492. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/user-action/definition.json +0 -0
  493. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/vehicle/definition.json +0 -0
  494. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/victim/definition.json +0 -0
  495. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/virustotal-graph/definition.json +0 -0
  496. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/virustotal-report/definition.json +0 -0
  497. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/virustotal-submission/definition.json +0 -0
  498. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/weakness/definition.json +0 -0
  499. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/whois/definition.json +0 -0
  500. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/windows-service/definition.json +0 -0
  501. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/x-header/definition.json +0 -0
  502. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/x509/definition.json +0 -0
  503. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/yabin/definition.json +0 -0
  504. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/yara/definition.json +0 -0
  505. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/youtube-channel/definition.json +0 -0
  506. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/youtube-comment/definition.json +0 -0
  507. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/youtube-playlist/definition.json +0 -0
  508. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/objects/youtube-video/definition.json +0 -0
  509. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/schema_objects.json +0 -0
  510. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/schema_relationships.json +0 -0
  511. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/tools/adoc_objects.py +0 -0
  512. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/tools/alfred_links_to_relarelationships.py +0 -0
  513. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/tools/list_of_objects.py +0 -0
  514. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/tools/updated.sh +0 -0
  515. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/tools/validate_opposites.sh +0 -0
  516. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/unique_uuid.py +0 -0
  517. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/misp-objects/validate_all.sh +0 -0
  518. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/schema-lax.json +0 -0
  519. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/data/schema.json +0 -0
  520. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/exceptions.py +0 -0
  521. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/py.typed +0 -0
  522. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/__init__.py +0 -0
  523. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/_psl_faup.py +0 -0
  524. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/abstractgenerator.py +0 -0
  525. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/asnobject.py +0 -0
  526. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/create_misp_object.py +0 -0
  527. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/csvloader.py +0 -0
  528. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/domainipobject.py +0 -0
  529. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/elfobject.py +0 -0
  530. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/emailobject.py +0 -0
  531. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/ext_lookups.py +0 -0
  532. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/fail2banobject.py +0 -0
  533. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/feed.py +0 -0
  534. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/fileobject.py +0 -0
  535. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/genericgenerator.py +0 -0
  536. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/geolocationobject.py +0 -0
  537. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/git_vuln_finder_object.py +0 -0
  538. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/load_warninglists.py +0 -0
  539. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/machoobject.py +0 -0
  540. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/microblogobject.py +0 -0
  541. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/neo4j.py +0 -0
  542. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/openioc.py +0 -0
  543. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/peobject.py +0 -0
  544. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/reportlab_generator.py +0 -0
  545. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/sbsignatureobject.py +0 -0
  546. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/sshauthkeyobject.py +0 -0
  547. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/update_objects.py +0 -0
  548. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/urlobject.py +0 -0
  549. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/vehicleobject.py +0 -0
  550. {pymisp-2.5.3 → pymisp-2.5.4}/pymisp/tools/vtreportobject.py +0 -0
  551. {pymisp-2.5.3 → pymisp-2.5.4}/tests/57c4445b-c548-4654-af0b-4be3950d210f.json +0 -0
  552. {pymisp-2.5.3 → pymisp-2.5.4}/tests/__init__.py +0 -0
  553. {pymisp-2.5.3 → pymisp-2.5.4}/tests/csv_testfiles/invalid_fieldnames.csv +0 -0
  554. {pymisp-2.5.3 → pymisp-2.5.4}/tests/csv_testfiles/valid_fieldnames.csv +0 -0
  555. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/mail_1.eml.zip +0 -0
  556. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/mail_1.msg +0 -0
  557. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/mail_1_bom.eml +0 -0
  558. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/mail_1_headers_only.eml +0 -0
  559. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/mail_2.eml +0 -0
  560. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/mail_3.eml +0 -0
  561. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/mail_3.msg +0 -0
  562. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/mail_4.msg +0 -0
  563. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/mail_5.msg +0 -0
  564. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/mail_multiple_to.eml +0 -0
  565. {pymisp-2.5.3 → pymisp-2.5.4}/tests/email_testfiles/source +0 -0
  566. {pymisp-2.5.3 → pymisp-2.5.4}/tests/git-vuln-finder-quagga.json +0 -0
  567. {pymisp-2.5.3 → pymisp-2.5.4}/tests/misp_event.json +0 -0
  568. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/attribute.json +0 -0
  569. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/attribute_del.json +0 -0
  570. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/def_param.json +0 -0
  571. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/event.json +0 -0
  572. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/event_obj_attr_tag.json +0 -0
  573. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/event_obj_def_param.json +0 -0
  574. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/event_obj_tag.json +0 -0
  575. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/event_tags.json +0 -0
  576. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/existing_event.json +0 -0
  577. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/existing_event_edited.json +0 -0
  578. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/galaxy.json +0 -0
  579. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/malware.json +0 -0
  580. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/malware_exist.json +0 -0
  581. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/misp_custom_obj.json +0 -0
  582. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/overwrite_file/definition.json +0 -0
  583. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/proposals.json +0 -0
  584. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/shadow.json +0 -0
  585. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/sighting.json +0 -0
  586. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/simple.json +0 -0
  587. {pymisp-2.5.3 → pymisp-2.5.4}/tests/mispevent_testfiles/test_object_template/definition.json +0 -0
  588. {pymisp-2.5.3 → pymisp-2.5.4}/tests/new_misp_event.json +0 -0
  589. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/HTML_event.json +0 -0
  590. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/galaxy_1.json +0 -0
  591. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/image_event.json +0 -0
  592. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/japanese_test.json +0 -0
  593. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/japanese_test_heavy.json +0 -0
  594. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/long_event.json +0 -0
  595. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/mainly_objects_1.json +0 -0
  596. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/mainly_objects_2.json +0 -0
  597. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/sighting_1.json +0 -0
  598. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/sighting_2.json +0 -0
  599. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/to_delete1.json +0 -0
  600. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/to_delete2.json +0 -0
  601. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/to_delete3.json +0 -0
  602. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testfiles/very_long_event.json +0 -0
  603. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testoutputs/to_delete1.json.pdf +0 -0
  604. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testoutputs/to_delete2.json.pdf +0 -0
  605. {pymisp-2.5.3 → pymisp-2.5.4}/tests/reportlab_testoutputs/to_delete3.json.pdf +0 -0
  606. {pymisp-2.5.3 → pymisp-2.5.4}/tests/search_index_result.json +0 -0
  607. {pymisp-2.5.3 → pymisp-2.5.4}/tests/sharing_groups.json +0 -0
  608. {pymisp-2.5.3 → pymisp-2.5.4}/tests/stix1.xml-utf8 +0 -0
  609. {pymisp-2.5.3 → pymisp-2.5.4}/tests/stix2.json +0 -0
  610. {pymisp-2.5.3 → pymisp-2.5.4}/tests/test_emailobject.py +0 -0
  611. {pymisp-2.5.3 → pymisp-2.5.4}/tests/test_fileobject.py +0 -0
  612. {pymisp-2.5.3 → pymisp-2.5.4}/tests/test_mispevent.py +0 -0
  613. {pymisp-2.5.3 → pymisp-2.5.4}/tests/test_reportlab.py +0 -0
  614. {pymisp-2.5.3 → pymisp-2.5.4}/tests/testlive_comprehensive.py +0 -0
  615. {pymisp-2.5.3 → pymisp-2.5.4}/tests/testlive_sync.py +0 -0
@@ -2,6 +2,64 @@ Changelog
2
2
  =========
3
3
 
4
4
 
5
+ v2.5.4 (2024-12-20)
6
+ -------------------
7
+
8
+ Changes
9
+ ~~~~~~~
10
+ - Update objects templates. [Raphaël Vinot]
11
+ - Make python 3.9 happy. [Raphaël Vinot]
12
+ - Bump deps. [Raphaël Vinot]
13
+ - [AnalystData] Flattening analyst data based on the recent changes on
14
+ MISP standard format. [Christian Studer]
15
+
16
+ - Adding a note or an opinion will always add the
17
+ new analyst data object to the list of notes or
18
+ opinions at the parent data layer level
19
+ - `from_dict` on a JSON blob is also able to parse
20
+ properly analyst data and generate flat lists
21
+ regardless of whether the given data described
22
+ in the new flat or previously nested format
23
+ - Bump deps. [Raphaël Vinot]
24
+ - Bump deps. [Raphaël Vinot]
25
+
26
+ Fix
27
+ ~~~
28
+ - [tests] Removed typing. [Christian Studer]
29
+ - [MISPAnalystData] Added missing typing. [Christian Studer]
30
+ - [MISPAnalystData] Reverted the declaration of Analyst data objects
31
+ lists back to the mixin parent class. [Christian Studer]
32
+ - [MISPAnalystData] Better handling of the different use cases.
33
+ [Christian Studer]
34
+
35
+ - Additional checks for parent to support both
36
+ the standalone and attached analyst data objects
37
+ - Standalone Analyst data objects with nested
38
+ notes or opinions are defined with the nesting
39
+ as they have no parent. When they are added to
40
+ a parent data layer, the nested objects are then
41
+ flattened
42
+ - [AnalystData] Typo... [Christian Studer]
43
+ - [AnalystData] Avoiding issues with analyst data objects. [Christian
44
+ Studer]
45
+
46
+ Other
47
+ ~~~~~
48
+ - Chg; Bump version. [Raphaël Vinot]
49
+ - Revert "fix: [tests] Removed typing" [Christian Studer]
50
+
51
+ This reverts commit a7cf9dc3f03ffda5ee6c1b614792455fe43d8704.
52
+ - Add: [tests] Testing Analyst Data in different scenarios. [Christian
53
+ Studer]
54
+
55
+ - Testing different ways to attach analyst data
56
+ - Testing that no matter what object type the
57
+ analyst data is attached to, the `object_type`
58
+ & `object_uuid` are correct, and the parent
59
+ container does contain every analyst data object
60
+ in flat lists with no nesting
61
+
62
+
5
63
  v2.5.3 (2024-12-16)
6
64
  -------------------
7
65
 
@@ -26,6 +84,7 @@ New
26
84
 
27
85
  Changes
28
86
  ~~~~~~~
87
+ - Bump changelog. [Raphaël Vinot]
29
88
  - Bump release. [Raphaël Vinot]
30
89
  - Bump deps. [Raphaël Vinot]
31
90
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pymisp
3
- Version: 2.5.3
3
+ Version: 2.5.4
4
4
  Summary: Python API for MISP.
5
5
  Home-page: https://github.com/MISP/PyMISP
6
6
  License: BSD-2-Clause
@@ -36,9 +36,9 @@ Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0) ; extra == "openioc"
36
36
  Requires-Dist: deprecated (>=1.2.15,<2.0.0)
37
37
  Requires-Dist: docutils (>=0.21.1,<0.22.0) ; (python_version >= "3.10") and (extra == "docs")
38
38
  Requires-Dist: extract_msg (>=0.52,<0.53) ; extra == "email"
39
- Requires-Dist: lief (>=0.15.0,<0.16.0) ; extra == "fileobjects"
39
+ Requires-Dist: lief (>=0.16.0,<0.17.0) ; extra == "fileobjects"
40
40
  Requires-Dist: oletools (>=0.60.1,<0.61.0) ; extra == "email"
41
- Requires-Dist: publicsuffixlist (>=1.0.2.20241216,<2.0.0.0)
41
+ Requires-Dist: publicsuffixlist (>=1.0.2.20241218,<2.0.0.0)
42
42
  Requires-Dist: pydeep2 (>=0.5.1,<0.6.0) ; extra == "fileobjects"
43
43
  Requires-Dist: pyfaup (>=1.2,<2.0) ; extra == "url"
44
44
  Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
@@ -396,6 +396,7 @@ for a specific attribute. An optional **to_ids** boolean field to disable the ID
396
396
  - [objects/sigmf-recording](https://github.com/MISP/misp-objects/blob/main/objects/sigmf-recording/definition.json) - An object representing a single IQ/RF sample in the Signal Metadata Format Specification (SigMF).
397
397
  - [objects/social-media-group](https://github.com/MISP/misp-objects/blob/main/objects/social-media-group/definition.json) - Social media group object template describing a public or private group or channel.
398
398
  - [objects/software](https://github.com/MISP/misp-objects/blob/main/objects/software/definition.json) - The Software object represents high-level properties associated with software, including software products. STIX 2.1 - 6.14.
399
+ - [objects/spambee-report](https://github.com/MISP/misp-objects/main/objects/spambee-report/definition.json) - A Spambee analysis report.
399
400
  - [objects/spearphishing-attachment](https://github.com/MISP/misp-objects/blob/main/objects/spearphishing-attachment/definition.json) - Spearphishing Attachment.
400
401
  - [objects/spearphishing-link](https://github.com/MISP/misp-objects/blob/main/objects/spearphishing-link/definition.json) - Spearphishing Link.
401
402
  - [objects/splunk](https://github.com/MISP/misp-objects/blob/main/objects/splunk/definition.json) - Splunk / Splunk ES object.
@@ -7,11 +7,17 @@
7
7
  "ui-priority": 1
8
8
  },
9
9
  "certificate": {
10
- "description": "Android certificate",
10
+ "description": "Android certificate (SHA1)",
11
11
  "misp-attribute": "sha1",
12
12
  "multiple": true,
13
13
  "ui-priority": 1
14
14
  },
15
+ "certificate-sha256": {
16
+ "description": "Android certificate (SHA256)",
17
+ "misp-attribute": "sha256",
18
+ "multiple": true,
19
+ "ui-priority": 1
20
+ },
15
21
  "domain": {
16
22
  "description": "Domain used by the app",
17
23
  "misp-attribute": "domain",
@@ -39,5 +45,5 @@
39
45
  "sha256"
40
46
  ],
41
47
  "uuid": "92836f23-4730-4eae-82ac-9f00d5299735",
42
- "version": 1
48
+ "version": 2
43
49
  }
@@ -0,0 +1,54 @@
1
+ {
2
+ "attributes": {
3
+ "feedback-requested": {
4
+ "description": "User has requested feedback",
5
+ "disable_correlation": true,
6
+ "misp-attribute": "boolean",
7
+ "ui-priority": 0
8
+ },
9
+ "feedback-sent": {
10
+ "description": "Feedback has been sent to user",
11
+ "disable_correlation": true,
12
+ "misp-attribute": "boolean",
13
+ "ui-priority": 0
14
+ },
15
+ "feedback-time": {
16
+ "description": "Timestamp of the feedback",
17
+ "disable_correlation": true,
18
+ "misp-attribute": "datetime",
19
+ "ui-priority": 0
20
+ },
21
+ "privacy": {
22
+ "description": "User has requested privacy",
23
+ "disable_correlation": true,
24
+ "misp-attribute": "boolean",
25
+ "ui-priority": 0
26
+ },
27
+ "report-status": {
28
+ "categories": [
29
+ "External analysis"
30
+ ],
31
+ "description": "Result of the Spambee analysis for the submitted email",
32
+ "disable_correlation": true,
33
+ "misp-attribute": "text",
34
+ "ui-priority": 0
35
+ },
36
+ "report-uid": {
37
+ "categories": [
38
+ "Internal reference"
39
+ ],
40
+ "description": "Internal reference to the Spambee report",
41
+ "disable_correlation": true,
42
+ "misp-attribute": "text",
43
+ "ui-priority": 0
44
+ }
45
+ },
46
+ "description": "A Spambee analysis report",
47
+ "meta-category": "network",
48
+ "name": "spambee-report",
49
+ "requiredOneOf": [
50
+ "report-uid"
51
+ ],
52
+ "uuid": "305d6e6c-bb4d-4b9a-abf5-9f34d1322352",
53
+ "version": 3
54
+ }
@@ -14,13 +14,13 @@
14
14
  "ui-priority": 0
15
15
  },
16
16
  "cvss-score": {
17
- "description": "Score of the Common Vulnerability Scoring System (version 3).",
17
+ "description": "Score of the Common Vulnerability Scoring System.",
18
18
  "disable_correlation": true,
19
19
  "misp-attribute": "float",
20
20
  "ui-priority": 1
21
21
  },
22
22
  "cvss-string": {
23
- "description": "String of the Common Vulnerability Scoring System (version 3).",
23
+ "description": "String of the Common Vulnerability Scoring System.",
24
24
  "disable_correlation": true,
25
25
  "misp-attribute": "text",
26
26
  "ui-priority": 1
@@ -65,7 +65,8 @@
65
65
  "Reviewed",
66
66
  "Vulnerability ID Assigned",
67
67
  "Reported",
68
- "Fixed"
68
+ "Fixed",
69
+ "Encoded"
69
70
  ],
70
71
  "ui-priority": 0
71
72
  },
@@ -94,5 +95,5 @@
94
95
  "id"
95
96
  ],
96
97
  "uuid": "81650945-f186-437b-8945-9f31715d32da",
97
- "version": 8
98
+ "version": 9
98
99
  }
@@ -1907,7 +1907,23 @@
1907
1907
  "misp"
1908
1908
  ],
1909
1909
  "name": "releasable-to"
1910
+ },
1911
+ {
1912
+ "description": "The source object is weakened by the target weakness.",
1913
+ "format": [
1914
+ "misp"
1915
+ ],
1916
+ "name": "weakened-by",
1917
+ "opposite": "weakens"
1918
+ },
1919
+ {
1920
+ "description": "The source weakness weakens the target object.",
1921
+ "format": [
1922
+ "misp"
1923
+ ],
1924
+ "name": "weakens",
1925
+ "opposite": "weakened-by"
1910
1926
  }
1911
1927
  ],
1912
- "version": 50
1928
+ "version": 51
1913
1929
  }
@@ -60,28 +60,37 @@ class AnalystDataBehaviorMixin(AbstractMISP):
60
60
 
61
61
  def add_note(self, note: str, language: str | None = None, **kwargs) -> MISPNote: # type: ignore[no-untyped-def]
62
62
  the_note = MISPNote()
63
- the_note.from_dict(note=note, language=language,
64
- object_uuid=self.uuid, object_type=self.analyst_data_object_type,
65
- **kwargs)
63
+ object_uuid = kwargs.pop('object_uuid', self.uuid)
64
+ object_type = kwargs.pop('object_type', self.analyst_data_object_type)
65
+ the_note.from_dict(
66
+ note=note, language=language, object_uuid=object_uuid,
67
+ object_type=object_type, contained=True, parent=self, **kwargs
68
+ )
66
69
  self.notes.append(the_note)
67
70
  self.edited = True
68
71
  return the_note
69
72
 
70
73
  def add_opinion(self, opinion: int, comment: str | None = None, **kwargs) -> MISPOpinion: # type: ignore[no-untyped-def]
71
74
  the_opinion = MISPOpinion()
72
- the_opinion.from_dict(opinion=opinion, comment=comment,
73
- object_uuid=self.uuid, object_type=self.analyst_data_object_type,
74
- **kwargs)
75
+ object_uuid = kwargs.pop('object_uuid', self.uuid)
76
+ object_type = kwargs.pop('object_type', self.analyst_data_object_type)
77
+ the_opinion.from_dict(
78
+ opinion=opinion, comment=comment, object_uuid=object_uuid,
79
+ object_type=object_type, contained=True, parent=self, **kwargs
80
+ )
75
81
  self.opinions.append(the_opinion)
76
82
  self.edited = True
77
83
  return the_opinion
78
84
 
79
85
  def add_relationship(self, related_object_type: AbstractMISP | str, related_object_uuid: str | None, relationship_type: str, **kwargs) -> MISPRelationship: # type: ignore[no-untyped-def]
80
86
  the_relationship = MISPRelationship()
81
- the_relationship.from_dict(related_object_type=related_object_type, related_object_uuid=related_object_uuid,
82
- relationship_type=relationship_type,
83
- object_uuid=self.uuid, object_type=self.analyst_data_object_type,
84
- **kwargs)
87
+ the_relationship.from_dict(
88
+ related_object_type=related_object_type,
89
+ related_object_uuid=related_object_uuid,
90
+ relationship_type=relationship_type, object_uuid=self.uuid,
91
+ object_type=self.analyst_data_object_type, contained=True,
92
+ parent=self, **kwargs
93
+ )
85
94
  self.relationships.append(the_relationship)
86
95
  self.edited = True
87
96
  return the_relationship
@@ -93,12 +102,8 @@ class AnalystDataBehaviorMixin(AbstractMISP):
93
102
  relationships = kwargs.pop('Relationship', [])
94
103
  super().from_dict(**kwargs)
95
104
  for note in notes:
96
- note.pop('object_uuid', None)
97
- note.pop('object_type', None)
98
105
  self.add_note(**note)
99
106
  for opinion in opinions:
100
- opinion.pop('object_uuid', None)
101
- opinion.pop('object_type', None)
102
107
  self.add_opinion(**opinion)
103
108
  for relationship in relationships:
104
109
  relationship.pop('object_uuid', None)
@@ -2523,6 +2528,10 @@ class MISPAnalystData(AbstractMISP):
2523
2528
  'Object', 'Note', 'Opinion', 'Relationship', 'Organisation',
2524
2529
  'SharingGroup'}
2525
2530
 
2531
+ @property
2532
+ def analyst_data_object_type(self) -> str:
2533
+ return self._analyst_data_object_type
2534
+
2526
2535
  @property
2527
2536
  def org(self) -> MISPOrganisation:
2528
2537
  return self.Org
@@ -2538,6 +2547,10 @@ class MISPAnalystData(AbstractMISP):
2538
2547
  else:
2539
2548
  raise PyMISPError('Orgc must be of type MISPOrganisation.')
2540
2549
 
2550
+ @property
2551
+ def parent(self) -> MISPAttribute | MISPEvent | MISPEventReport | MISPObject:
2552
+ return self.__parent
2553
+
2541
2554
  def __new__(cls, *args, **kwargs):
2542
2555
  if cls is MISPAnalystData:
2543
2556
  raise TypeError(f"only children of '{cls.__name__}' may be instantiated")
@@ -2552,8 +2565,54 @@ class MISPAnalystData(AbstractMISP):
2552
2565
  self.created: float | int | datetime
2553
2566
  self.modified: float | int | datetime
2554
2567
  self.SharingGroup: MISPSharingGroup
2568
+ self._analyst_data_object_type: str # Must be defined in the child class
2569
+
2570
+ def add_note(self, note: str, language: str | None = None, object_uuid: str | None = None, object_type: str | None = None, parent: MISPEvent | MISPAttribute | MISPObject | MISPEventReport | None = None, **kwargs: dict[str, Any]) -> MISPNote:
2571
+ misp_note = MISPNote()
2572
+ if object_uuid is None:
2573
+ object_uuid = self.uuid
2574
+ if object_type is None:
2575
+ object_type = self.analyst_data_object_type
2576
+ if parent is None and hasattr(self, 'parent'):
2577
+ parent = self.parent
2578
+ misp_note.from_dict(
2579
+ note=note, language=language, object_uuid=object_uuid,
2580
+ object_type=object_type, parent=parent, contained=True, **kwargs
2581
+ )
2582
+ if parent is None:
2583
+ if not hasattr(self, 'Note'):
2584
+ self.Note: list[MISPNote] = []
2585
+ self.Note.append(misp_note)
2586
+ else:
2587
+ self.parent.notes.append(misp_note)
2588
+ self.edited = True
2589
+ return misp_note
2590
+
2591
+ def add_opinion(self, opinion: int, comment: str | None = None, object_uuid: str | None = None, object_type: str | None = None, parent: MISPEvent | MISPAttribute | MISPObject | MISPEventReport | None = None, **kwargs: dict[str, Any]) -> MISPOpinion:
2592
+ misp_opinion = MISPOpinion()
2593
+ if object_uuid is None:
2594
+ object_uuid = self.uuid
2595
+ if object_type is None:
2596
+ object_type = self.analyst_data_object_type
2597
+ if parent is None and hasattr(self, 'parent'):
2598
+ parent = self.parent
2599
+ misp_opinion.from_dict(
2600
+ opinion=opinion, comment=comment, object_uuid=object_uuid,
2601
+ object_type=object_type, parent=parent, contained=True, **kwargs
2602
+ )
2603
+ if parent is None:
2604
+ if not hasattr(self, 'Opinion'):
2605
+ self.Opinion: list[MISPOpinion] = []
2606
+ self.Opinion.append(misp_opinion)
2607
+ else:
2608
+ self.parent.opinions.append(misp_opinion)
2609
+ self.edited = True
2610
+ return misp_opinion
2555
2611
 
2556
2612
  def from_dict(self, **kwargs) -> None: # type: ignore[no-untyped-def]
2613
+ notes = kwargs.pop('Note', [])
2614
+ opinions = kwargs.pop('Opinion', [])
2615
+ self.__parent = kwargs.pop('parent', None)
2557
2616
  self.distribution = kwargs.pop('distribution', None)
2558
2617
  if self.distribution is not None:
2559
2618
  self.distribution = int(self.distribution)
@@ -2607,6 +2666,11 @@ class MISPAnalystData(AbstractMISP):
2607
2666
 
2608
2667
  super().from_dict(**kwargs)
2609
2668
 
2669
+ for note in notes:
2670
+ self.add_note(**note)
2671
+ for opinion in opinions:
2672
+ self.add_opinion(**opinion)
2673
+
2610
2674
  def _set_default(self) -> None:
2611
2675
  if not hasattr(self, 'created'):
2612
2676
  self.created = datetime.timestamp(datetime.now())
@@ -2614,7 +2678,7 @@ class MISPAnalystData(AbstractMISP):
2614
2678
  self.modified = self.created
2615
2679
 
2616
2680
 
2617
- class MISPNote(AnalystDataBehaviorMixin, MISPAnalystData):
2681
+ class MISPNote(MISPAnalystData):
2618
2682
 
2619
2683
  _fields_for_feed: set[str] = MISPAnalystData._fields_for_feed.union({'note', 'language'})
2620
2684
 
@@ -2625,8 +2689,8 @@ class MISPNote(AnalystDataBehaviorMixin, MISPAnalystData):
2625
2689
  self.language: str
2626
2690
  super().__init__(**kwargs)
2627
2691
 
2628
- def from_dict(self, **kwargs) -> None: # type: ignore[no-untyped-def]
2629
- if 'Note' in kwargs:
2692
+ def from_dict(self, contained=False, **kwargs) -> None: # type: ignore[no-untyped-def]
2693
+ if not contained and 'Note' in kwargs:
2630
2694
  kwargs = kwargs['Note']
2631
2695
  self.note = kwargs.pop('note', None)
2632
2696
  if self.note is None:
@@ -2639,7 +2703,7 @@ class MISPNote(AnalystDataBehaviorMixin, MISPAnalystData):
2639
2703
  return f'<{self.__class__.__name__}(NotInitialized)'
2640
2704
 
2641
2705
 
2642
- class MISPOpinion(AnalystDataBehaviorMixin, MISPAnalystData):
2706
+ class MISPOpinion(MISPAnalystData):
2643
2707
 
2644
2708
  _fields_for_feed: set[str] = MISPAnalystData._fields_for_feed.union({'opinion', 'comment'})
2645
2709
 
@@ -2650,8 +2714,8 @@ class MISPOpinion(AnalystDataBehaviorMixin, MISPAnalystData):
2650
2714
  self.comment: str
2651
2715
  super().__init__(**kwargs)
2652
2716
 
2653
- def from_dict(self, **kwargs) -> None: # type: ignore[no-untyped-def]
2654
- if 'Opinion' in kwargs:
2717
+ def from_dict(self, contained=False, **kwargs) -> None: # type: ignore[no-untyped-def]
2718
+ if not contained and 'Opinion' in kwargs:
2655
2719
  kwargs = kwargs['Opinion']
2656
2720
  self.opinion = kwargs.pop('opinion', None)
2657
2721
  if self.opinion is not None:
@@ -2673,7 +2737,7 @@ class MISPOpinion(AnalystDataBehaviorMixin, MISPAnalystData):
2673
2737
  return f'<{self.__class__.__name__}(NotInitialized)'
2674
2738
 
2675
2739
 
2676
- class MISPRelationship(AnalystDataBehaviorMixin, MISPAnalystData):
2740
+ class MISPRelationship(MISPAnalystData):
2677
2741
 
2678
2742
  _fields_for_feed: set[str] = MISPAnalystData._fields_for_feed.union({'related_object_uuid', 'related_object_type', 'relationship_type'})
2679
2743
 
@@ -2685,8 +2749,8 @@ class MISPRelationship(AnalystDataBehaviorMixin, MISPAnalystData):
2685
2749
  self.relationship_type: str
2686
2750
  super().__init__(**kwargs)
2687
2751
 
2688
- def from_dict(self, **kwargs) -> None: # type: ignore[no-untyped-def]
2689
- if 'Relationship' in kwargs:
2752
+ def from_dict(self, contained=False, **kwargs) -> None: # type: ignore[no-untyped-def]
2753
+ if not contained and 'Relationship' in kwargs:
2690
2754
  kwargs = kwargs['Relationship']
2691
2755
  self.related_object_type = kwargs.pop('related_object_type', None)
2692
2756
  if self.related_object_type is None:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pymisp"
3
- version = "2.5.3"
3
+ version = "2.5.4"
4
4
  description = "Python API for MISP."
5
5
  authors = ["Raphaël Vinot <raphael.vinot@circl.lu>"]
6
6
  license = "BSD-2-Clause"
@@ -53,7 +53,7 @@ RTFDE = {version = "^0.1.1", optional = true}
53
53
  oletools = {version = "^0.60.1", optional = true}
54
54
  python-magic = {version = "^0.4.27", optional = true}
55
55
  pydeep2 = {version = "^0.5.1", optional = true}
56
- lief = {version = "^0.15.0", optional = true}
56
+ lief = {version = "^0.16.0", optional = true}
57
57
  beautifulsoup4 = {version = "^4.12.3", optional = true}
58
58
  validators = {version = "^0.34.0", optional = true}
59
59
  sphinx-autodoc-typehints = {version = "^2.5.0", optional = true, python = ">=3.10"}
@@ -61,7 +61,7 @@ docutils = {version = "^0.21.1", optional = true, python = ">=3.10"}
61
61
  recommonmark = {version = "^0.7.1", optional = true, python = ">=3.10"}
62
62
  reportlab = {version = "^4.2.5", optional = true}
63
63
  pyfaup = {version = "^1.2", optional = true}
64
- publicsuffixlist = {version = "^1.0.2.20241216", optional = true}
64
+ publicsuffixlist = {version = "^1.0.2.20241218", optional = true}
65
65
  urllib3 = {extras = ["brotli"], version = "*", optional = true}
66
66
  Sphinx = [
67
67
  {version = "^8", python = ">=3.10", optional = true}
@@ -84,7 +84,7 @@ ipython = [
84
84
  {version = "^8.18.0", python = "<3.10"},
85
85
  {version = "^8.19.0", python = ">=3.10"}
86
86
  ]
87
- jupyterlab = "^4.3.3"
87
+ jupyterlab = "^4.3.4"
88
88
  types-requests = "^2.32.0.20241016"
89
89
  types-python-dateutil = "^2.9.0.20241206"
90
90
  types-redis = "^4.6.0.20241004"
@@ -0,0 +1,123 @@
1
+ #!/usr/bin/env python
2
+
3
+ from __future__ import annotations
4
+
5
+ import unittest
6
+ from pymisp import (MISPAttribute, MISPEvent, MISPEventReport, MISPNote,
7
+ MISPObject, MISPOpinion)
8
+ from uuid import uuid4
9
+
10
+
11
+ class TestAnalystData(unittest.TestCase):
12
+ def setUp(self) -> None:
13
+ self.note_dict = {
14
+ "uuid": uuid4(),
15
+ "note": "note3"
16
+ }
17
+ self.opinion_dict = {
18
+ "uuid": uuid4(),
19
+ "opinion": 75,
20
+ "comment": "Agree"
21
+ }
22
+
23
+ def test_analyst_data_on_attribute(self) -> None:
24
+ attribute = MISPAttribute()
25
+ attribute.from_dict(type='filename', value='foo.exe')
26
+ self._attach_analyst_data(attribute)
27
+
28
+ def test_analyst_data_on_attribute_alternative(self) -> None:
29
+ event = MISPEvent()
30
+ event.info = 'Test on Attribute'
31
+ event.add_attribute('domain', 'foo.bar')
32
+ self._attach_analyst_data(event.attributes[0])
33
+
34
+ def test_analyst_data_on_event(self) -> None:
35
+ event = MISPEvent()
36
+ event.info = 'Test Event'
37
+ self._attach_analyst_data(event)
38
+
39
+ def test_analyst_data_on_event_report(self) -> None:
40
+ event_report = MISPEventReport()
41
+ event_report.from_dict(name='Test Report', content='This is a report')
42
+ self._attach_analyst_data(event_report)
43
+
44
+ def test_analyst_data_on_event_report_alternative(self) -> None:
45
+ event = MISPEvent()
46
+ event.info = 'Test on Event Report'
47
+ event.add_event_report('Test Report', 'This is a report')
48
+ self._attach_analyst_data(event.event_reports[0])
49
+
50
+ def test_analyst_data_on_object(self) -> None:
51
+ misp_object = MISPObject('file')
52
+ misp_object.add_attribute('filename', 'foo.exe')
53
+ self._attach_analyst_data(misp_object)
54
+
55
+ def test_analyst_data_on_object_alternative(self) -> None:
56
+ event = MISPEvent()
57
+ event.info = 'Test on Object'
58
+ misp_object = MISPObject('file')
59
+ misp_object.add_attribute('filename', 'foo.exe')
60
+ event.add_object(misp_object)
61
+ self._attach_analyst_data(event.objects[0])
62
+
63
+ def test_analyst_data_on_object_attribute(self) -> None:
64
+ misp_object = MISPObject('file')
65
+ object_attribute = misp_object.add_attribute('filename', 'foo.exe')
66
+ self._attach_analyst_data(object_attribute)
67
+
68
+ def test_analyst_data_object_object_attribute_alternative(self) -> None:
69
+ misp_object = MISPObject('file')
70
+ misp_object.add_attribute('filename', 'foo.exe')
71
+ self._attach_analyst_data(misp_object.attributes[0])
72
+
73
+ def _attach_analyst_data(
74
+ self, container: MISPAttribute | MISPEvent | MISPEventReport | MISPObject) -> None:
75
+ object_type = container._analyst_data_object_type
76
+ note1 = container.add_note(note='note1')
77
+ opinion1 = note1.add_opinion(opinion=25, comment='Disagree')
78
+ opinion2 = container.add_opinion(opinion=50, comment='Neutral')
79
+ note2 = opinion2.add_note(note='note2')
80
+
81
+ dict_note = MISPNote()
82
+ dict_note.from_dict(
83
+ object_type=object_type, object_uuid=container.uuid, **self.note_dict
84
+ )
85
+ note3 = container.add_note(**dict_note)
86
+ dict_opinion = MISPOpinion()
87
+ dict_opinion.from_dict(
88
+ object_type='Note', object_uuid=note3.uuid, **self.opinion_dict
89
+ )
90
+ container.add_opinion(**dict_opinion)
91
+
92
+ self.assertEqual(len(container.notes), 3)
93
+ self.assertEqual(len(container.opinions), 3)
94
+
95
+ misp_note1, misp_note2, misp_note3 = container.notes
96
+ misp_opinion1, misp_opinion2, misp_opinion3 = container.opinions
97
+
98
+ self.assertEqual(misp_note1.object_type, object_type)
99
+ self.assertEqual(misp_note1.object_uuid, container.uuid)
100
+ self.assertEqual(misp_note1.note, 'note1')
101
+
102
+ self.assertEqual(misp_note2.object_type, 'Opinion')
103
+ self.assertEqual(misp_note2.object_uuid, opinion2.uuid)
104
+ self.assertEqual(misp_note2.note, 'note2')
105
+
106
+ self.assertEqual(misp_note3.object_type, object_type)
107
+ self.assertEqual(misp_note3.object_uuid, container.uuid)
108
+ self.assertEqual(misp_note3.note, 'note3')
109
+
110
+ self.assertEqual(misp_opinion1.object_type, 'Note')
111
+ self.assertEqual(misp_opinion1.object_uuid, note1.uuid)
112
+ self.assertEqual(misp_opinion1.opinion, 25)
113
+ self.assertEqual(misp_opinion1.comment, 'Disagree')
114
+
115
+ self.assertEqual(misp_opinion2.object_type, object_type)
116
+ self.assertEqual(misp_opinion2.object_uuid, container.uuid)
117
+ self.assertEqual(misp_opinion2.opinion, 50)
118
+ self.assertEqual(misp_opinion2.comment, 'Neutral')
119
+
120
+ self.assertEqual(misp_opinion3.object_type, 'Note')
121
+ self.assertEqual(misp_opinion3.object_uuid, note3.uuid)
122
+ self.assertEqual(misp_opinion3.opinion, 75)
123
+ self.assertEqual(misp_opinion3.comment, 'Agree')
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes