active_stix 0.1.21

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 (289) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +28 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/config/active_stix_manifest.js +2 -0
  6. data/app/assets/javascripts/active_stix/application.js +15 -0
  7. data/app/assets/javascripts/active_stix/artifacts.js +2 -0
  8. data/app/assets/javascripts/active_stix/attack_patterns.js +2 -0
  9. data/app/assets/javascripts/active_stix/bcc_refs.js +2 -0
  10. data/app/assets/javascripts/active_stix/bundled_objects.js +2 -0
  11. data/app/assets/javascripts/active_stix/bundles.js +2 -0
  12. data/app/assets/javascripts/active_stix/campaigns.js +2 -0
  13. data/app/assets/javascripts/active_stix/course_of_actions.js +2 -0
  14. data/app/assets/javascripts/active_stix/cyber_observables.js +2 -0
  15. data/app/assets/javascripts/active_stix/email_messages.js +2 -0
  16. data/app/assets/javascripts/active_stix/external_references.js +2 -0
  17. data/app/assets/javascripts/active_stix/files.js +2 -0
  18. data/app/assets/javascripts/active_stix/identities.js +2 -0
  19. data/app/assets/javascripts/active_stix/indicator_labels.js +2 -0
  20. data/app/assets/javascripts/active_stix/indicators.js +2 -0
  21. data/app/assets/javascripts/active_stix/intrusion_sets.js +2 -0
  22. data/app/assets/javascripts/active_stix/kill_chain_phases.js +2 -0
  23. data/app/assets/javascripts/active_stix/kill_chains.js +2 -0
  24. data/app/assets/javascripts/active_stix/malwares.js +2 -0
  25. data/app/assets/javascripts/active_stix/marking_definitions.js +2 -0
  26. data/app/assets/javascripts/active_stix/observed_data.js +2 -0
  27. data/app/assets/javascripts/active_stix/open_vocabularies.js +2 -0
  28. data/app/assets/javascripts/active_stix/phases.js +2 -0
  29. data/app/assets/javascripts/active_stix/recipients.js +2 -0
  30. data/app/assets/javascripts/active_stix/relationships.js +2 -0
  31. data/app/assets/javascripts/active_stix/reports.js +2 -0
  32. data/app/assets/javascripts/active_stix/threat_actors.js +2 -0
  33. data/app/assets/javascripts/active_stix/tools.js +2 -0
  34. data/app/assets/javascripts/active_stix/urls.js +2 -0
  35. data/app/assets/javascripts/active_stix/users.js +2 -0
  36. data/app/assets/stylesheets/active_stix/application.css +15 -0
  37. data/app/assets/stylesheets/active_stix/artifacts.css +4 -0
  38. data/app/assets/stylesheets/active_stix/attack_patterns.css +4 -0
  39. data/app/assets/stylesheets/active_stix/bcc_refs.css +4 -0
  40. data/app/assets/stylesheets/active_stix/bundled_objects.css +4 -0
  41. data/app/assets/stylesheets/active_stix/bundles.css +4 -0
  42. data/app/assets/stylesheets/active_stix/campaigns.css +4 -0
  43. data/app/assets/stylesheets/active_stix/course_of_actions.css +4 -0
  44. data/app/assets/stylesheets/active_stix/cyber_observables.css +4 -0
  45. data/app/assets/stylesheets/active_stix/email_messages.css +4 -0
  46. data/app/assets/stylesheets/active_stix/external_references.css +4 -0
  47. data/app/assets/stylesheets/active_stix/files.css +4 -0
  48. data/app/assets/stylesheets/active_stix/identities.css +4 -0
  49. data/app/assets/stylesheets/active_stix/indicator_labels.css +4 -0
  50. data/app/assets/stylesheets/active_stix/indicators.css +4 -0
  51. data/app/assets/stylesheets/active_stix/intrusion_sets.css +4 -0
  52. data/app/assets/stylesheets/active_stix/kill_chain_phases.css +4 -0
  53. data/app/assets/stylesheets/active_stix/kill_chains.css +4 -0
  54. data/app/assets/stylesheets/active_stix/malwares.css +4 -0
  55. data/app/assets/stylesheets/active_stix/marking_definitions.css +4 -0
  56. data/app/assets/stylesheets/active_stix/observed_data.css +4 -0
  57. data/app/assets/stylesheets/active_stix/open_vocabularies.css +4 -0
  58. data/app/assets/stylesheets/active_stix/phases.css +4 -0
  59. data/app/assets/stylesheets/active_stix/recipients.css +4 -0
  60. data/app/assets/stylesheets/active_stix/relationships.css +4 -0
  61. data/app/assets/stylesheets/active_stix/reports.css +4 -0
  62. data/app/assets/stylesheets/active_stix/threat_actors.css +4 -0
  63. data/app/assets/stylesheets/active_stix/tools.css +4 -0
  64. data/app/assets/stylesheets/active_stix/urls.css +4 -0
  65. data/app/assets/stylesheets/active_stix/users.css +4 -0
  66. data/app/assets/stylesheets/scaffold.css +80 -0
  67. data/app/controllers/active_stix/application_controller.rb +5 -0
  68. data/app/controllers/active_stix/artifacts_controller.rb +62 -0
  69. data/app/controllers/active_stix/attack_patterns_controller.rb +27 -0
  70. data/app/controllers/active_stix/bcc_refs_controller.rb +62 -0
  71. data/app/controllers/active_stix/bundled_objects_controller.rb +62 -0
  72. data/app/controllers/active_stix/bundles_controller.rb +11 -0
  73. data/app/controllers/active_stix/campaigns_controller.rb +74 -0
  74. data/app/controllers/active_stix/course_of_actions_controller.rb +62 -0
  75. data/app/controllers/active_stix/cyber_observables_controller.rb +62 -0
  76. data/app/controllers/active_stix/email_addresses_controller.rb +74 -0
  77. data/app/controllers/active_stix/email_messages_controller.rb +26 -0
  78. data/app/controllers/active_stix/external_references_controller.rb +62 -0
  79. data/app/controllers/active_stix/files_controller.rb +74 -0
  80. data/app/controllers/active_stix/identities_controller.rb +128 -0
  81. data/app/controllers/active_stix/indicator_labels_controller.rb +62 -0
  82. data/app/controllers/active_stix/indicators_controller.rb +62 -0
  83. data/app/controllers/active_stix/intrusion_sets_controller.rb +62 -0
  84. data/app/controllers/active_stix/kill_chain_phases_controller.rb +62 -0
  85. data/app/controllers/active_stix/kill_chains_controller.rb +62 -0
  86. data/app/controllers/active_stix/malwares_controller.rb +62 -0
  87. data/app/controllers/active_stix/marking_definitions_controller.rb +62 -0
  88. data/app/controllers/active_stix/observed_data_controller.rb +62 -0
  89. data/app/controllers/active_stix/open_vocabularies_controller.rb +62 -0
  90. data/app/controllers/active_stix/phases_controller.rb +62 -0
  91. data/app/controllers/active_stix/recipients_controller.rb +62 -0
  92. data/app/controllers/active_stix/relationships_controller.rb +62 -0
  93. data/app/controllers/active_stix/reports_controller.rb +62 -0
  94. data/app/controllers/active_stix/threat_actors_controller.rb +75 -0
  95. data/app/controllers/active_stix/tools_controller.rb +62 -0
  96. data/app/controllers/active_stix/urls_controller.rb +62 -0
  97. data/app/controllers/active_stix/user_accounts_controller.rb +74 -0
  98. data/app/controllers/active_stix/users_controller.rb +62 -0
  99. data/app/helpers/active_stix/application_helper.rb +4 -0
  100. data/app/helpers/active_stix/artifacts_helper.rb +4 -0
  101. data/app/helpers/active_stix/attack_patterns_helper.rb +4 -0
  102. data/app/helpers/active_stix/bcc_refs_helper.rb +4 -0
  103. data/app/helpers/active_stix/bundled_objects_helper.rb +4 -0
  104. data/app/helpers/active_stix/bundles_helper.rb +4 -0
  105. data/app/helpers/active_stix/campaigns_helper.rb +4 -0
  106. data/app/helpers/active_stix/course_of_actions_helper.rb +4 -0
  107. data/app/helpers/active_stix/cyber_observables_helper.rb +4 -0
  108. data/app/helpers/active_stix/email_messages_helper.rb +4 -0
  109. data/app/helpers/active_stix/external_references_helper.rb +4 -0
  110. data/app/helpers/active_stix/files_helper.rb +4 -0
  111. data/app/helpers/active_stix/identities_helper.rb +4 -0
  112. data/app/helpers/active_stix/indicator_labels_helper.rb +4 -0
  113. data/app/helpers/active_stix/indicators_helper.rb +4 -0
  114. data/app/helpers/active_stix/intrusion_sets_helper.rb +4 -0
  115. data/app/helpers/active_stix/kill_chain_phases_helper.rb +4 -0
  116. data/app/helpers/active_stix/kill_chains_helper.rb +4 -0
  117. data/app/helpers/active_stix/malwares_helper.rb +4 -0
  118. data/app/helpers/active_stix/marking_definitions_helper.rb +4 -0
  119. data/app/helpers/active_stix/observed_data_helper.rb +4 -0
  120. data/app/helpers/active_stix/open_vocabularies_helper.rb +4 -0
  121. data/app/helpers/active_stix/phases_helper.rb +4 -0
  122. data/app/helpers/active_stix/recipients_helper.rb +4 -0
  123. data/app/helpers/active_stix/relationships_helper.rb +4 -0
  124. data/app/helpers/active_stix/reports_helper.rb +4 -0
  125. data/app/helpers/active_stix/threat_actors_helper.rb +4 -0
  126. data/app/helpers/active_stix/tools_helper.rb +4 -0
  127. data/app/helpers/active_stix/urls_helper.rb +4 -0
  128. data/app/helpers/active_stix/users_helper.rb +4 -0
  129. data/app/jobs/active_stix/application_job.rb +4 -0
  130. data/app/mailers/active_stix/application_mailer.rb +6 -0
  131. data/app/models/active_stix/application_record.rb +5 -0
  132. data/app/models/active_stix/artifact.rb +23 -0
  133. data/app/models/active_stix/attack_pattern.rb +150 -0
  134. data/app/models/active_stix/bcc_ref.rb +6 -0
  135. data/app/models/active_stix/bundle.rb +108 -0
  136. data/app/models/active_stix/bundled_object.rb +4 -0
  137. data/app/models/active_stix/campaign.rb +65 -0
  138. data/app/models/active_stix/cc_ref.rb +6 -0
  139. data/app/models/active_stix/course_of_action.rb +54 -0
  140. data/app/models/active_stix/cyber_observable.rb +4 -0
  141. data/app/models/active_stix/email_address.rb +27 -0
  142. data/app/models/active_stix/email_message.rb +339 -0
  143. data/app/models/active_stix/external_reference.rb +48 -0
  144. data/app/models/active_stix/file.rb +2 -0
  145. data/app/models/active_stix/identity.rb +141 -0
  146. data/app/models/active_stix/indicator.rb +58 -0
  147. data/app/models/active_stix/indicator_label.rb +4 -0
  148. data/app/models/active_stix/intrusion_set.rb +69 -0
  149. data/app/models/active_stix/kill_chain.rb +7 -0
  150. data/app/models/active_stix/kill_chain_phase.rb +6 -0
  151. data/app/models/active_stix/label.rb +17 -0
  152. data/app/models/active_stix/label_malware.rb +4 -0
  153. data/app/models/active_stix/label_report.rb +4 -0
  154. data/app/models/active_stix/label_tool.rb +4 -0
  155. data/app/models/active_stix/malware.rb +98 -0
  156. data/app/models/active_stix/marking_definition.rb +21 -0
  157. data/app/models/active_stix/markup.rb +6 -0
  158. data/app/models/active_stix/object_marking.rb +11 -0
  159. data/app/models/active_stix/observed_datum.rb +67 -0
  160. data/app/models/active_stix/open_vocabulary.rb +8 -0
  161. data/app/models/active_stix/phase.rb +41 -0
  162. data/app/models/active_stix/recipient.rb +4 -0
  163. data/app/models/active_stix/reference_item.rb +4 -0
  164. data/app/models/active_stix/relationship.rb +95 -0
  165. data/app/models/active_stix/report.rb +93 -0
  166. data/app/models/active_stix/report_object.rb +9 -0
  167. data/app/models/active_stix/threat_actor.rb +139 -0
  168. data/app/models/active_stix/to_ref.rb +6 -0
  169. data/app/models/active_stix/tool.rb +112 -0
  170. data/app/models/active_stix/url.rb +15 -0
  171. data/app/models/active_stix/user.rb +4 -0
  172. data/app/models/active_stix/user_account.rb +3 -0
  173. data/app/views/active_stix/artifacts/_form.html.erb +57 -0
  174. data/app/views/active_stix/artifacts/edit.html.erb +6 -0
  175. data/app/views/active_stix/artifacts/index.html.erb +41 -0
  176. data/app/views/active_stix/artifacts/new.html.erb +5 -0
  177. data/app/views/active_stix/artifacts/show.html.erb +44 -0
  178. data/app/views/active_stix/attack_patterns/_form.html.erb +37 -0
  179. data/app/views/active_stix/attack_patterns/edit.html.erb +2 -0
  180. data/app/views/active_stix/attack_patterns/index.html.erb +2 -0
  181. data/app/views/active_stix/attack_patterns/new.html.erb +2 -0
  182. data/app/views/active_stix/attack_patterns/show.html.erb +140 -0
  183. data/app/views/active_stix/bcc_refs/_form.html.erb +27 -0
  184. data/app/views/active_stix/bcc_refs/edit.html.erb +6 -0
  185. data/app/views/active_stix/bcc_refs/index.html.erb +29 -0
  186. data/app/views/active_stix/bcc_refs/new.html.erb +5 -0
  187. data/app/views/active_stix/bcc_refs/show.html.erb +14 -0
  188. data/app/views/active_stix/bundles/index.html.erb +1 -0
  189. data/app/views/active_stix/bundles/show.html.erb +7 -0
  190. data/app/views/active_stix/campaigns/_form.html.erb +42 -0
  191. data/app/views/active_stix/campaigns/_stix_campaign.json.jbuilder +2 -0
  192. data/app/views/active_stix/campaigns/edit.html.erb +6 -0
  193. data/app/views/active_stix/campaigns/index.html.erb +35 -0
  194. data/app/views/active_stix/campaigns/index.json.jbuilder +1 -0
  195. data/app/views/active_stix/campaigns/new.html.erb +5 -0
  196. data/app/views/active_stix/campaigns/show.html.erb +29 -0
  197. data/app/views/active_stix/campaigns/show.json.jbuilder +1 -0
  198. data/app/views/active_stix/email_messages/_form.html.erb +62 -0
  199. data/app/views/active_stix/email_messages/_stix_email_message.json.jbuilder +2 -0
  200. data/app/views/active_stix/email_messages/edit.html.erb +6 -0
  201. data/app/views/active_stix/email_messages/index.html.erb +43 -0
  202. data/app/views/active_stix/email_messages/index.json.jbuilder +1 -0
  203. data/app/views/active_stix/email_messages/new.html.erb +5 -0
  204. data/app/views/active_stix/email_messages/show.html.erb +165 -0
  205. data/app/views/active_stix/email_messages/show.json.jbuilder +1 -0
  206. data/app/views/active_stix/files/_form.html.erb +92 -0
  207. data/app/views/active_stix/files/_stix_file.json.jbuilder +2 -0
  208. data/app/views/active_stix/files/edit.html.erb +6 -0
  209. data/app/views/active_stix/files/index.html.erb +55 -0
  210. data/app/views/active_stix/files/index.json.jbuilder +1 -0
  211. data/app/views/active_stix/files/new.html.erb +5 -0
  212. data/app/views/active_stix/files/show.html.erb +79 -0
  213. data/app/views/active_stix/files/show.json.jbuilder +1 -0
  214. data/app/views/active_stix/identities/_form.html.erb +27 -0
  215. data/app/views/active_stix/identities/_individual.html.erb +100 -0
  216. data/app/views/active_stix/identities/_organization.html.erb +72 -0
  217. data/app/views/active_stix/identities/_received_email_messages.html.erb +27 -0
  218. data/app/views/active_stix/identities/_sent_email_messages.html.erb +27 -0
  219. data/app/views/active_stix/identities/_threat_icons.html.erb +3 -0
  220. data/app/views/active_stix/identities/edit.html.erb +2 -0
  221. data/app/views/active_stix/identities/index.html.erb +37 -0
  222. data/app/views/active_stix/identities/new.html.erb +5 -0
  223. data/app/views/active_stix/identities/show.html.erb +15 -0
  224. data/app/views/active_stix/layouts/active_stix/application.html.erb +16 -0
  225. data/app/views/active_stix/recipients/_form.html.erb +27 -0
  226. data/app/views/active_stix/recipients/edit.html.erb +6 -0
  227. data/app/views/active_stix/recipients/index.html.erb +29 -0
  228. data/app/views/active_stix/recipients/new.html.erb +5 -0
  229. data/app/views/active_stix/recipients/show.html.erb +14 -0
  230. data/app/views/active_stix/threat_actors/_form.html.erb +32 -0
  231. data/app/views/active_stix/threat_actors/_stix_threat_actor.json.jbuilder +2 -0
  232. data/app/views/active_stix/threat_actors/edit.html.erb +6 -0
  233. data/app/views/active_stix/threat_actors/flags.html.erb +184 -0
  234. data/app/views/active_stix/threat_actors/index.html.erb +26 -0
  235. data/app/views/active_stix/threat_actors/index.json.jbuilder +1 -0
  236. data/app/views/active_stix/threat_actors/new.html.erb +5 -0
  237. data/app/views/active_stix/threat_actors/show.html.erb +4 -0
  238. data/app/views/active_stix/threat_actors/show.json.jbuilder +1 -0
  239. data/app/views/layouts/active_stix/application.html.erb +16 -0
  240. data/config/routes.rb +39 -0
  241. data/db/migrate/20191204200025_create_active_stix_bundled_objects.rb +11 -0
  242. data/db/migrate/20191204213707_create_active_stix_bundles.rb +10 -0
  243. data/db/migrate/20191204213802_create_active_stix_campaigns.rb +15 -0
  244. data/db/migrate/20191204213926_create_active_stix_course_of_actions.rb +12 -0
  245. data/db/migrate/20191204214020_create_active_stix_cyber_observables.rb +11 -0
  246. data/db/migrate/20191204214955_create_active_stix_email_messages.rb +20 -0
  247. data/db/migrate/20191204215029_create_active_stix_external_references.rb +12 -0
  248. data/db/migrate/20191204215302_create_active_stix_files.rb +23 -0
  249. data/db/migrate/20191204215419_create_active_stix_identities.rb +13 -0
  250. data/db/migrate/20191204215542_create_active_stix_indicator_labels.rb +10 -0
  251. data/db/migrate/20191204215637_create_active_stix_indicators.rb +16 -0
  252. data/db/migrate/20191204215849_create_active_stix_intrusion_sets.rb +15 -0
  253. data/db/migrate/20191204215929_create_active_stix_kill_chain_phases.rb +10 -0
  254. data/db/migrate/20191204215951_create_active_stix_kill_chains.rb +9 -0
  255. data/db/migrate/20191204220149_create_active_stix_malwares.rb +12 -0
  256. data/db/migrate/20191204220539_create_active_stix_marking_definitions.rb +12 -0
  257. data/db/migrate/20191204220853_create_active_stix_observed_data.rb +12 -0
  258. data/db/migrate/20191204220917_create_active_stix_open_vocabularies.rb +9 -0
  259. data/db/migrate/20191204220952_create_active_stix_phases.rb +11 -0
  260. data/db/migrate/20191204221129_create_active_stix_recipients.rb +10 -0
  261. data/db/migrate/20191204221227_create_active_stix_relationships.rb +16 -0
  262. data/db/migrate/20191204221323_create_active_stix_report_objects.rb +11 -0
  263. data/db/migrate/20191204221359_create_active_stix_reports.rb +14 -0
  264. data/db/migrate/20191204221425_create_active_stix_threat_actors.rb +11 -0
  265. data/db/migrate/20191204221454_create_active_stix_tools.rb +12 -0
  266. data/db/migrate/20191204221639_create_active_stix_urls.rb +9 -0
  267. data/db/migrate/20191204221849_create_active_stix_users.rb +22 -0
  268. data/db/migrate/20191205182234_create_active_stix_bcc_refs.rb +10 -0
  269. data/db/migrate/20191205182255_create_active_stix_cc_refs.rb +10 -0
  270. data/db/migrate/20191205182316_create_active_stix_to_refs.rb +10 -0
  271. data/db/migrate/20191212203611_add_spec_version_to_bundles.rb +5 -0
  272. data/db/migrate/20191212215136_create_active_stix_attack_patterns.rb +12 -0
  273. data/db/migrate/20191212220222_create_active_stix_reference_items.rb +11 -0
  274. data/db/migrate/20191213135204_create_active_stix_labels.rb +10 -0
  275. data/db/migrate/20191213140951_create_active_stix_markups.rb +11 -0
  276. data/db/migrate/20191221210537_fix_observed_data.rb +6 -0
  277. data/db/migrate/20191221223602_create_active_stix_artifacts.rb +16 -0
  278. data/db/migrate/20191223075550_change_artifact_ref_to_string.rb +5 -0
  279. data/db/migrate/20191223154000_add_stix_id_to_email_messages.rb +5 -0
  280. data/db/migrate/20200114162245_add_labels_to_active_stix_identities.rb +5 -0
  281. data/db/migrate/20200404223006_add_aliases_to_tools.rb +5 -0
  282. data/db/migrate/20200404223047_add_aliases_to_attack_patterns.rb +5 -0
  283. data/db/migrate/20200404223158_add_aliases_to_malwares.rb +5 -0
  284. data/db/migrate/20200404223210_add_aliases_to_threat_actors.rb +5 -0
  285. data/lib/active_stix.rb +8 -0
  286. data/lib/active_stix/engine.rb +13 -0
  287. data/lib/active_stix/version.rb +3 -0
  288. data/lib/tasks/active_stix_tasks.rake +4 -0
  289. metadata +358 -0
@@ -0,0 +1,5 @@
1
+ module ActiveStix
2
+ class ApplicationController < ActionController::Base
3
+ protect_from_forgery with: :exception
4
+ end
5
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "active_stix/application_controller"
2
+
3
+ module ActiveStix
4
+ class ArtifactsController < ApplicationController
5
+ before_action :set_artifact, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /artifacts
8
+ def index
9
+ @artifacts = Artifact.all
10
+ end
11
+
12
+ # GET /artifacts/1
13
+ def show
14
+ end
15
+
16
+ # GET /artifacts/new
17
+ def new
18
+ @artifact = Artifact.new
19
+ end
20
+
21
+ # GET /artifacts/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /artifacts
26
+ def create
27
+ @artifact = Artifact.new(artifact_params)
28
+
29
+ if @artifact.save
30
+ redirect_to @artifact, notice: 'Artifact was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /artifacts/1
37
+ def update
38
+ if @artifact.update(artifact_params)
39
+ redirect_to @artifact, notice: 'Artifact was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /artifacts/1
46
+ def destroy
47
+ @artifact.destroy
48
+ redirect_to artifacts_url, notice: 'Artifact was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_artifact
54
+ @artifact = Artifact.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def artifact_params
59
+ params.require(:artifact).permit(:stix_id, :type, :mime_type, :payload_bin, :url, :hashes, :encryption_algorithm, :decryption_key)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,27 @@
1
+ class ActiveStix::AttackPatternsController < ApplicationController
2
+ before_action :set_attack_pattern, only: [:show, :edit, :update, :destroy, :data]
3
+ def index
4
+ end
5
+
6
+ def edit
7
+ end
8
+
9
+ def new
10
+ end
11
+
12
+ def show
13
+ #@attack_pattern = ActiveStix::AttackPattern.find(params[:id])
14
+ end
15
+
16
+ private
17
+ # Use callbacks to share common setup or constraints between actions.
18
+ def set_attack_pattern
19
+ @attack_pattern = ActiveStix::AttackPattern.find(params[:id])
20
+ end
21
+
22
+ # Never trust parameters from the scary internet, only allow the white list through.
23
+ def attack_pattern_params
24
+ params.require(:attack_matrix).permit(:id)
25
+ end
26
+
27
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "active_stix/application_controller"
2
+
3
+ module ActiveStix
4
+ class BccRefsController < ApplicationController
5
+ before_action :set_bcc_ref, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /bcc_refs
8
+ def index
9
+ @bcc_refs = BccRef.all
10
+ end
11
+
12
+ # GET /bcc_refs/1
13
+ def show
14
+ end
15
+
16
+ # GET /bcc_refs/new
17
+ def new
18
+ @bcc_ref = BccRef.new
19
+ end
20
+
21
+ # GET /bcc_refs/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /bcc_refs
26
+ def create
27
+ @bcc_ref = BccRef.new(bcc_ref_params)
28
+
29
+ if @bcc_ref.save
30
+ redirect_to @bcc_ref, notice: 'Bcc ref was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /bcc_refs/1
37
+ def update
38
+ if @bcc_ref.update(bcc_ref_params)
39
+ redirect_to @bcc_ref, notice: 'Bcc ref was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /bcc_refs/1
46
+ def destroy
47
+ @bcc_ref.destroy
48
+ redirect_to bcc_refs_url, notice: 'Bcc ref was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_bcc_ref
54
+ @bcc_ref = BccRef.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def bcc_ref_params
59
+ params.require(:bcc_ref).permit(:email_message_id, :email_address_id)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "active_stix/application_controller"
2
+
3
+ module ActiveStix
4
+ class BundledObjectsController < ApplicationController
5
+ before_action :set_bundled_object, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /bundled_objects
8
+ def index
9
+ @bundled_objects = BundledObject.all
10
+ end
11
+
12
+ # GET /bundled_objects/1
13
+ def show
14
+ end
15
+
16
+ # GET /bundled_objects/new
17
+ def new
18
+ @bundled_object = BundledObject.new
19
+ end
20
+
21
+ # GET /bundled_objects/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /bundled_objects
26
+ def create
27
+ @bundled_object = BundledObject.new(bundled_object_params)
28
+
29
+ if @bundled_object.save
30
+ redirect_to @bundled_object, notice: 'Bundled object was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /bundled_objects/1
37
+ def update
38
+ if @bundled_object.update(bundled_object_params)
39
+ redirect_to @bundled_object, notice: 'Bundled object was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /bundled_objects/1
46
+ def destroy
47
+ @bundled_object.destroy
48
+ redirect_to bundled_objects_url, notice: 'Bundled object was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_bundled_object
54
+ @bundled_object = BundledObject.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def bundled_object_params
59
+ params.require(:bundled_object).permit(:bundle_ref, :object_ref, :object_type)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,11 @@
1
+ class ActiveStix::BundlesController < ApplicationController
2
+ # GET /stix/bundle
3
+ # GET /stix/bundle.json
4
+ def index
5
+ end
6
+
7
+ def show
8
+ bundle = ActiveStix::Bundle.find(params[:id])
9
+ @bundle = JSON.parse(File.open("tmp/#{bundle.stix_id}.json", "r+").read)
10
+ end
11
+ end
@@ -0,0 +1,74 @@
1
+ class ActiveStix::CampaignsController < ApplicationController
2
+ before_action :set_stix_campaign, only: [:show, :edit, :update, :destroy]
3
+
4
+ # GET /stix/campaigns
5
+ # GET /stix/campaigns.json
6
+ def index
7
+ @campaigns = ActiveStix::Campaign.all
8
+ end
9
+
10
+ # GET /stix/campaigns/1
11
+ # GET /stix/campaigns/1.json
12
+ def show
13
+ end
14
+
15
+ # GET /stix/campaigns/new
16
+ def new
17
+ @campaign = ActiveStix::Campaign.new
18
+ end
19
+
20
+ # GET /stix/campaigns/1/edit
21
+ def edit
22
+ end
23
+
24
+ # POST /stix/campaigns
25
+ # POST /stix/campaigns.json
26
+ def create
27
+ @campaign = ActiveStix::Campaign.new(stix_campaign_params)
28
+
29
+ respond_to do |format|
30
+ if @campaign.save
31
+ format.html { redirect_to @campaign, notice: 'Campaign was successfully created.' }
32
+ format.json { render :show, status: :created, location: @campaign }
33
+ else
34
+ format.html { render :new }
35
+ format.json { render json: @campaign.errors, status: :unprocessable_entity }
36
+ end
37
+ end
38
+ end
39
+
40
+ # PATCH/PUT /stix/campaigns/1
41
+ # PATCH/PUT /stix/campaigns/1.json
42
+ def update
43
+ respond_to do |format|
44
+ if @campaign.update(stix_campaign_params)
45
+ format.html { redirect_to @campaign, notice: 'Campaign was successfully updated.' }
46
+ format.json { render :show, status: :ok, location: @campaign }
47
+ else
48
+ format.html { render :edit }
49
+ format.json { render json: @campaign.errors, status: :unprocessable_entity }
50
+ end
51
+ end
52
+ end
53
+
54
+ # DELETE /stix/campaigns/1
55
+ # DELETE /stix/campaigns/1.json
56
+ def destroy
57
+ @campaign.destroy
58
+ respond_to do |format|
59
+ format.html { redirect_to stix_campaigns_url, notice: 'Campaign was successfully destroyed.' }
60
+ format.json { head :no_content }
61
+ end
62
+ end
63
+
64
+ private
65
+ # Use callbacks to share common setup or constraints between actions.
66
+ def set_stix_campaign
67
+ @campaign = ActiveStix::Campaign.find(params[:id])
68
+ end
69
+
70
+ # Never trust parameters from the scary internet, only allow the white list through.
71
+ def stix_campaign_params
72
+ params.require(:campaign).permit(:name, :description, :first_seen, :last_seen, :objective)
73
+ end
74
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "active_stix/application_controller"
2
+
3
+ module ActiveStix
4
+ class CourseOfActionsController < ApplicationController
5
+ before_action :set_course_of_action, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /course_of_actions
8
+ def index
9
+ @course_of_actions = CourseOfAction.all
10
+ end
11
+
12
+ # GET /course_of_actions/1
13
+ def show
14
+ end
15
+
16
+ # GET /course_of_actions/new
17
+ def new
18
+ @course_of_action = CourseOfAction.new
19
+ end
20
+
21
+ # GET /course_of_actions/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /course_of_actions
26
+ def create
27
+ @course_of_action = CourseOfAction.new(course_of_action_params)
28
+
29
+ if @course_of_action.save
30
+ redirect_to @course_of_action, notice: 'Course of action was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /course_of_actions/1
37
+ def update
38
+ if @course_of_action.update(course_of_action_params)
39
+ redirect_to @course_of_action, notice: 'Course of action was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /course_of_actions/1
46
+ def destroy
47
+ @course_of_action.destroy
48
+ redirect_to course_of_actions_url, notice: 'Course of action was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_course_of_action
54
+ @course_of_action = CourseOfAction.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def course_of_action_params
59
+ params.require(:course_of_action).permit(:active_stix_id, :name, :description, :x_mitre_version)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require_dependency "active_stix/application_controller"
2
+
3
+ module ActiveStix
4
+ class CyberObservablesController < ApplicationController
5
+ before_action :set_cyber_observable, only: [:show, :edit, :update, :destroy]
6
+
7
+ # GET /cyber_observables
8
+ def index
9
+ @cyber_observables = CyberObservable.all
10
+ end
11
+
12
+ # GET /cyber_observables/1
13
+ def show
14
+ end
15
+
16
+ # GET /cyber_observables/new
17
+ def new
18
+ @cyber_observable = CyberObservable.new
19
+ end
20
+
21
+ # GET /cyber_observables/1/edit
22
+ def edit
23
+ end
24
+
25
+ # POST /cyber_observables
26
+ def create
27
+ @cyber_observable = CyberObservable.new(cyber_observable_params)
28
+
29
+ if @cyber_observable.save
30
+ redirect_to @cyber_observable, notice: 'Cyber observable was successfully created.'
31
+ else
32
+ render :new
33
+ end
34
+ end
35
+
36
+ # PATCH/PUT /cyber_observables/1
37
+ def update
38
+ if @cyber_observable.update(cyber_observable_params)
39
+ redirect_to @cyber_observable, notice: 'Cyber observable was successfully updated.'
40
+ else
41
+ render :edit
42
+ end
43
+ end
44
+
45
+ # DELETE /cyber_observables/1
46
+ def destroy
47
+ @cyber_observable.destroy
48
+ redirect_to cyber_observables_url, notice: 'Cyber observable was successfully destroyed.'
49
+ end
50
+
51
+ private
52
+ # Use callbacks to share common setup or constraints between actions.
53
+ def set_cyber_observable
54
+ @cyber_observable = CyberObservable.find(params[:id])
55
+ end
56
+
57
+ # Only allow a trusted parameter "white list" through.
58
+ def cyber_observable_params
59
+ params.require(:cyber_observable).permit(:observed_datum_ref, :observable_object_id, :cyber_observable_object_type)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,74 @@
1
+ class ActiveStix::EmailAddressesController < ApplicationController
2
+ before_action :set_stix_email_address, only: [:show, :edit, :update, :destroy]
3
+
4
+ # GET /stix/email_addresses
5
+ # GET /stix/email_addresses.json
6
+ def index
7
+ @email_addresses = ActiveStix::EmailAddress.all
8
+ end
9
+
10
+ # GET /stix/email_addresses/1
11
+ # GET /stix/email_addresses/1.json
12
+ def show
13
+ end
14
+
15
+ # GET /stix/email_addresses/new
16
+ def new
17
+ @email_address = ActiveStix::EmailAddress.new
18
+ end
19
+
20
+ # GET /stix/email_addresses/1/edit
21
+ def edit
22
+ end
23
+
24
+ # POST /stix/email_addresses
25
+ # POST /stix/email_addresses.json
26
+ def create
27
+ @email_address = ActiveStix::EmailAddress.new(stix_email_address_params)
28
+
29
+ respond_to do |format|
30
+ if @email_address.save
31
+ format.html { redirect_to @email_address, notice: 'Email address was successfully created.' }
32
+ format.json { render :show, status: :created, location: @email_address }
33
+ else
34
+ format.html { render :new }
35
+ format.json { render json: @email_address.errors, status: :unprocessable_entity }
36
+ end
37
+ end
38
+ end
39
+
40
+ # PATCH/PUT /stix/email_addresses/1
41
+ # PATCH/PUT /stix/email_addresses/1.json
42
+ def update
43
+ respond_to do |format|
44
+ if @email_address.update(stix_email_address_params)
45
+ format.html { redirect_to @email_address, notice: 'Email address was successfully updated.' }
46
+ format.json { render :show, status: :ok, location: @email_address }
47
+ else
48
+ format.html { render :edit }
49
+ format.json { render json: @email_address.errors, status: :unprocessable_entity }
50
+ end
51
+ end
52
+ end
53
+
54
+ # DELETE /stix/email_addresses/1
55
+ # DELETE /stix/email_addresses/1.json
56
+ def destroy
57
+ @email_address.destroy
58
+ respond_to do |format|
59
+ format.html { redirect_to stix_email_addresses_url, notice: 'Email address was successfully destroyed.' }
60
+ format.json { head :no_content }
61
+ end
62
+ end
63
+
64
+ private
65
+ # Use callbacks to share common setup or constraints between actions.
66
+ def set_stix_email_address
67
+ @email_address = ActiveStix::EmailAddress.find(params[:id])
68
+ end
69
+
70
+ # Never trust parameters from the scary internet, only allow the white list through.
71
+ def stix_email_address_params
72
+ params.require(:email_address).permit(:value, :display_name, :belongs_to_ref)
73
+ end
74
+ end