misp-modules 3.0.0__tar.gz → 3.0.1__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 (206) hide show
  1. {misp_modules-3.0.0 → misp_modules-3.0.1}/PKG-INFO +1 -2
  2. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/__init__.py +9 -9
  3. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/__main__.py +18 -22
  4. {misp_modules-3.0.0 → misp_modules-3.0.1}/pyproject.toml +1 -2
  5. misp_modules-3.0.0/misp_modules/helpers/cache.py +0 -99
  6. misp_modules-3.0.0/misp_modules/modules/import_mod/__init__.py +0 -0
  7. {misp_modules-3.0.0 → misp_modules-3.0.1}/LICENSE +0 -0
  8. {misp_modules-3.0.0 → misp_modules-3.0.1}/README.md +0 -0
  9. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/ODTReader/LICENSE +0 -0
  10. {misp_modules-3.0.0/misp_modules/helpers → misp_modules-3.0.1/misp_modules/lib/ODTReader}/__init__.py +0 -0
  11. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/ODTReader/odtreader.py +0 -0
  12. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/ODTReader/win32_unicode_argv.py +0 -0
  13. {misp_modules-3.0.0/misp_modules/lib/ODTReader → misp_modules-3.0.1/misp_modules/lib}/__init__.py +0 -0
  14. {misp_modules-3.0.0/misp_modules/lib → misp_modules-3.0.1/misp_modules/lib/_vmray}/__init__.py +0 -0
  15. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/_vmray/parser.py +0 -0
  16. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/_vmray/rest_api.py +0 -0
  17. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/cof2misp/LICENSE-2.0.txt +0 -0
  18. {misp_modules-3.0.0/misp_modules/lib/_vmray → misp_modules-3.0.1/misp_modules/lib/cof2misp}/__init__.py +0 -0
  19. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/cof2misp/cof.py +0 -0
  20. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/dnstrails/LICENSE +0 -0
  21. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/dnstrails/__init__.py +0 -0
  22. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/dnstrails/api.py +0 -0
  23. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/dnstrails/exception.py +0 -0
  24. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/joe_mapping.py +0 -0
  25. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/joe_parser.py +0 -0
  26. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/lastline_api.py +0 -0
  27. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/onyphe/LICENSE +0 -0
  28. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/onyphe/__init__.py +0 -0
  29. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/onyphe/client.py +0 -0
  30. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/onyphe/exception.py +0 -0
  31. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/qintel_helper.py +0 -0
  32. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/synonymsToTagNames.json +0 -0
  33. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/vt_graph_parser/__init__.py +0 -0
  34. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/vt_graph_parser/errors.py +0 -0
  35. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/vt_graph_parser/helpers/__init__.py +0 -0
  36. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/vt_graph_parser/helpers/parsers.py +0 -0
  37. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/vt_graph_parser/helpers/rules.py +0 -0
  38. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/vt_graph_parser/helpers/wrappers.py +0 -0
  39. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/vt_graph_parser/importers/__init__.py +0 -0
  40. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/vt_graph_parser/importers/base.py +0 -0
  41. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/lib/vt_graph_parser/importers/pymisp_response.py +0 -0
  42. {misp_modules-3.0.0/misp_modules/lib/cof2misp → misp_modules-3.0.1/misp_modules/modules}/__init__.py +0 -0
  43. {misp_modules-3.0.0/misp_modules/modules → misp_modules-3.0.1/misp_modules/modules/action_mod}/__init__.py +0 -0
  44. {misp_modules-3.0.0/misp_modules/modules/action_mod → misp_modules-3.0.1/misp_modules/modules/action_mod/_utils}/__init__.py +0 -0
  45. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/action_mod/_utils/utils.py +0 -0
  46. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/action_mod/mattermost.py +0 -0
  47. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/action_mod/slack.py +0 -0
  48. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/action_mod/testaction.py +0 -0
  49. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/__init__.py +0 -0
  50. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/_dnsdb_query/COPYRIGHT +0 -0
  51. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/_dnsdb_query/LICENSE +0 -0
  52. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/_dnsdb_query/README.md +0 -0
  53. {misp_modules-3.0.0/misp_modules/modules/action_mod/_utils → misp_modules-3.0.1/misp_modules/modules/expansion/_dnsdb_query}/__init__.py +0 -0
  54. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/_dnsdb_query/dnsdb_query.py +0 -0
  55. {misp_modules-3.0.0/misp_modules/modules/expansion/_dnsdb_query → misp_modules-3.0.1/misp_modules/modules/expansion/_ransomcoindb}/__init__.py +0 -0
  56. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/_ransomcoindb/ransomcoindb.py +0 -0
  57. {misp_modules-3.0.0/misp_modules/modules/expansion/_ransomcoindb → misp_modules-3.0.1/misp_modules/modules/expansion/_vulnerability_parser}/__init__.py +0 -0
  58. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/_vulnerability_parser/vulnerability_parser.py +0 -0
  59. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/abuseipdb.py +0 -0
  60. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/apiosintds.py +0 -0
  61. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/apivoid.py +0 -0
  62. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/assemblyline_query.py +0 -0
  63. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/assemblyline_submit.py +0 -0
  64. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/backscatter_io.py +0 -0
  65. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/btc_scam_check.py +0 -0
  66. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/btc_steroids.py +0 -0
  67. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/censys_enrich.py +0 -0
  68. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/circl_passivedns.py +0 -0
  69. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/circl_passivessl.py +0 -0
  70. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/clamav.py +0 -0
  71. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/cluster25_expand.py +0 -0
  72. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/convert_markdown_to_pdf.py +0 -0
  73. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/countrycode.py +0 -0
  74. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/cpe.py +0 -0
  75. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/crowdsec.py +0 -0
  76. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/crowdstrike_falcon.py +0 -0
  77. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/cuckoo_submit.py +0 -0
  78. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/cve.py +0 -0
  79. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/cve_advanced.py +0 -0
  80. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/cytomic_orion.py +0 -0
  81. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/dbl_spamhaus.py +0 -0
  82. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/dns.py +0 -0
  83. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/docx_enrich.py +0 -0
  84. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/domaintools.py +0 -0
  85. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/eql.py +0 -0
  86. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/eupi.py +0 -0
  87. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/extract_url_components.py +0 -0
  88. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/farsight_passivedns.py +0 -0
  89. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/geoip_asn.py +0 -0
  90. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/geoip_city.py +0 -0
  91. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/geoip_country.py +0 -0
  92. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/google_safe_browsing.py +0 -0
  93. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/google_threat_intelligence.py +0 -0
  94. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/greynoise.py +0 -0
  95. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/hashdd.py +0 -0
  96. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/hashlookup.py +0 -0
  97. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/hibp.py +0 -0
  98. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/html_to_markdown.py +0 -0
  99. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/hyasinsight.py +0 -0
  100. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/intel471.py +0 -0
  101. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/intelmq_eventdb.py.experimental +0 -0
  102. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/ip2locationio.py +0 -0
  103. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/ipasn.py +0 -0
  104. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/ipinfo.py +0 -0
  105. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/ipqs_fraud_and_risk_scoring.py +0 -0
  106. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/iprep.py +0 -0
  107. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/jinja_template_rendering.py +0 -0
  108. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/joesandbox_query.py +0 -0
  109. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/joesandbox_submit.py +0 -0
  110. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/lastline_query.py +0 -0
  111. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/lastline_submit.py +0 -0
  112. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/macaddress_io.py +0 -0
  113. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/macvendors.py +0 -0
  114. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/malshare_upload.py +0 -0
  115. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/malwarebazaar.py +0 -0
  116. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/mcafee_insights_enrich.py +0 -0
  117. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/mmdb_lookup.py +0 -0
  118. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/module.py.skeleton +0 -0
  119. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/module_misp_standard.py.skeleton +0 -0
  120. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/mwdb.py +0 -0
  121. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/ocr_enrich.py +0 -0
  122. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/ods_enrich.py +0 -0
  123. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/odt_enrich.py +0 -0
  124. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/onion_lookup.py +0 -0
  125. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/onyphe.py +0 -0
  126. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/onyphe_full.py +0 -0
  127. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/otx.py +0 -0
  128. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/passive_ssh.py +0 -0
  129. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/passivetotal.py +0 -0
  130. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/pdf_enrich.py +0 -0
  131. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/pptx_enrich.py +0 -0
  132. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/qintel_qsentry.py +0 -0
  133. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/qrcode.py +0 -0
  134. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/ransomcoindb.py +0 -0
  135. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/rbl.py +0 -0
  136. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/recordedfuture.py +0 -0
  137. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/reversedns.py +0 -0
  138. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/securitytrails.py +0 -0
  139. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/shodan.py +0 -0
  140. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/sigma_queries.py +0 -0
  141. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/sigma_syntax_validator.py +0 -0
  142. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/sigmf_expand.py +0 -0
  143. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/socialscan.py +0 -0
  144. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/sophoslabs_intelix.py +0 -0
  145. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/sourcecache.py +0 -0
  146. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/stairwell.py +0 -0
  147. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/stix2_pattern_syntax_validator.py +0 -0
  148. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/threatcrowd.py +0 -0
  149. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/threatfox.py +0 -0
  150. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/threatminer.py +0 -0
  151. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/triage_submit.py +0 -0
  152. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/trustar_enrich.py +0 -0
  153. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/urlhaus.py +0 -0
  154. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/urlscan.py +0 -0
  155. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/variotdbs.py +0 -0
  156. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/virustotal.py +0 -0
  157. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/virustotal_public.py +0 -0
  158. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/virustotal_upload.py +0 -0
  159. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/vmray_submit.py +0 -0
  160. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/vmware_nsx.py +0 -0
  161. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/vulndb.py +0 -0
  162. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/vulnerability_lookup.py +0 -0
  163. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/vulners.py +0 -0
  164. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/vysion.py +0 -0
  165. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/whois.py +0 -0
  166. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/whoisfreaks.py +0 -0
  167. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/wiki.py +0 -0
  168. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/xforceexchange.py +0 -0
  169. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/xlsx_enrich.py +0 -0
  170. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/yara_query.py +0 -0
  171. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/yara_syntax_validator.py +0 -0
  172. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/expansion/yeti.py +0 -0
  173. {misp_modules-3.0.0/misp_modules/modules/expansion/_vulnerability_parser → misp_modules-3.0.1/misp_modules/modules/export_mod}/__init__.py +0 -0
  174. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/cef_export.py +0 -0
  175. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/cisco_firesight_manager_ACL_rule_export.py +0 -0
  176. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/defender_endpoint_export.py +0 -0
  177. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/goamlexport.py +0 -0
  178. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/liteexport.py +0 -0
  179. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/mass_eql_export.py +0 -0
  180. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/nexthinkexport.py +0 -0
  181. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/osqueryexport.py +0 -0
  182. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/pdfexport.py +0 -0
  183. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/testexport.py +0 -0
  184. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/threatStream_misp_export.py +0 -0
  185. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/threat_connect_export.py +0 -0
  186. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/virustotal_collections.py +0 -0
  187. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/vt_graph.py +0 -0
  188. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/export_mod/yara_export.py +0 -0
  189. {misp_modules-3.0.0/misp_modules/modules/export_mod → misp_modules-3.0.1/misp_modules/modules/import_mod}/__init__.py +0 -0
  190. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/cof2misp.py +0 -0
  191. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/csvimport.py +0 -0
  192. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/cuckooimport.py +0 -0
  193. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/email_import.py +0 -0
  194. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/goamlimport.py +0 -0
  195. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/import_blueprint.py +0 -0
  196. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/joe_import.py +0 -0
  197. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/lastline_import.py +0 -0
  198. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/mispjson.py +0 -0
  199. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/ocr.py +0 -0
  200. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/openiocimport.py +0 -0
  201. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/taxii21.py +0 -0
  202. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/testimport.py +0 -0
  203. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/threatanalyzer_import.py +0 -0
  204. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/url_import.py +0 -0
  205. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/vmray_import.py +0 -0
  206. {misp_modules-3.0.0 → misp_modules-3.0.1}/misp_modules/modules/import_mod/vmray_summary_json_import.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: misp-modules
3
- Version: 3.0.0
3
+ Version: 3.0.1
4
4
  Summary: MISP modules are autonomous modules that can be used for expansion and other services in MISP
5
5
  License: AGPL-3.0-only
6
6
  Author: Alexandre Dulaunoy
@@ -63,7 +63,6 @@ Requires-Dist: pytesseract ; extra == "all"
63
63
  Requires-Dist: python-docx ; extra == "all"
64
64
  Requires-Dist: python-pptx ; extra == "all"
65
65
  Requires-Dist: pyzbar ; extra == "all"
66
- Requires-Dist: redis
67
66
  Requires-Dist: requests[security] ; extra == "all"
68
67
  Requires-Dist: setuptools
69
68
  Requires-Dist: setuptools ; extra == "all"
@@ -19,6 +19,7 @@
19
19
  import enum
20
20
  import importlib
21
21
  import importlib.abc
22
+ import importlib.metadata
22
23
  import importlib.resources
23
24
  import importlib.util
24
25
  import pathlib
@@ -43,6 +44,14 @@ class ModuleType(enum.Enum):
43
44
  ACTION_MOD = "action_mod"
44
45
 
45
46
 
47
+ def get_version() -> str:
48
+ """Return the version."""
49
+ try:
50
+ return importlib.metadata.version("misp-modules")
51
+ except importlib.metadata.PackageNotFoundError:
52
+ raise ValueError
53
+
54
+
46
55
  def is_valid_module(module: importlib.abc.Traversable) -> bool:
47
56
  """Whether the reference is a valid module file."""
48
57
  if not module.is_file():
@@ -65,15 +74,6 @@ def is_valid_module_type(module_type: importlib.abc.Traversable) -> bool:
65
74
  return True
66
75
 
67
76
 
68
- def iterate_helpers(
69
- helpers_dir: typing.Union[importlib.abc.Traversable, pathlib.Path],
70
- ) -> typing.Generator[importlib.abc.Traversable, None, None]:
71
- """Iterate helpers and return helper references."""
72
- for helper in helpers_dir.iterdir():
73
- if is_valid_module(helper):
74
- yield helper
75
-
76
-
77
77
  def iterate_modules(
78
78
  modules_dir: typing.Union[importlib.abc.Traversable, pathlib.Path],
79
79
  ) -> typing.Generator[tuple[importlib.abc.Traversable, importlib.abc.Traversable], None, None]:
@@ -114,11 +114,22 @@ def init_logger(debug: bool = False) -> None:
114
114
  LOGGER.addHandler(handler)
115
115
 
116
116
 
117
- class Healthcheck(tornado.web.RequestHandler):
118
- """Healthcheck handler."""
117
+ class VersionCheck(tornado.web.RequestHandler):
118
+ """VersionCheck handler."""
119
119
 
120
120
  def get(self):
121
- LOGGER.debug("MISP Healthcheck request")
121
+ LOGGER.debug("VersionCheck request")
122
+ try:
123
+ self.write(orjson.dumps({"version": misp_modules.get_version()}))
124
+ except ValueError:
125
+ self.send_error(500)
126
+
127
+
128
+ class HealthCheck(tornado.web.RequestHandler):
129
+ """HealthCheck handler."""
130
+
131
+ def get(self):
132
+ LOGGER.debug("Healthcheck request")
122
133
  self.write(b'{"status": true}')
123
134
 
124
135
 
@@ -143,7 +154,7 @@ class ListModules(tornado.web.RequestHandler):
143
154
  )
144
155
 
145
156
  def get(self):
146
- LOGGER.debug("MISP ListModules request")
157
+ LOGGER.debug("ListModules request")
147
158
  if not self.CACHE:
148
159
  self.CACHE = self._build_handlers_data()
149
160
  self.write(self.CACHE)
@@ -159,7 +170,7 @@ class QueryModule(tornado.web.RequestHandler):
159
170
 
160
171
  @tornado_concurrent.run_on_executor
161
172
  def run_request(self, module_name, json_payload, dict_payload):
162
- LOGGER.debug("MISP QueryModule %s request %s", module_name, json_payload)
173
+ LOGGER.debug("QueryModule %s request %s", module_name, json_payload)
163
174
  try:
164
175
  response = MODULES_HANDLERS[module_name].dict_handler(request=dict_payload)
165
176
  except AttributeError:
@@ -211,22 +222,6 @@ def main():
211
222
  # Load libraries as root modules
212
223
  misp_modules.promote_lib_to_root()
213
224
 
214
- # Load helpers
215
- for helper in misp_modules.iterate_helpers(
216
- importlib.resources.files(__package__).joinpath(misp_modules.HELPERS_DIR)
217
- ):
218
- helper_name = os.path.splitext(helper.name)[0]
219
- absolute_helper_name = ".".join([__package__, misp_modules.HELPERS_DIR, helper_name])
220
- try:
221
- imported_helper = importlib.import_module(absolute_helper_name)
222
- if test_error := imported_helper.selftest():
223
- raise ImportError(test_error)
224
- except ImportError as e:
225
- LOGGER.warning("Helper %s failed: %s", helper_name, e)
226
- continue
227
- HELPERS_HANDLERS[helper_name] = imported_helper
228
- LOGGER.info("Helper %s loaded", helper_name)
229
-
230
225
  # Load modules
231
226
  for module_type, module in misp_modules.iterate_modules(
232
227
  importlib.resources.files(__package__).joinpath(misp_modules.MODULES_DIR)
@@ -262,7 +257,8 @@ def main():
262
257
  [
263
258
  (r"/modules", ListModules),
264
259
  (r"/query", QueryModule),
265
- (r"/healthcheck", Healthcheck),
260
+ (r"/healthcheck", HealthCheck),
261
+ (r"/version", VersionCheck),
266
262
  ]
267
263
  ),
268
264
  max_buffer_size=MAX_BUFFER_SIZE,
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "misp-modules"
3
- version = "3.0.0"
3
+ version = "3.0.1"
4
4
  description = "MISP modules are autonomous modules that can be used for expansion and other services in MISP"
5
5
  authors = [
6
6
  {name = "Alexandre Dulaunoy", email = "alexandre.dulaunoy@circl.lu"}
@@ -20,7 +20,6 @@ dependencies = [
20
20
  ## core dependencies
21
21
  "orjson",
22
22
  "psutil",
23
- "redis",
24
23
  "tornado",
25
24
  ## minimum dependencies
26
25
  "beautifulsoup4",
@@ -1,99 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- #
4
- # MISP modules helper - cache
5
- #
6
- # Copyright (C) 2016 Alexandre Dulaunoy
7
- # Copyright (C) 2016 CIRCL - Computer Incident Response Center Luxembourg
8
- #
9
- # This program is free software: you can redistribute it and/or modify
10
- # it under the terms of the GNU Affero General Public License as published by
11
- # the Free Software Foundation, either version 3 of the License, or
12
- # (at your option) any later version.
13
- #
14
- # This program is distributed in the hope that it will be useful,
15
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- # GNU Affero General Public License for more details.
18
- #
19
- # You should have received a copy of the GNU Affero General Public License
20
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
-
22
- import hashlib
23
- import os
24
- import typing
25
-
26
- import redis
27
-
28
- DEFAULT_HOST = "127.0.0.1"
29
- DEFAULT_PORT = 6379
30
- DEFAULT_DATABASE = 0
31
- DEFAULT_TIMEOUT = 5
32
-
33
-
34
- def create_connection(timeout: int = DEFAULT_TIMEOUT, **kwargs) -> redis.Redis:
35
- return redis.Redis(
36
- host=os.getenv("REDIS_BACKEND", DEFAULT_HOST),
37
- password=os.getenv("REDIS_PW"),
38
- port=int(os.getenv("REDIS_PORT", DEFAULT_PORT)),
39
- db=int(os.getenv("REDIS_DATABASE", DEFAULT_DATABASE)),
40
- socket_timeout=timeout,
41
- socket_connect_timeout=timeout,
42
- **kwargs,
43
- )
44
-
45
-
46
- def selftest(enable: bool = True) -> typing.Union[str, None]:
47
- if not enable:
48
- return None
49
- try:
50
- r = create_connection(timeout=3)
51
- r.ping()
52
- except Exception:
53
- return "Redis not running or not installed. Helper will be disabled."
54
- else:
55
- return None
56
-
57
-
58
- def get(modulename=None, query=None, value=None, debug=False):
59
- if modulename is None or query is None:
60
- return False
61
- r = create_connection(decode_responses=True)
62
- h = hashlib.sha1()
63
- h.update(query.encode("UTF-8"))
64
- hv = h.hexdigest()
65
- key = "m:{}:{}".format(modulename, hv)
66
-
67
- if not r.exists(key):
68
- if debug:
69
- print("Key {} added in cache".format(key))
70
- r.setex(key, 86400, value)
71
- else:
72
- if debug:
73
- print("Cache hit with Key {}".format(key))
74
-
75
- return r.get(key)
76
-
77
-
78
- def flush():
79
- r = create_connection(decode_responses=True)
80
- return r.flushdb()
81
-
82
-
83
- if __name__ == "__main__":
84
- import sys
85
-
86
- if selftest() is not None:
87
- sys.exit()
88
- else:
89
- print("Selftest ok")
90
- v = get(modulename="testmodule", query="abcdef", value="barfoo", debug=True)
91
- if v == "barfoo":
92
- print("Cache ok")
93
- v = get(modulename="testmodule", query="abcdef")
94
- print(v)
95
- v = get(modulename="testmodule")
96
- if not v:
97
- print("Failed ok")
98
- if flush():
99
- print("Cache flushed ok")
File without changes
File without changes