Specifications used in the MISP project including MISP core format
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

3081 lines
92 KiB

  1. Network Working Group A. Dulaunoy
  2. Internet-Draft A. Iklody
  3. Intended status: Informational CIRCL
  4. Expires: April 24, 2021 October 21, 2020
  5. MISP core format
  6. draft-dulaunoy-misp-core-format
  7. Abstract
  8. This document describes the MISP core format used to exchange
  9. indicators and threat information between MISP (Open Source Threat
  10. Intelligence Sharing Platform formerly known as Malware Information
  11. Sharing Platform) instances. The JSON format includes the overall
  12. structure along with the semantic associated for each respective key.
  13. The format is described to support other implementations which reuse
  14. the format and ensuring an interoperability with existing MISP
  15. [MISP-P] software and other Threat Intelligence Platforms.
  16. Status of This Memo
  17. This Internet-Draft is submitted in full conformance with the
  18. provisions of BCP 78 and BCP 79.
  19. Internet-Drafts are working documents of the Internet Engineering
  20. Task Force (IETF). Note that other groups may also distribute
  21. working documents as Internet-Drafts. The list of current Internet-
  22. Drafts is at https://datatracker.ietf.org/drafts/current/.
  23. Internet-Drafts are draft documents valid for a maximum of six months
  24. and may be updated, replaced, or obsoleted by other documents at any
  25. time. It is inappropriate to use Internet-Drafts as reference
  26. material or to cite them other than as "work in progress."
  27. This Internet-Draft will expire on April 24, 2021.
  28. Copyright Notice
  29. Copyright (c) 2020 IETF Trust and the persons identified as the
  30. document authors. All rights reserved.
  31. This document is subject to BCP 78 and the IETF Trust's Legal
  32. Provisions Relating to IETF Documents
  33. (https://trustee.ietf.org/license-info) in effect on the date of
  34. publication of this document. Please review these documents
  35. carefully, as they describe your rights and restrictions with respect
  36. to this document. Code Components extracted from this document must
  37. Dulaunoy & Iklody Expires April 24, 2021 [Page 1]
  38. Internet-Draft MISP core format October 2020
  39. include Simplified BSD License text as described in Section 4.e of
  40. the Trust Legal Provisions and are provided without warranty as
  41. described in the Simplified BSD License.
  42. Table of Contents
  43. 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
  44. 1.1. Conventions and Terminology . . . . . . . . . . . . . . . 3
  45. 2. Format . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  46. 2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3
  47. 2.2. Event . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  48. 2.2.1. Event Attributes . . . . . . . . . . . . . . . . . . 4
  49. 2.3. Objects . . . . . . . . . . . . . . . . . . . . . . . . . 7
  50. 2.3.1. Org . . . . . . . . . . . . . . . . . . . . . . . . . 7
  51. 2.3.2. Orgc . . . . . . . . . . . . . . . . . . . . . . . . 8
  52. 2.4. Attribute . . . . . . . . . . . . . . . . . . . . . . . . 8
  53. 2.4.1. Sample Attribute Object . . . . . . . . . . . . . . . 9
  54. 2.4.2. Attribute Attributes . . . . . . . . . . . . . . . . 9
  55. 2.5. ShadowAttribute . . . . . . . . . . . . . . . . . . . . . 16
  56. 2.5.1. Sample Attribute Object . . . . . . . . . . . . . . . 16
  57. 2.5.2. ShadowAttribute Attributes . . . . . . . . . . . . . 16
  58. 2.5.3. Org . . . . . . . . . . . . . . . . . . . . . . . . . 22
  59. 2.6. Object . . . . . . . . . . . . . . . . . . . . . . . . . 23
  60. 2.6.1. Sample Object . . . . . . . . . . . . . . . . . . . . 23
  61. 2.6.2. Object Attributes . . . . . . . . . . . . . . . . . . 24
  62. 2.7. Object References . . . . . . . . . . . . . . . . . . . . 28
  63. 2.7.1. Sample ObjectReference object . . . . . . . . . . . . 28
  64. 2.7.2. ObjectReference Attributes . . . . . . . . . . . . . 28
  65. 2.8. EventReport . . . . . . . . . . . . . . . . . . . . . . . 30
  66. 2.8.1. id . . . . . . . . . . . . . . . . . . . . . . . . . 31
  67. 2.8.2. UUID . . . . . . . . . . . . . . . . . . . . . . . . 31
  68. 2.8.3. event_id . . . . . . . . . . . . . . . . . . . . . . 31
  69. 2.8.4. name . . . . . . . . . . . . . . . . . . . . . . . . 31
  70. 2.8.5. content . . . . . . . . . . . . . . . . . . . . . . . 31
  71. 2.8.6. distribution . . . . . . . . . . . . . . . . . . . . 32
  72. 2.8.7. sharing_group_id . . . . . . . . . . . . . . . . . . 32
  73. 2.8.8. timestamp . . . . . . . . . . . . . . . . . . . . . . 32
  74. 2.8.9. deleted . . . . . . . . . . . . . . . . . . . . . . . 33
  75. 2.9. Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
  76. 2.9.1. Sample Tag . . . . . . . . . . . . . . . . . . . . . 33
  77. 2.10. Sighting . . . . . . . . . . . . . . . . . . . . . . . . 33
  78. 2.10.1. Sample Sighting . . . . . . . . . . . . . . . . . . 34
  79. 2.11. Galaxy . . . . . . . . . . . . . . . . . . . . . . . . . 35
  80. 2.11.1. Sample Galaxy . . . . . . . . . . . . . . . . . . . 35
  81. 3. JSON Schema . . . . . . . . . . . . . . . . . . . . . . . . . 37
  82. 4. Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . 51
  83. 4.1. Format . . . . . . . . . . . . . . . . . . . . . . . . . 51
  84. 4.1.1. Sample Manifest . . . . . . . . . . . . . . . . . . . 52
  85. Dulaunoy & Iklody Expires April 24, 2021 [Page 2]
  86. Internet-Draft MISP core format October 2020
  87. 5. Implementation . . . . . . . . . . . . . . . . . . . . . . . 53
  88. 6. Security Considerations . . . . . . . . . . . . . . . . . . . 53
  89. 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 53
  90. 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 53
  91. 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 53
  92. 9.1. Normative References . . . . . . . . . . . . . . . . . . 54
  93. 9.2. Informative References . . . . . . . . . . . . . . . . . 54
  94. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 54
  95. 1. Introduction
  96. Sharing threat information became a fundamental requirements in the
  97. Internet, security and intelligence community at large. Threat
  98. information can include indicators of compromise, malicious file
  99. indicators, financial fraud indicators or even detailed information
  100. about a threat actor. MISP [MISP-P] started as an open source
  101. project in late 2011 and the MISP format started to be widely used as
  102. an exchange format within the community in the past years. The aim
  103. of this document is to describe the specification and the MISP core
  104. format.
  105. 1.1. Conventions and Terminology
  106. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  107. "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
  108. document are to be interpreted as described in RFC 2119 [RFC2119].
  109. 2. Format
  110. 2.1. Overview
  111. The MISP core format is in the JSON [RFC8259] format. In MISP, an
  112. event is composed of a single JSON object.
  113. A capitalized key (like Event, Org) represent a data model and a non-
  114. capitalised key is just an attribute. This nomenclature can support
  115. an implementation to represent the MISP format in another data
  116. structure.
  117. 2.2. Event
  118. An event is a simple meta structure scheme where attributes and meta-
  119. data are embedded to compose a coherent set of indicators. An event
  120. can be composed from an incident, a security analysis report or a
  121. specific threat actor analysis. The meaning of an event only depends
  122. of the information embedded in the event.
  123. Dulaunoy & Iklody Expires April 24, 2021 [Page 3]
  124. Internet-Draft MISP core format October 2020
  125. 2.2.1. Event Attributes
  126. 2.2.1.1. uuid
  127. uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of
  128. the event. The uuid MUST be preserved for any updates or transfer of
  129. the same event. UUID version 4 is RECOMMENDED when assigning it to a
  130. new event.
  131. uuid is represented as a JSON string. uuid MUST be present.
  132. 2.2.1.2. id
  133. id represents the human-readable identifier associated to the event
  134. for a specific MISP instance. A human-readable identifier MUST be
  135. represented as an unsigned integer.
  136. id is represented as a JSON string. id SHALL be present.
  137. 2.2.1.3. published
  138. published represents the event publication state. If the event was
  139. published, the published value MUST be true. In any other
  140. publication state, the published value MUST be false.
  141. published is represented as a JSON boolean. published MUST be
  142. present.
  143. 2.2.1.4. info
  144. info represents the information field of the event. info is a free-
  145. text value to provide a human-readable summary of the event. info
  146. SHOULD NOT be bigger than 256 characters and SHOULD NOT include new-
  147. lines.
  148. info is represented as a JSON string. info MUST be present.
  149. 2.2.1.5. threat_level_id
  150. threat_level_id represents the threat level.
  151. 4:
  152. Undefined
  153. 3:
  154. Low
  155. 2:
  156. Dulaunoy & Iklody Expires April 24, 2021 [Page 4]
  157. Internet-Draft MISP core format October 2020
  158. Medium
  159. 1:
  160. High
  161. If a higher granularity is required, a MISP taxonomy applied as a Tag
  162. SHOULD be preferred.
  163. threat_level_id is represented as a JSON string. threat_level_id
  164. SHALL be present.
  165. 2.2.1.6. analysis
  166. analysis represents the analysis level.
  167. 0:
  168. Initial
  169. 1:
  170. Ongoing
  171. 2:
  172. Complete
  173. If a higher granularity is required, a MISP taxonomy applied as a Tag
  174. SHOULD be preferred.
  175. analysis is represented as a JSON string. analysis SHALL be present.
  176. 2.2.1.7. date
  177. date represents a reference date to the event in ISO 8601 format
  178. (date only: YYYY-MM-DD). This date corresponds to the date the event
  179. occurred, which may be in the past.
  180. date is represented as a JSON string. date MUST be present.
  181. 2.2.1.8. timestamp
  182. timestamp represents a reference time when the event, or one of the
  183. attributes within the event was created, or last updated/edited on
  184. the instance. timestamp is expressed in seconds (decimal) since 1st
  185. of January 1970 (Unix timestamp). The time zone MUST be UTC.
  186. timestamp is represented as a JSON string. timestamp MUST be present.
  187. Dulaunoy & Iklody Expires April 24, 2021 [Page 5]
  188. Internet-Draft MISP core format October 2020
  189. 2.2.1.9. publish_timestamp
  190. publish_timestamp represents a reference time when the event was
  191. published on the instance. published_timestamp is expressed in
  192. seconds (decimal) since 1st of January 1970 (Unix timestamp). At
  193. each publication of an event, publish_timestamp MUST be updated. The
  194. time zone MUST be UTC. If the published_timestamp is present and the
  195. published flag is set to false, the publish_timestamp represents the
  196. previous publication timestamp. If the event was never published,
  197. the published_timestamp MUST be set to 0.
  198. publish_timestamp is represented as a JSON string. publish_timestamp
  199. MUST be present.
  200. 2.2.1.10. org_id
  201. org_id represents a human-readable identifier referencing an Org
  202. object of the organisation which generated the event. A human-
  203. readable identifier MUST be represented as an unsigned integer.
  204. The org_id MUST be updated when the event is generated by a new
  205. instance.
  206. org_id is represented as a JSON string. org_id MUST be present.
  207. 2.2.1.11. orgc_id
  208. orgc_id represents a human-readable identifier referencing an Orgc
  209. object of the organisation which created the event.
  210. The orgc_id and Org object MUST be preserved for any updates or
  211. transfer of the same event.
  212. orgc_id is represented as a JSON string. orgc_id MUST be present.
  213. 2.2.1.12. attribute_count
  214. attribute_count represents the number of attributes in the event.
  215. attribute_count is expressed in decimal.
  216. attribute_count is represented as a JSON string. attribute_count
  217. SHALL be present.
  218. 2.2.1.13. distribution
  219. distribution represents the basic distribution rules of the event.
  220. The system must adhere to the distribution setting for access control
  221. and for dissemination of the event.
  222. Dulaunoy & Iklody Expires April 24, 2021 [Page 6]
  223. Internet-Draft MISP core format October 2020
  224. distribution is represented by a JSON string. distribution MUST be
  225. present and be one of the following options:
  226. 0
  227. Your Organisation Only
  228. 1
  229. This Community Only
  230. 2
  231. Connected Communities
  232. 3
  233. All Communities
  234. 4
  235. Sharing Group
  236. 2.2.1.14. sharing_group_id
  237. sharing_group_id represents a human-readable identifier referencing a
  238. Sharing Group object that defines the distribution of the event, if
  239. distribution level "4" is set. A human-readable identifier MUST be
  240. represented as an unsigned integer.
  241. sharing_group_id is represented by a JSON string and SHOULD be
  242. present. If a distribution level other than "4" is chosen the
  243. sharing_group_id MUST be set to "0".
  244. 2.2.1.15. extends_uuid
  245. extends_uuid represents which event is extended by this event. The
  246. extends_uuid is described as a Universally Unique IDentifier (UUID)
  247. [RFC4122] with the UUID of the extended event.
  248. extends_uuid is represented as a JSON string. extends_uuid SHOULD be
  249. present.
  250. 2.3. Objects
  251. 2.3.1. Org
  252. An Org object is composed of an uuid, name and id.
  253. The uuid represents the Universally Unique IDentifier (UUID)
  254. [RFC4122] of the organisation. The organisation UUID is globally
  255. assigned to an organisation and SHALL be kept overtime.
  256. Dulaunoy & Iklody Expires April 24, 2021 [Page 7]
  257. Internet-Draft MISP core format October 2020
  258. The name is a readable description of the organisation and SHOULD be
  259. present. The id is a human-readable identifier generated by the
  260. instance and used as reference in the event. A human-readable
  261. identifier MUST be represented as an unsigned integer.
  262. uuid, name and id are represented as a JSON string. uuid, name and id
  263. MUST be present.
  264. 2.3.1.1. Sample Org Object
  265. "Org": {
  266. "id": "2",
  267. "name": "CIRCL",
  268. "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f"
  269. }
  270. 2.3.2. Orgc
  271. An Orgc object is composed of an uuid, name and id.
  272. The uuid MUST be preserved for any updates or transfer of the same
  273. event. UUID version 4 is RECOMMENDED when assigning it to a new
  274. event. The organisation UUID is globally assigned to an organisation
  275. and SHALL be kept overtime.
  276. The name is a readable description of the organisation and SHOULD be
  277. present. The id is a human-readable identifier generated by the
  278. instance and used as reference in the event. A human-readable
  279. identifier MUST be represented as an unsigned integer.
  280. uuid, name and id are represented as a JSON string. uuid, name and id
  281. MUST be present.
  282. 2.4. Attribute
  283. Attributes are used to describe the indicators and contextual data of
  284. an event. The main information contained in an attribute is made up
  285. of a category-type-value triplet, where the category and type give
  286. meaning and context to the value. Through the various category-type
  287. combinations a wide range of information can be conveyed.
  288. A MISP document MUST at least includes category-type-value triplet
  289. described in section "Attribute Attributes".
  290. Dulaunoy & Iklody Expires April 24, 2021 [Page 8]
  291. Internet-Draft MISP core format October 2020
  292. 2.4.1. Sample Attribute Object
  293. "Attribute": {
  294. "id": "346056",
  295. "type": "comment",
  296. "category": "Other",
  297. "to_ids": false,
  298. "uuid": "57f4f6d9-cd20-458b-84fd-109ec0a83869",
  299. "event_id": "3357",
  300. "distribution": "5",
  301. "timestamp": "1475679332",
  302. "comment": "",
  303. "sharing_group_id": "0",
  304. "deleted": false,
  305. "value": "Hello world",
  306. "SharingGroup": [],
  307. "ShadowAttribute": [],
  308. "RelatedAttribute": [],
  309. "first_seen": "2019-06-02T22:14:28.711954+00:00",
  310. "last_seen": null
  311. }
  312. 2.4.2. Attribute Attributes
  313. 2.4.2.1. uuid
  314. uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of
  315. the event. The uuid MUST be preserved for any updates or transfer of
  316. the same event. UUID version 4 is RECOMMENDED when assigning it to a
  317. new event.
  318. uuid is represented as a JSON string. uuid MUST be present.
  319. 2.4.2.2. id
  320. id represents the human-readable identifier associated to the event
  321. for a specific MISP instance. A human-readable identifier MUST be
  322. represented as an unsigned integer.
  323. id is represented as a JSON string. id SHALL be present.
  324. 2.4.2.3. type
  325. type represents the means through which an attribute tries to
  326. describe the intent of the attribute creator, using a list of pre-
  327. defined attribute types.
  328. Dulaunoy & Iklody Expires April 24, 2021 [Page 9]
  329. Internet-Draft MISP core format October 2020
  330. type is represented as a JSON string. type MUST be present and it
  331. MUST be a valid selection for the chosen category. The list of valid
  332. category-type combinations is as follows:
  333. Antivirus detection
  334. link, comment, text, hex, attachment, other, anonymised
  335. Artifacts dropped
  336. md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256,
  337. sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash,
  338. impfuzzy, authentihash, vhash, cdhash, filename, filename|md5,
  339. filename|sha1, filename|sha224, filename|sha256, filename|sha384,
  340. filename|sha512, filename|sha512/224, filename|sha512/256,
  341. filename|sha3-224, filename|sha3-256, filename|sha3-384,
  342. filename|sha3-512, filename|authentihash, filename|vhash,
  343. filename|ssdeep, filename|tlsh, filename|imphash,
  344. filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-
  345. in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern,
  346. yara, sigma, attachment, malware-sample, named pipe, mutex,
  347. windows-scheduled-task, windows-service-name, windows-service-
  348. displayname, comment, text, hex, x509-fingerprint-sha1, x509-
  349. fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene,
  350. kusto-query, mime-type, anonymised, pgp-public-key, pgp-private-
  351. key
  352. Attribution
  353. threat-actor, campaign-name, campaign-id, whois-registrant-phone,
  354. whois-registrant-email, whois-registrant-name, whois-registrant-
  355. org, whois-registrar, whois-creation-date, comment, text, x509-
  356. fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256,
  357. other, dns-soa-email, anonymised, email
  358. External analysis
  359. md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512,
  360. filename, filename|md5, filename|sha1, filename|sha256,
  361. filename|sha3-224, filename|sha3-256, filename|sha3-384,
  362. filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac-
  363. address, mac-eui-64, hostname, domain, domain|ip, url, user-agent,
  364. regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file,
  365. pattern-in-traffic, pattern-in-memory, filename-pattern,
  366. vulnerability, cpe, weakness, attachment, malware-sample, link,
  367. comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-
  368. fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-
  369. md5, github-repository, other, cortex, anonymised, community-id
  370. Financial fraud
  371. btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-
  372. number, prtn, phone-number, comment, text, other, hex, anonymised
  373. Dulaunoy & Iklody Expires April 24, 2021 [Page 10]
  374. Internet-Draft MISP core format October 2020
  375. Internal reference
  376. text, link, comment, other, hex, anonymised, git-commit-id
  377. Network activity
  378. ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain,
  379. domain|ip, mac-address, mac-eui-64, email, email-dst, email-src,
  380. eppn, url, uri, user-agent, http-method, AS, snort, pattern-in-
  381. file, filename-pattern, stix2-pattern, pattern-in-traffic,
  382. attachment, comment, text, x509-fingerprint-md5, x509-fingerprint-
  383. sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5,
  384. hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek,
  385. anonymised, community-id, email-subject
  386. Other
  387. comment, text, other, size-in-bytes, counter, datetime, cpe, port,
  388. float, hex, phone-number, boolean, anonymised, pgp-public-key,
  389. pgp-private-key
  390. Payload delivery
  391. md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256,
  392. sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash,
  393. impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename,
  394. filename|md5, filename|sha1, filename|sha224, filename|sha256,
  395. filename|sha384, filename|sha512, filename|sha512/224,
  396. filename|sha512/256, filename|sha3-224, filename|sha3-256,
  397. filename|sha3-384, filename|sha3-512, filename|authentihash,
  398. filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash,
  399. filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip-
  400. src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email,
  401. email-src, email-dst, email-subject, email-attachment, email-body,
  402. url, user-agent, AS, pattern-in-file, pattern-in-traffic,
  403. filename-pattern, stix2-pattern, yara, sigma, mime-type,
  404. attachment, malware-sample, link, malware-type, comment, text,
  405. hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509-
  406. fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5,
  407. hassh-md5, hasshserver-md5, other, hostname|port, email-dst-
  408. display-name, email-src-display-name, email-header, email-reply-
  409. to, email-x-mailer, email-mime-boundary, email-thread-index,
  410. email-message-id, mobile-application-id, chrome-extension-id,
  411. whois-registrant-email, anonymised
  412. Payload installation
  413. md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256,
  414. sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash,
  415. impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename,
  416. filename|md5, filename|sha1, filename|sha224, filename|sha256,
  417. filename|sha384, filename|sha512, filename|sha512/224,
  418. filename|sha512/256, filename|sha3-224, filename|sha3-256,
  419. Dulaunoy & Iklody Expires April 24, 2021 [Page 11]
  420. Internet-Draft MISP core format October 2020
  421. filename|sha3-384, filename|sha3-512, filename|authentihash,
  422. filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash,
  423. filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-
  424. traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara,
  425. sigma, vulnerability, cpe, weakness, attachment, malware-sample,
  426. malware-type, comment, text, hex, x509-fingerprint-sha1, x509-
  427. fingerprint-md5, x509-fingerprint-sha256, mobile-application-id,
  428. chrome-extension-id, other, mime-type, anonymised
  429. Payload type
  430. comment, text, other, anonymised
  431. Persistence mechanism
  432. filename, regkey, regkey|value, comment, text, other, hex,
  433. anonymised
  434. Person
  435. first-name, middle-name, last-name, date-of-birth, place-of-birth,
  436. gender, passport-number, passport-country, passport-expiration,
  437. redress-number, nationality, visa-number, issue-date-of-the-visa,
  438. primary-residence, country-of-residence, special-service-request,
  439. frequent-flyer-number, travel-details, payment-details, place-
  440. port-of-original-embarkation, place-port-of-clearance, place-port-
  441. of-onward-foreign-destination, passenger-name-record-locator-
  442. number, comment, text, other, phone-number, identity-card-number,
  443. anonymised, email, pgp-public-key, pgp-private-key
  444. Social network
  445. github-username, github-repository, github-organisation, jabber-
  446. id, twitter-id, email, email-src, email-dst, eppn, comment, text,
  447. other, whois-registrant-email, anonymised, pgp-public-key, pgp-
  448. private-key
  449. Support Tool
  450. link, text, attachment, comment, other, hex, anonymised
  451. Targeting data
  452. target-user, target-email, target-machine, target-org, target-
  453. location, target-external, comment, anonymised
  454. Attributes are based on the usage within their different communities.
  455. Attributes can be extended on a regular basis and this reference
  456. document is updated accordingly.
  457. Dulaunoy & Iklody Expires April 24, 2021 [Page 12]
  458. Internet-Draft MISP core format October 2020
  459. 2.4.2.4. category
  460. category represents the intent of what the attribute is describing as
  461. selected by the attribute creator, using a list of pre-defined
  462. attribute categories.
  463. category is represented as a JSON string. category MUST be present
  464. and it MUST be a valid selection for the chosen type. The list of
  465. valid category-type combinations is mentioned above.
  466. 2.4.2.5. to_ids
  467. to_ids represents whether the attribute is meant to be actionable.
  468. Actionable defined attributes that can be used in automated processes
  469. as a pattern for detection in Local or Network Intrusion Detection
  470. System, log analysis tools or even filtering mechanisms.
  471. to_ids is represented as a JSON boolean. to_ids MUST be present.
  472. 2.4.2.6. event_id
  473. event_id represents a human-readable identifier referencing the Event
  474. object that the attribute belongs to. A human-readable identifier
  475. MUST be represented as an unsigned integer.
  476. The event_id SHOULD be updated when the event is imported to reflect
  477. the newly created event's id on the instance.
  478. event_id is represented as a JSON string. event_id MUST be present.
  479. 2.4.2.7. distribution
  480. distribution represents the basic distribution rules of the
  481. attribute. The system must adhere to the distribution setting for
  482. access control and for dissemination of the attribute.
  483. distribution is represented by a JSON string. distribution MUST be
  484. present and be one of the following options:
  485. 0
  486. Your Organisation Only
  487. 1
  488. This Community Only
  489. 2
  490. Connected Communities
  491. Dulaunoy & Iklody Expires April 24, 2021 [Page 13]
  492. Internet-Draft MISP core format October 2020
  493. 3
  494. All Communities
  495. 4
  496. Sharing Group
  497. 5
  498. Inherit Event
  499. 2.4.2.8. timestamp
  500. timestamp represents a reference time when the attribute was created
  501. or last modified. timestamp is expressed in seconds (decimal) since
  502. 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.
  503. timestamp is represented as a JSON string. timestamp MUST be present.
  504. 2.4.2.9. comment
  505. comment is a contextual comment field.
  506. comment is represented by a JSON string. comment MAY be present.
  507. 2.4.2.10. sharing_group_id
  508. sharing_group_id represents a human-readable identifier referencing a
  509. Sharing Group object that defines the distribution of the attribute,
  510. if distribution level "4" is set. A human-readable identifier MUST
  511. be represented as an unsigned integer.
  512. sharing_group_id is represented by a JSON string and SHOULD be
  513. present. If a distribution level other than "4" is chosen the
  514. sharing_group_id MUST be set to "0".
  515. 2.4.2.11. deleted
  516. deleted represents a setting that allows attributes to be revoked.
  517. Revoked attributes are not actionable and exist merely to inform
  518. other instances of a revocation.
  519. deleted is represented by a JSON boolean. deleted MUST be present.
  520. 2.4.2.12. data
  521. data contains the base64 encoded contents of an attachment or a
  522. malware sample. For malware samples, the sample MUST be encrypted
  523. using a password protected zip archive, with the password being
  524. "infected".
  525. Dulaunoy & Iklody Expires April 24, 2021 [Page 14]
  526. Internet-Draft MISP core format October 2020
  527. data is represented by a JSON string in base64 encoding. data MUST be
  528. set for attributes of type malware-sample and attachment.
  529. 2.4.2.13. RelatedAttribute
  530. RelatedAttribute is an array of attributes correlating with the
  531. current attribute. Each element in the array represents an JSON
  532. object which contains an Attribute dictionnary with the external
  533. attributes who correlate. Each Attribute MUST include the id,
  534. org_id, info and a value. Only the correlations found on the local
  535. instance are shown in RelatedAttribute.
  536. RelatedAttribute MAY be present.
  537. 2.4.2.14. ShadowAttribute
  538. ShadowAttribute is an array of shadow attributes that serve as
  539. proposals by third parties to alter the containing attribute. The
  540. structure of a ShadowAttribute is similar to that of an Attribute,
  541. which can be accepted or discarded by the event creator. If
  542. accepted, the original attribute containing the shadow attribute is
  543. removed and the shadow attribute is converted into an attribute.
  544. Each shadow attribute that references an attribute MUST contain the
  545. containing attribute's ID in the old_id field and the event's ID in
  546. the event_id field.
  547. 2.4.2.15. value
  548. value represents the payload of an attribute. The format of the
  549. value is dependent on the type of the attribute.
  550. value is represented by a JSON string. value MUST be present.
  551. 2.4.2.16. first_seen
  552. first_seen represents a reference time when the attribute was first
  553. seen. first_seen is expressed as an ISO 8601 datetime up to the
  554. micro-second with time zone support.
  555. first_seen is represented as a JSON string. first_seen MAY be
  556. present.
  557. 2.4.2.17. last_seen
  558. last_seen represents a reference time when the attribute was last
  559. seen. last_seen is expressed as an ISO 8601 datetime up to the micro-
  560. second with time zone support.
  561. Dulaunoy & Iklody Expires April 24, 2021 [Page 15]
  562. Internet-Draft MISP core format October 2020
  563. last_seen is represented as a JSON string. last_seen MAY be present.
  564. 2.5. ShadowAttribute
  565. ShadowAttributes are 3rd party created attributes that either propose
  566. to add new information to an event or modify existing information.
  567. They are not meant to be actionable until the event creator accepts
  568. them - at which point they will be converted into attributes or
  569. modify an existing attribute.
  570. They are similar in structure to Attributes but additionally carry a
  571. reference to the creator of the ShadowAttribute as well as a
  572. revocation flag.
  573. 2.5.1. Sample Attribute Object
  574. "ShadowAttribute": {
  575. "id": "8",
  576. "type": "ip-src",
  577. "category": "Network activity",
  578. "to_ids": false,
  579. "uuid": "57d475f1-da78-4569-89de-1458c0a83869",
  580. "event_uuid": "57d475e6-41c4-41ca-b450-145ec0a83869",
  581. "event_id": "9",
  582. "old_id": "319",
  583. "comment": "",
  584. "org_id": "1",
  585. "proposal_to_delete": false,
  586. "value": "5.5.5.5",
  587. "deleted": false,
  588. "Org": {
  589. "id": "1",
  590. "name": "MISP",
  591. "uuid": "568cce5a-0c80-412b-8fdf-1ffac0a83869"
  592. },
  593. "first_seen": "2019-06-02T22:14:28.711954+00:00",
  594. "last_seen": null
  595. }
  596. 2.5.2. ShadowAttribute Attributes
  597. 2.5.2.1. uuid
  598. uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of
  599. the event. The uuid MUST be preserved for any updates or transfer of
  600. the same event. UUID version 4 is RECOMMENDED when assigning it to a
  601. new event.
  602. Dulaunoy & Iklody Expires April 24, 2021 [Page 16]
  603. Internet-Draft MISP core format October 2020
  604. uuid is represented as a JSON string. uuid MUST be present.
  605. 2.5.2.2. id
  606. id represents the human-readable identifier associated to the event
  607. for a specific MISP instance. human-readable identifier MUST be
  608. represented as an unsigned integer. id is represented as a JSON
  609. string. id SHALL be present.
  610. 2.5.2.3. type
  611. type represents the means through which an attribute tries to
  612. describe the intent of the attribute creator, using a list of pre-
  613. defined attribute types.
  614. type is represented as a JSON string. type MUST be present and it
  615. MUST be a valid selection for the chosen category. The list of valid
  616. category-type combinations is as follows:
  617. Antivirus detection
  618. link, comment, text, hex, attachment, other, anonymised
  619. Artifacts dropped
  620. md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256,
  621. sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash,
  622. impfuzzy, authentihash, vhash, cdhash, filename, filename|md5,
  623. filename|sha1, filename|sha224, filename|sha256, filename|sha384,
  624. filename|sha512, filename|sha512/224, filename|sha512/256,
  625. filename|sha3-224, filename|sha3-256, filename|sha3-384,
  626. filename|sha3-512, filename|authentihash, filename|vhash,
  627. filename|ssdeep, filename|tlsh, filename|imphash,
  628. filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-
  629. in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern,
  630. yara, sigma, attachment, malware-sample, named pipe, mutex,
  631. windows-scheduled-task, windows-service-name, windows-service-
  632. displayname, comment, text, hex, x509-fingerprint-sha1, x509-
  633. fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene,
  634. kusto-query, mime-type, anonymised, pgp-public-key, pgp-private-
  635. key
  636. Attribution
  637. threat-actor, campaign-name, campaign-id, whois-registrant-phone,
  638. whois-registrant-email, whois-registrant-name, whois-registrant-
  639. org, whois-registrar, whois-creation-date, comment, text, x509-
  640. fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256,
  641. other, dns-soa-email, anonymised, email
  642. External analysis
  643. Dulaunoy & Iklody Expires April 24, 2021 [Page 17]
  644. Internet-Draft MISP core format October 2020
  645. md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512,
  646. filename, filename|md5, filename|sha1, filename|sha256,
  647. filename|sha3-224, filename|sha3-256, filename|sha3-384,
  648. filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac-
  649. address, mac-eui-64, hostname, domain, domain|ip, url, user-agent,
  650. regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file,
  651. pattern-in-traffic, pattern-in-memory, filename-pattern,
  652. vulnerability, cpe, weakness, attachment, malware-sample, link,
  653. comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-
  654. fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-
  655. md5, github-repository, other, cortex, anonymised, community-id
  656. Financial fraud
  657. btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-
  658. number, prtn, phone-number, comment, text, other, hex, anonymised
  659. Internal reference
  660. text, link, comment, other, hex, anonymised, git-commit-id
  661. Network activity
  662. ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain,
  663. domain|ip, mac-address, mac-eui-64, email, email-dst, email-src,
  664. eppn, url, uri, user-agent, http-method, AS, snort, pattern-in-
  665. file, filename-pattern, stix2-pattern, pattern-in-traffic,
  666. attachment, comment, text, x509-fingerprint-md5, x509-fingerprint-
  667. sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5,
  668. hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek,
  669. anonymised, community-id, email-subject
  670. Other
  671. comment, text, other, size-in-bytes, counter, datetime, cpe, port,
  672. float, hex, phone-number, boolean, anonymised, pgp-public-key,
  673. pgp-private-key
  674. Payload delivery
  675. md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256,
  676. sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash,
  677. impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename,
  678. filename|md5, filename|sha1, filename|sha224, filename|sha256,
  679. filename|sha384, filename|sha512, filename|sha512/224,
  680. filename|sha512/256, filename|sha3-224, filename|sha3-256,
  681. filename|sha3-384, filename|sha3-512, filename|authentihash,
  682. filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash,
  683. filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip-
  684. src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email,
  685. email-src, email-dst, email-subject, email-attachment, email-body,
  686. url, user-agent, AS, pattern-in-file, pattern-in-traffic,
  687. filename-pattern, stix2-pattern, yara, sigma, mime-type,
  688. Dulaunoy & Iklody Expires April 24, 2021 [Page 18]
  689. Internet-Draft MISP core format October 2020
  690. attachment, malware-sample, link, malware-type, comment, text,
  691. hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509-
  692. fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5,
  693. hassh-md5, hasshserver-md5, other, hostname|port, email-dst-
  694. display-name, email-src-display-name, email-header, email-reply-
  695. to, email-x-mailer, email-mime-boundary, email-thread-index,
  696. email-message-id, mobile-application-id, chrome-extension-id,
  697. whois-registrant-email, anonymised
  698. Payload installation
  699. md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256,
  700. sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash,
  701. impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename,
  702. filename|md5, filename|sha1, filename|sha224, filename|sha256,
  703. filename|sha384, filename|sha512, filename|sha512/224,
  704. filename|sha512/256, filename|sha3-224, filename|sha3-256,
  705. filename|sha3-384, filename|sha3-512, filename|authentihash,
  706. filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash,
  707. filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-
  708. traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara,
  709. sigma, vulnerability, cpe, weakness, attachment, malware-sample,
  710. malware-type, comment, text, hex, x509-fingerprint-sha1, x509-
  711. fingerprint-md5, x509-fingerprint-sha256, mobile-application-id,
  712. chrome-extension-id, other, mime-type, anonymised
  713. Payload type
  714. comment, text, other, anonymised
  715. Persistence mechanism
  716. filename, regkey, regkey|value, comment, text, other, hex,
  717. anonymised
  718. Person
  719. first-name, middle-name, last-name, date-of-birth, place-of-birth,
  720. gender, passport-number, passport-country, passport-expiration,
  721. redress-number, nationality, visa-number, issue-date-of-the-visa,
  722. primary-residence, country-of-residence, special-service-request,
  723. frequent-flyer-number, travel-details, payment-details, place-
  724. port-of-original-embarkation, place-port-of-clearance, place-port-
  725. of-onward-foreign-destination, passenger-name-record-locator-
  726. number, comment, text, other, phone-number, identity-card-number,
  727. anonymised, email, pgp-public-key, pgp-private-key
  728. Social network
  729. github-username, github-repository, github-organisation, jabber-
  730. id, twitter-id, email, email-src, email-dst, eppn, comment, text,
  731. other, whois-registrant-email, anonymised, pgp-public-key, pgp-
  732. private-key
  733. Dulaunoy & Iklody Expires April 24, 2021 [Page 19]
  734. Internet-Draft MISP core format October 2020
  735. Support Tool
  736. link, text, attachment, comment, other, hex, anonymised
  737. Targeting data
  738. target-user, target-email, target-machine, target-org, target-
  739. location, target-external, comment, anonymised
  740. Attributes are based on the usage within their different communities.
  741. Attributes can be extended on a regular basis and this reference
  742. document is updated accordingly.
  743. 2.5.2.4. category
  744. category represents the intent of what the attribute is describing as
  745. selected by the attribute creator, using a list of pre-defined
  746. attribute categories.
  747. category is represented as a JSON string. category MUST be present
  748. and it MUST be a valid selection for the chosen type. The list of
  749. valid category-type combinations is mentioned above.
  750. 2.5.2.5. to_ids
  751. to_ids represents whether the Attribute to be created if the
  752. ShadowAttribute is accepted is meant to be actionable. Actionable
  753. defined attributes that can be used in automated processes as a
  754. pattern for detection in Local or Network Intrusion Detection System,
  755. log analysis tools or even filtering mechanisms.
  756. to_ids is represented as a JSON boolean. to_ids MUST be present.
  757. 2.5.2.6. event_id
  758. event_id represents a human-readable identifier referencing the Event
  759. object that the ShadowAttribute belongs to.
  760. The event_id SHOULD be updated when the event is imported to reflect
  761. the newly created event's id on the instance.
  762. event_id is represented as a JSON string. event_id MUST be present.
  763. 2.5.2.7. old_id
  764. old_id represents a human-readable identifier referencing the
  765. Attribute object that the ShadowAttribute belongs to. A
  766. ShadowAttribute can this way target an existing Attribute, implying
  767. that it is a proposal to modify an existing Attribute, or
  768. Dulaunoy & Iklody Expires April 24, 2021 [Page 20]
  769. Internet-Draft MISP core format October 2020
  770. alternatively it can be a proposal to create a new Attribute for the
  771. containing Event.
  772. The old_id SHOULD be updated when the event is imported to reflect
  773. the newly created Attribute's id on the instance. Alternatively, if
  774. the ShadowAttribute proposes the creation of a new Attribute, it
  775. should be set to 0.
  776. old_id is represented as a JSON string. old_id MUST be present.
  777. 2.5.2.8. timestamp
  778. timestamp represents a reference time when the attribute was created
  779. or last modified. timestamp is expressed in seconds (decimal) since
  780. 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.
  781. timestamp is represented as a JSON string. timestamp MUST be present.
  782. 2.5.2.9. comment
  783. comment is a contextual comment field.
  784. comment is represented by a JSON string. comment MAY be present.
  785. 2.5.2.10. org_id
  786. org_id represents a human-readable identifier referencing the
  787. proposal creator's Organisation object. A human-readable identifier
  788. MUST be represented as an unsigned integer.
  789. Whilst attributes can only be created by the event creator
  790. organisation, shadow attributes can be created by third parties.
  791. org_id tracks the creator organisation.
  792. org_id is represented by a JSON string and MUST be present.
  793. 2.5.2.11. proposal_to_delete
  794. proposal_to_delete is a boolean flag that sets whether the shadow
  795. attribute proposes to alter an attribute, or whether it proposes to
  796. remove it completely.
  797. Accepting a shadow attribute with this flag set will remove the
  798. target attribute.
  799. proposal_to_delete is a JSON boolean and it MUST be present. If
  800. proposal_to_delete is set to true, old_id MUST NOT be 0.
  801. Dulaunoy & Iklody Expires April 24, 2021 [Page 21]
  802. Internet-Draft MISP core format October 2020
  803. 2.5.2.12. deleted
  804. deleted represents a setting that allows shadow attributes to be
  805. revoked. Revoked shadow attributes only serve to inform other
  806. instances that the shadow attribute is no longer active.
  807. deleted is represented by a JSON boolean. deleted SHOULD be present.
  808. 2.5.2.13. data
  809. data contains the base64 encoded contents of an attachment or a
  810. malware sample. For malware samples, the sample MUST be encrypted
  811. using a password protected zip archive, with the password being
  812. "infected".
  813. data is represented by a JSON string in base64 encoding. data MUST be
  814. set for shadow attributes of type malware-sample and attachment.
  815. 2.5.2.14. first_seen
  816. first_seen represents a reference time when the attribute was first
  817. seen. first_seen as an ISO 8601 datetime up to the micro-second with
  818. time zone support.
  819. first_seen is represented as a JSON string. first_seen MAY be
  820. present.
  821. 2.5.2.15. last_seen
  822. last_seen represents a reference time when the attribute was last
  823. seen. last_seen as an ISO 8601 datetime up to the micro-second with
  824. time zone support.
  825. last_seen is represented as a JSON string. last_seen MAY be present.
  826. 2.5.3. Org
  827. An Org object is composed of an uuid, name and id.
  828. The uuid represents the Universally Unique IDentifier (UUID)
  829. [RFC4122] of the organization. The organization UUID is globally
  830. assigned to an organization and SHALL be kept overtime.
  831. The name is a readable description of the organization and SHOULD be
  832. present. The id is a human-readable identifier generated by the
  833. instance and used as reference in the event. A human-readable
  834. identifier MUST be represented as an unsigned integer.
  835. Dulaunoy & Iklody Expires April 24, 2021 [Page 22]
  836. Internet-Draft MISP core format October 2020
  837. uuid, name and id are represented as a JSON string. uuid, name and id
  838. MUST be present.
  839. 2.5.3.1. Sample Org Object
  840. "Org": {
  841. "id": "2",
  842. "name": "CIRCL",
  843. "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f"
  844. }
  845. 2.5.3.2. value
  846. value represents the payload of an attribute. The format of the
  847. value is dependent on the type of the attribute.
  848. value is represented by a JSON string. value MUST be present.
  849. 2.6. Object
  850. Objects serve as a contextual bond between a list of attributes
  851. within an event. Their main purpose is to describe more complex
  852. structures than can be described by a single attribute Each object is
  853. created using an Object Template and carries the meta-data of the
  854. template used for its creation within. Objects belong to a meta-
  855. category and are defined by a name.
  856. The schema used is described by the template_uuid and
  857. template_version fields.
  858. A MISP document containing an Object MUST contain a name, a meta-
  859. category, a description, a template_uuid and a template_version as
  860. described in the "Object Attributes" section.
  861. 2.6.1. Sample Object
  862. Dulaunoy & Iklody Expires April 24, 2021 [Page 23]
  863. Internet-Draft MISP core format October 2020
  864. "Object": {
  865. "id": "588",
  866. "name": "file",
  867. "meta-category": "file",
  868. "description": "File object describing a file with meta-information",
  869. "template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215",
  870. "template_version": "3",
  871. "event_id": "56",
  872. "uuid": "398b0094-0384-4c48-9bf0-22b3dff9c4d3",
  873. "timestamp": "1505747965",
  874. "distribution": "5",
  875. "sharing_group_id": "0",
  876. "comment": "",
  877. "deleted": false,
  878. "ObjectReference": [],
  879. "Attribute": [
  880. {
  881. "id": "7822",
  882. "type": "filename",
  883. "category": "Payload delivery",
  884. "to_ids": true,
  885. "uuid": "59bfe3fb-bde0-4dfe-b5b1-2b10a07724d1",
  886. "event_id": "56",
  887. "distribution": "0",
  888. "timestamp": "1505747963",
  889. "comment": "",
  890. "sharing_group_id": "0",
  891. "deleted": false,
  892. "disable_correlation": false,
  893. "object_id": "588",
  894. "object_relation": "filename",
  895. "value": "StarCraft.exe",
  896. "ShadowAttribute": [],
  897. "first_seen": null,
  898. "last_seen": null
  899. },
  900. "first_seen": "2019-06-02T22:14:28.711954+00:00",
  901. "last_seen": null
  902. ]
  903. }
  904. Figure 1
  905. 2.6.2. Object Attributes
  906. Dulaunoy & Iklody Expires April 24, 2021 [Page 24]
  907. Internet-Draft MISP core format October 2020
  908. 2.6.2.1. uuid
  909. uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of
  910. the object. The uuid MUST be preserved for any updates or transfer
  911. of the same object. UUID version 4 is RECOMMENDED when assigning it
  912. to a new object.
  913. 2.6.2.2. id
  914. id represents the human-readable identifier associated to the object
  915. for a specific MISP instance. A human-readable identifier MUST be
  916. represented as an unsigned integer.
  917. id is represented as a JSON string. id SHALL be present.
  918. 2.6.2.3. name
  919. name represents the human-readable name of the object describing the
  920. intent of the object package.
  921. name is represented as a JSON string. name MUST be present
  922. 2.6.2.4. meta-category
  923. meta-category represents the sub-category of objects that the given
  924. object belongs to. meta-categories are not tied to a fixed list of
  925. options but can be created on the fly.
  926. meta-category is represented as a JSON string. meta-category MUST be
  927. present
  928. 2.6.2.5. description
  929. description is a human-readable description of the given object type,
  930. as derived from the template used for creation.
  931. description is represented as a JSON string. id SHALL be present.
  932. 2.6.2.6. template_uuid
  933. uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of
  934. the template used to create the object. The uuid MUST be preserved
  935. to preserve the object's association with the correct template used
  936. for creation. UUID version 4 is RECOMMENDED when assigning it to a
  937. new object.
  938. Dulaunoy & Iklody Expires April 24, 2021 [Page 25]
  939. Internet-Draft MISP core format October 2020
  940. 2.6.2.7. template_version
  941. template_version represents a numeric incrementing version of the
  942. template used to create the object. It is used to associate the
  943. object to the correct version of the template and together with the
  944. template_uuid forms an association to the correct template type and
  945. version.
  946. version is represented as a JSON string. version MUST be present.
  947. 2.6.2.8. event_id
  948. event_id represents the human-readable identifier of the event that
  949. the object belongs to on a specific MISP instance. A human-readable
  950. identifier MUST be represented as an unsigned integer.
  951. event_id is represented as a JSON string. event_id SHALL be present.
  952. 2.6.2.9. timestamp
  953. timestamp represents a reference time when the object was created or
  954. last modified. timestamp is expressed in seconds (decimal) since 1st
  955. of January 1970 (Unix timestamp). The time zone MUST be UTC.
  956. timestamp is represented as a JSON string. timestamp MUST be present.
  957. 2.6.2.10. distribution
  958. distribution represents the basic distribution rules of the object.
  959. The system must adhere to the distribution setting for access control
  960. and for dissemination of the object.
  961. distribution is represented by a JSON string. distribution MUST be
  962. present and be one of the following options:
  963. 0
  964. Your Organisation Only
  965. 1
  966. This Community Only
  967. 2
  968. Connected Communities
  969. 3
  970. All Communities
  971. 4
  972. Dulaunoy & Iklody Expires April 24, 2021 [Page 26]
  973. Internet-Draft MISP core format October 2020
  974. Sharing Group
  975. 2.6.2.11. sharing_group_id
  976. sharing_group_id represents a human-readable identifier referencing a
  977. Sharing Group object that defines the distribution of the object, if
  978. distribution level "4" is set. A human-readable identifier MUST be
  979. represented as an unsigned integer.
  980. sharing_group_id is represented by a JSON string and SHOULD be
  981. present. If a distribution level other than "4" is chosen the
  982. sharing_group_id MUST be set to "0".
  983. 2.6.2.12. comment
  984. comment is a contextual comment field.
  985. comment is represented by a JSON string. comment MAY be present.
  986. 2.6.2.13. deleted
  987. deleted represents a setting that allows attributes to be revoked.
  988. Revoked attributes are not actionable and exist merely to inform
  989. other instances of a revocation.
  990. deleted is represented by a JSON boolean. deleted MUST be present.
  991. 2.6.2.14. Attribute
  992. Attribute is an array of attributes that describe the object with
  993. data.
  994. Each attribute in an object MUST contain the parent event's ID in the
  995. event_id field and the parent object's ID in the object_id field.
  996. 2.6.2.15. first_seen
  997. first_seen represents a reference time when the object was first
  998. seen. first_seen as an ISO 8601 datetime up to the micro-second with
  999. time zone support.
  1000. first_seen is represented as a JSON string. first_seen MAY be
  1001. present.
  1002. Dulaunoy & Iklody Expires April 24, 2021 [Page 27]
  1003. Internet-Draft MISP core format October 2020
  1004. 2.6.2.16. last_seen
  1005. last_seen represents a reference time when the object was last seen.
  1006. last_seen as an ISO 8601 datetime up to the micro-second with time
  1007. zone support.
  1008. last_seen is represented as a JSON string. last_seen MAY be present.
  1009. 2.7. Object References
  1010. Object References serve as a logical link between an Object and
  1011. another referenced Object or Attribute. The relationship is
  1012. categorised by an enumerated value from a fixed vocabulary.
  1013. The relationship_type is recommended to be taken from the MISP object
  1014. relationship list [[MISP-R]] is RECOMMENDED to ensure a coherent
  1015. naming of the tags
  1016. All Object References MUST contain an object_uuid, a referenced_uuid
  1017. and a relationship type.
  1018. 2.7.1. Sample ObjectReference object
  1019. "ObjectReference": {
  1020. "id": "195",
  1021. "uuid": "59c21a2c-c0ac-4083-93b3-363da07724d1",
  1022. "timestamp": "1505892908",
  1023. "object_id": "591",
  1024. "event_id": "113",
  1025. "referenced_id": "590",
  1026. "referenced_type": "1",
  1027. "relationship_type": "derived-from",
  1028. "comment": "",
  1029. "deleted": false,
  1030. "object_uuid": "59c1134d-8a40-4c14-ad94-0f7ba07724d1",
  1031. "referenced_uuid": "59c1133c-9adc-4d06-a34b-0f7ca07724d1",
  1032. }
  1033. 2.7.2. ObjectReference Attributes
  1034. 2.7.2.1. uuid
  1035. uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of
  1036. the object reference. The uuid MUST be preserved for any updates or
  1037. transfer of the same object reference. UUID version 4 is RECOMMENDED
  1038. when assigning it to a new object reference.
  1039. Dulaunoy & Iklody Expires April 24, 2021 [Page 28]
  1040. Internet-Draft MISP core format October 2020
  1041. 2.7.2.2. id
  1042. id represents the human-readable identifier associated to the object
  1043. reference for a specific MISP instance.
  1044. id is represented as a JSON string. id SHALL be present.
  1045. 2.7.2.3. timestamp
  1046. timestamp represents a reference time when the object was created or
  1047. last modified. timestamp is expressed in seconds (decimal) since 1st
  1048. of January 1970 (Unix timestamp). The time zone MUST be UTC.
  1049. timestamp is represented as a JSON string. timestamp MUST be present.
  1050. 2.7.2.4. object_id
  1051. object_id represents the human-readable identifier of the object that
  1052. the object reference belongs to on a specific MISP instance. A
  1053. human-readable identifier MUST be represented as an unsigned integer.
  1054. event_id is represented as a JSON string. event_id SHALL be present.
  1055. 2.7.2.5. event_id
  1056. event_id represents the human-readable identifier of the event that
  1057. the object reference belongs to on a specific MISP instance. A
  1058. human-readable identifier MUST be represented as an unsigned integer.
  1059. event_id is represented as a JSON string. event_id SHALL be present.
  1060. 2.7.2.6. referenced_id
  1061. referenced_id represents the human-readable identifier of the object
  1062. or attribute that the parent object of the object reference points to
  1063. on a specific MISP instance.
  1064. referenced_id is represented as a JSON string. referenced_id MAY be
  1065. present.
  1066. 2.7.2.7. referenced_type
  1067. referenced_type represents the numeric value describing what the
  1068. object reference points to, "0" representing an attribute and "1"
  1069. representing an object
  1070. referenced_type is represented as a JSON string. referenced_type MAY
  1071. be present.
  1072. Dulaunoy & Iklody Expires April 24, 2021 [Page 29]
  1073. Internet-Draft MISP core format October 2020
  1074. 2.7.2.8. relationship_type
  1075. relationship_type represents the human-readable context of the
  1076. relationship between an object and another object or attribute as
  1077. described by the object_reference.
  1078. referenced_type is represented as a JSON string. relationship_type
  1079. MUST be present.
  1080. 2.7.2.9. comment
  1081. comment is a contextual comment field.
  1082. comment is represented by a JSON string. comment MAY be present.
  1083. 2.7.2.10. deleted
  1084. deleted represents a setting that allows object references to be
  1085. revoked. Revoked object references are not actionable and exist
  1086. merely to inform other instances of a revocation.
  1087. deleted is represented by a JSON boolean. deleted MUST be present.
  1088. 2.7.2.11. object_uuid
  1089. object_uuid represents the Universally Unique IDentifier (UUID)
  1090. [RFC4122] of the object that the given object reference belongs to.
  1091. The object_uuid MUST be preserved to preserve the object reference's
  1092. association with the object.
  1093. 2.7.2.12. referenced_uuid
  1094. referenced_uuid represents the Universally Unique IDentifier (UUID)
  1095. [RFC4122] of the object or attribute that is being referenced by the
  1096. object reference. The referenced_uuid MUST be preserved to preserve
  1097. the object reference's association with the object or attribute.
  1098. 2.8. EventReport
  1099. EventReport are used to complement an event with one or more report
  1100. in Markdown format. The EventReport contains unstructured
  1101. information which can be linked to Attributes, Objects, Tags or
  1102. Galaxy with an extension to the Markdown marking language.
  1103. Dulaunoy & Iklody Expires April 24, 2021 [Page 30]
  1104. Internet-Draft MISP core format October 2020
  1105. 2.8.1. id
  1106. id represents the human-readable identifier associated to the
  1107. EventReport for a specific MISP instance. A human-readable
  1108. identifier MUST be represented as an unsigned integer.
  1109. id is represented as a JSON string. id SHALL be present.
  1110. 2.8.2. UUID
  1111. uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of
  1112. the EventReport. The uuid MUST be preserved for any updates or
  1113. transfer of the same EventReport. UUID version 4 is RECOMMENDED when
  1114. assigning it to a new EventReport.
  1115. uuid is represented as a JSON string. uuid MUST be present.
  1116. 2.8.3. event_id
  1117. event_id represents the human-readable identifier associating the
  1118. EventReport to an event on a specific MISP instance. A human-
  1119. readable identifier MUST be represented as an unsigned integer.
  1120. event_id is represented as a JSON string. event_id MUST be present.
  1121. 2.8.4. name
  1122. name represents the information field of the EventReport. name is a
  1123. free-text value to provide a human-readable summary of the report.
  1124. name SHOULD NOT be bigger than 256 characters and SHOULD NOT include
  1125. new-lines.
  1126. name is represented as a JSON string. name MUST be present.
  1127. 2.8.5. content
  1128. content includes the raw EventReport in Markdown format with or
  1129. without the specific MISP Markdown markup extension.
  1130. The markdown extension for MISP is composed with a symbol as prefix
  1131. then between square bracket the scope (attribute, object, tag or
  1132. galaxymatrix) followed by the UUID in parenthesis.
  1133. content is represented as a JSON string. content MUST be present.
  1134. Dulaunoy & Iklody Expires April 24, 2021 [Page 31]
  1135. Internet-Draft MISP core format October 2020
  1136. 2.8.6. distribution
  1137. distribution represents the basic distribution rules of the
  1138. EventReport. The system must adhere to the distribution setting for
  1139. access control and for dissemination of the EventReport.
  1140. distribution is represented by a JSON string. distribution MUST be
  1141. present and be one of the following options:
  1142. 0
  1143. Your Organisation Only
  1144. 1
  1145. This Community Only
  1146. 2
  1147. Connected Communities
  1148. 3
  1149. All Communities
  1150. 4
  1151. Sharing Group
  1152. 5
  1153. Inherit Event
  1154. 2.8.7. sharing_group_id
  1155. sharing_group_id represents the local id to the MISP local instance
  1156. of the Sharing Group associated for the distribution.
  1157. sharing_group_id is represented by a JSON string. sharing_group_id
  1158. MUST be present and set to "0" if not used.
  1159. 2.8.8. timestamp
  1160. timestamp represents a reference time when the EventReport was
  1161. created or last modified. timestamp is expressed in seconds (decimal)
  1162. since 1st of January 1970 (Unix timestamp). The time zone MUST be
  1163. UTC.
  1164. timestamp is represented as a JSON string. timestamp MUST be present.
  1165. Dulaunoy & Iklody Expires April 24, 2021 [Page 32]
  1166. Internet-Draft MISP core format October 2020
  1167. 2.8.9. deleted
  1168. deleted represents a setting that allows EventReport to be revoked.
  1169. Revoked EventReport are not actionable and exist merely to inform
  1170. other instances of a revocation.
  1171. deleted is represented by a JSON boolean. deleted MUST be present.
  1172. 2.9. Tag
  1173. A tag is a simple method to classify an event with a simple string.
  1174. The tag name can be freely chosen. The tag name can be also chosen
  1175. from a fixed machine-tag vocabulary called MISP taxonomies[[MISP-T]].
  1176. When an event is distributed outside an organisation, the use of MISP
  1177. taxonomies[[MISP-T]] is RECOMMENDED to ensure a coherent naming of
  1178. the tags. A tag is represented as a JSON array where each element
  1179. describes each tag associated. A tag array SHALL be at event level
  1180. or attribute level. A tag element is described with a name, id,
  1181. colour and exportable flag.
  1182. exportable represents a setting if the tag is kept local or
  1183. exportable to other MISP instances. exportable is represented by a
  1184. JSON boolean. id is a human-readable identifier that references the
  1185. tag on the local instance. colour represents an RGB value of the tag.
  1186. name MUST be present. colour, id and exportable SHALL be present.
  1187. 2.9.1. Sample Tag
  1188. "Tag": [{
  1189. "exportable": true,
  1190. "colour": "#ffffff",
  1191. "name": "tlp:white",
  1192. "id": "2" }]
  1193. 2.10. Sighting
  1194. A sighting is an ascertainment which describes whether an attribute
  1195. has been seen under a given set of conditions. The sighting can
  1196. include the organisation who sighted the attribute or can be
  1197. anonymised. Sighting is composed of a JSON array in which each
  1198. element describes one singular instance of a sighting. A sighting
  1199. element is a JSON object composed of the following values:
  1200. type MUST be present. type describes the type of a sighting. MISP
  1201. allows 3 default types:
  1202. Dulaunoy & Iklody Expires April 24, 2021 [Page 33]
  1203. Internet-Draft MISP core format October 2020
  1204. +------------+------------------------------------------------------+
  1205. | Sighting | Description |
  1206. | type | |
  1207. +------------+------------------------------------------------------+
  1208. | 0 | denotes an attribute which has been seen |
  1209. | 1 | denotes an attribute which has been seen and |
  1210. | | confirmed as false-positive |
  1211. | 2 | denotes an attribute which will be expired at the |
  1212. | | time of the sighting |
  1213. +------------+------------------------------------------------------+
  1214. uuid MUST be present. uuid references the uuid of the sighted
  1215. attribute.
  1216. date_sighting MUST be present. date_sighting is expressed in seconds
  1217. (decimal) elapsed since 1st of January 1970 (Unix timestamp).
  1218. date_sighting represents when the referenced attribute, designated by
  1219. its uuid, is sighted.
  1220. source MAY be present. source is represented as a JSON string and
  1221. represents the human-readable version of the sighting source, which
  1222. can be a given piece of software (e.g. SIEM), device or a specific
  1223. analytical process.
  1224. id, event_id and attribute_id MAY be present.
  1225. id represents the human-readable identifier of the sighting reference
  1226. which belongs to a specific MISP instance. event_id represents the
  1227. human-readable identifier of the event referenced by the sighting and
  1228. belongs to a specific MISP instance. attribute_id represents the
  1229. human-readable identifier of the attribute referenced by the sighting
  1230. and belongs to a specific MISP instance.
  1231. org_id MAY be present along the JSON object describing the
  1232. organisation. If the org_id is not present, the sighting is
  1233. considered as anonymised.
  1234. org_id represents the human-readable identifier of the organisation
  1235. which did the sighting and belongs to a specific MISP instance.
  1236. A human-readable identifier MUST be represented as an unsigned
  1237. integer.
  1238. 2.10.1. Sample Sighting
  1239. Dulaunoy & Iklody Expires April 24, 2021 [Page 34]
  1240. Internet-Draft MISP core format October 2020
  1241. "Sighting": [
  1242. {
  1243. "id": "13599",
  1244. "attribute_id": "1201615",
  1245. "event_id": "10164",
  1246. "org_id": "2",
  1247. "date_sighting": "1517581400",
  1248. "uuid": "5a747459-41b4-4826-9b29-42dd950d210f",
  1249. "source": "M2M-CIRCL",
  1250. "type": "0",
  1251. "Organisation": {
  1252. "id": "2",
  1253. "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f",
  1254. "name": "CIRCL"
  1255. }
  1256. },
  1257. {
  1258. "id": "13601",
  1259. "attribute_id": "1201615",
  1260. "event_id": "10164",
  1261. "org_id": "2",
  1262. "date_sighting": "1517581401",
  1263. "uuid": "5a74745a-a190-4d04-b719-4916950d210f",
  1264. "source": "M2M-CIRCL",
  1265. "type": "0",
  1266. "Organisation": {
  1267. "id": "2",
  1268. "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f",
  1269. "name": "CIRCL"
  1270. }
  1271. }
  1272. ]
  1273. 2.11. Galaxy
  1274. A galaxy is a simple method to express a large object called cluster
  1275. that can be attached to MISP events. A cluster can be composed of
  1276. one or more elements. Elements are expressed as key-values.
  1277. 2.11.1. Sample Galaxy
  1278. Dulaunoy & Iklody Expires April 24, 2021 [Page 35]
  1279. Internet-Draft MISP core format October 2020
  1280. "Galaxy": [ {
  1281. "id": "18",
  1282. "uuid": "698774c7-8022-42c4-917f-8d6e4f06ada3",
  1283. "name": "Threat Actor",
  1284. "type": "threat-actor",
  1285. "description": "Threat actors are characteristics of malicious actors
  1286. (or adversaries) representing a cyber attack threat
  1287. including presumed intent and historically observed behaviour.",
  1288. "version": "1",
  1289. "GalaxyCluster": [
  1290. {
  1291. "id": "1699",
  1292. "uuid": "7cdff317-a673-4474-84ec-4f1754947823",
  1293. "type": "threat-actor",
  1294. "value": "Anunak",
  1295. "tag_name": "misp-galaxy:threat-actor=\"Anunak\"",
  1296. "description": "Groups targeting financial organizations
  1297. or people with significant financial assets.",
  1298. "galaxy_id": "18",
  1299. "source": "MISP Project",
  1300. "authors": [
  1301. "Alexandre Dulaunoy",
  1302. "Florian Roth",
  1303. "Thomas Schreck",
  1304. "Timo Steffens",
  1305. "Various"
  1306. ],
  1307. "tag_id": "111",
  1308. "meta": {
  1309. "synonyms": [
  1310. "Carbanak",
  1311. "Carbon Spider"
  1312. ],
  1313. "country": [
  1314. "RU"
  1315. ],
  1316. "motive": [
  1317. "Cybercrime"
  1318. ]
  1319. }
  1320. }
  1321. ]
  1322. }
  1323. ]
  1324. Dulaunoy & Iklody Expires April 24, 2021 [Page 36]
  1325. Internet-Draft MISP core format October 2020
  1326. 3. JSON Schema
  1327. The JSON Schema [JSON-SCHEMA] below defines the structure of the MISP
  1328. core format as literally described before. The JSON Schema is used
  1329. to validate MISP events at creation time or parsing.
  1330. {
  1331. "$schema": "http://json-schema.org/draft-04/schema#",
  1332. "title": "Validator for misp events",
  1333. "id": "https://github.com/MISP/MISP/blob/2.4/format/2.4/schema.json",
  1334. "defs": {
  1335. "org": {
  1336. "type": "object",
  1337. "additionalProperties": false,
  1338. "properties": {
  1339. "id": {
  1340. "type": "string"
  1341. },
  1342. "name": {
  1343. "type": "string"
  1344. },
  1345. "uuid": {
  1346. "type": "string"
  1347. }
  1348. },
  1349. "required": [
  1350. "uuid"
  1351. ]
  1352. },
  1353. "orgc": {
  1354. "type": "object",
  1355. "additionalProperties": false,
  1356. "properties": {
  1357. "id": {
  1358. "type": "string"
  1359. },
  1360. "name": {
  1361. "type": "string"
  1362. },
  1363. "uuid": {
  1364. "type": "string"
  1365. }
  1366. },
  1367. "required": [
  1368. "uuid"
  1369. ]
  1370. },
  1371. "sharing_group": {
  1372. Dulaunoy & Iklody Expires April 24, 2021 [Page 37]
  1373. Internet-Draft MISP core format October 2020
  1374. "type": "object",
  1375. "additionalProperties": false,
  1376. "properties": {
  1377. "id": {
  1378. "type": "string"
  1379. },
  1380. "name": {
  1381. "type": "string"
  1382. },
  1383. "releasability": {
  1384. "type": "string"
  1385. },
  1386. "description": {
  1387. "type": "string"
  1388. },
  1389. "uuid": {
  1390. "type": "string"
  1391. },
  1392. "organisation_uuid": {
  1393. "type": "string"
  1394. },
  1395. "org_id": {
  1396. "type": "string"
  1397. },
  1398. "sync_user_id": {
  1399. "type": "string"
  1400. },
  1401. "active": {
  1402. "type": "boolean"
  1403. },
  1404. "created": {
  1405. "type": "string"
  1406. },
  1407. "modified": {
  1408. "type": "string"
  1409. },
  1410. "local": {
  1411. "type": "boolean"
  1412. },
  1413. "roaming": {
  1414. "type": "boolean"
  1415. },
  1416. "Organisation": {
  1417. "$ref": "#/defs/org"
  1418. },
  1419. "SharingGroupOrg": {
  1420. "type": "array",
  1421. "uniqueItems": true,
  1422. Dulaunoy & Iklody Expires April 24, 2021 [Page 38]
  1423. Internet-Draft MISP core format October 2020
  1424. "items": {
  1425. "$ref": "#/defs/sharing_group_org"
  1426. }
  1427. },
  1428. "SharingGroupServer": {
  1429. "type": "array",
  1430. "uniqueItems": true,
  1431. "items": {
  1432. "$ref": "#/defs/sharing_group_server"
  1433. }
  1434. },
  1435. "required": [
  1436. "uuid"
  1437. ]
  1438. },
  1439. "required": [
  1440. "uuid"
  1441. ]
  1442. },
  1443. "sharing_group_org": {
  1444. "type": "object",
  1445. "additionalProperties": false,
  1446. "properties": {
  1447. "id": {
  1448. "type": "string"
  1449. },
  1450. "sharing_group_id": {
  1451. "type": "string"
  1452. },
  1453. "org_id": {
  1454. "type": "string"
  1455. },
  1456. "extend": {
  1457. "type": "boolean"
  1458. },
  1459. "Organisation": {
  1460. "$ref": "#/defs/org"
  1461. }
  1462. }
  1463. },
  1464. "sharing_group_server": {
  1465. "type": "object",
  1466. "additionalProperties": false,
  1467. "properties": {
  1468. "id": {
  1469. "type": "string"
  1470. },
  1471. "sharing_group_id": {
  1472. Dulaunoy & Iklody Expires April 24, 2021 [Page 39]
  1473. Internet-Draft MISP core format October 2020
  1474. "type": "string"
  1475. },
  1476. "server_id": {
  1477. "type": "string"
  1478. },
  1479. "all_orgs": {
  1480. "type": "boolean"
  1481. },
  1482. "Server": {
  1483. "$ref": "#/defs/server"
  1484. }
  1485. }
  1486. },
  1487. "server": {
  1488. "type": "object",
  1489. "additionalProperties": false,
  1490. "properties": {
  1491. "id": {
  1492. "type": "string"
  1493. },
  1494. "url": {
  1495. "type": "string"
  1496. },
  1497. "name": {
  1498. "type": "string"
  1499. }
  1500. }
  1501. },
  1502. "object": {
  1503. "type": "object",
  1504. "additionalProperties": false,
  1505. "properties": {
  1506. "uuid": {
  1507. "type": "string"
  1508. },
  1509. "name": {
  1510. "type": "string"
  1511. },
  1512. "event_id": {
  1513. "type": "string"
  1514. },
  1515. "description": {
  1516. "type": "string"
  1517. },
  1518. "template_uuid": {
  1519. "type": "string"
  1520. },
  1521. "template_version": {
  1522. Dulaunoy & Iklody Expires April 24, 2021 [Page 40]
  1523. Internet-Draft MISP core format October 2020
  1524. "type": "string"
  1525. },
  1526. "id": {
  1527. "type": "string"
  1528. },
  1529. "meta-category": {
  1530. "type": "string"
  1531. },
  1532. "deleted": {
  1533. "type": "boolean"
  1534. },
  1535. "timestamp": {
  1536. "type": "string"
  1537. },
  1538. "first_seen": {
  1539. "type": "string"
  1540. },
  1541. "last_seen": {
  1542. "type": "string"
  1543. },
  1544. "distribution": {
  1545. "type": "string"
  1546. },
  1547. "sharing_group_id": {
  1548. "type": "string"
  1549. },
  1550. "comment": {
  1551. "type": "string"
  1552. },
  1553. "ObjectReference": {
  1554. "type": "array",
  1555. "uniqueItems": true,
  1556. "items": {
  1557. "$ref": "#/defs/objectreference"
  1558. }
  1559. },
  1560. "Attribute": {
  1561. "type": "array",
  1562. "uniqueItems": true,
  1563. "items": {
  1564. "$ref": "#/defs/attribute"
  1565. }
  1566. }
  1567. }
  1568. },
  1569. "sighthing": {
  1570. "type": "object",
  1571. "additionalProperties": false,
  1572. Dulaunoy & Iklody Expires April 24, 2021 [Page 41]
  1573. Internet-Draft MISP core format October 2020
  1574. "properties": {
  1575. "id": {
  1576. "type": "string"
  1577. },
  1578. "attribute_id": {
  1579. "type": "string"
  1580. },
  1581. "event_id": {
  1582. "type": "string"
  1583. },
  1584. "source": {
  1585. "type": "string"
  1586. },
  1587. "type": {
  1588. "type": "string"
  1589. },
  1590. "org_id": {
  1591. "type": "string"
  1592. },
  1593. "date_sighting": {
  1594. "type": "string"
  1595. },
  1596. "uuid": {
  1597. "type": "string"
  1598. },
  1599. "Organisation": {
  1600. "$ref": "#/defs/organisation"
  1601. }
  1602. }
  1603. },
  1604. "organisation": {
  1605. "type": "object",
  1606. "additionalProperties": false,
  1607. "properties": {
  1608. "id": {
  1609. "type": "string"
  1610. },
  1611. "uuid": {
  1612. "type": "string"
  1613. },
  1614. "name": {
  1615. "type": "string"
  1616. }
  1617. }
  1618. },
  1619. "objectreference": {
  1620. "type": "object",
  1621. "additionalProperties": false,
  1622. Dulaunoy & Iklody Expires April 24, 2021 [Page 42]
  1623. Internet-Draft MISP core format October 2020
  1624. "properties": {
  1625. "deleted": {
  1626. "type": "boolean"
  1627. },
  1628. "object_id": {
  1629. "type": "string"
  1630. },
  1631. "event_id": {
  1632. "type": "string"
  1633. },
  1634. "timestamp": {
  1635. "type": "string"
  1636. },
  1637. "id": {
  1638. "type": "string"
  1639. },
  1640. "uuid": {
  1641. "type": "string"
  1642. },
  1643. "type": {
  1644. "type": "string"
  1645. },
  1646. "referenced_id": {
  1647. "type": "string"
  1648. },
  1649. "referenced_uuid": {
  1650. "type": "string"
  1651. },
  1652. "referenced_type": {
  1653. "type": "string"
  1654. },
  1655. "relationship_type": {
  1656. "type": "string"
  1657. },
  1658. "object_uuid": {
  1659. "type": "string"
  1660. },
  1661. "comment": {
  1662. "type": "string"
  1663. },
  1664. "Object": {
  1665. "$ref": "#/defs/object"
  1666. }
  1667. }
  1668. },
  1669. "attribute": {
  1670. "type": "object",
  1671. "additionalProperties": false,
  1672. Dulaunoy & Iklody Expires April 24, 2021 [Page 43]
  1673. Internet-Draft MISP core format October 2020
  1674. "properties": {
  1675. "id": {
  1676. "type": "string"
  1677. },
  1678. "old_id": {
  1679. "type": "string"
  1680. },
  1681. "type": {
  1682. "type": "string"
  1683. },
  1684. "category": {
  1685. "type": "string"
  1686. },
  1687. "to_ids": {
  1688. "type": "boolean"
  1689. },
  1690. "uuid": {
  1691. "type": "string"
  1692. },
  1693. "event_id": {
  1694. "type": "string"
  1695. },
  1696. "event_uuid": {
  1697. "type": "string"
  1698. },
  1699. "proposal_to_delete": {
  1700. "type": "boolean"
  1701. },
  1702. "validationIssue": {
  1703. "type": "boolean"
  1704. },
  1705. "Org": {
  1706. "$ref": "#/defs/organisation"
  1707. },
  1708. "org_id": {
  1709. "type": "string"
  1710. },
  1711. "distribution": {
  1712. "type": "string"
  1713. },
  1714. "timestamp": {
  1715. "type": "string"
  1716. },
  1717. "first_seen": {
  1718. "type": "string"
  1719. },
  1720. "last_seen": {
  1721. "type": "string"
  1722. Dulaunoy & Iklody Expires April 24, 2021 [Page 44]
  1723. Internet-Draft MISP core format October 2020
  1724. },
  1725. "comment": {
  1726. "type": "string"
  1727. },
  1728. "sharing_group_id": {
  1729. "type": "string"
  1730. },
  1731. "deleted": {
  1732. "type": "boolean"
  1733. },
  1734. "disable_correlation": {
  1735. "type": "boolean"
  1736. },
  1737. "value": {
  1738. "type": "string"
  1739. },
  1740. "data": {
  1741. "type": "string"
  1742. },
  1743. "object_relation": {
  1744. "type": ["string", "null"]
  1745. },
  1746. "object_id": {
  1747. "type": "string"
  1748. },
  1749. "SharingGroup": {
  1750. "$ref": "#/defs/sharing_group"
  1751. },
  1752. "ShadowAttribute": {
  1753. "type": "array",
  1754. "uniqueItems": true,
  1755. "items": {
  1756. "$ref": "#/defs/attribute"
  1757. }
  1758. },
  1759. "Sighting": {
  1760. "type": "array",
  1761. "uniqueItems": true,
  1762. "items": {
  1763. "$ref": "#/defs/sighthing"
  1764. }
  1765. },
  1766. "Galaxy": {
  1767. "type": "array",
  1768. "uniqueItems": true,
  1769. "items": {
  1770. "$ref": "#/defs/galaxy"
  1771. }
  1772. Dulaunoy & Iklody Expires April 24, 2021 [Page 45]
  1773. Internet-Draft MISP core format October 2020
  1774. },
  1775. "Tag": {
  1776. "uniqueItems": true,
  1777. "type": "array",
  1778. "items": {
  1779. "$ref": "#/defs/tag"
  1780. }
  1781. }
  1782. }
  1783. },
  1784. "event": {
  1785. "type": "object",
  1786. "additionalProperties": false,
  1787. "properties": {
  1788. "id": {
  1789. "type": "string"
  1790. },
  1791. "orgc_id": {
  1792. "type": "string"
  1793. },
  1794. "org_id": {
  1795. "type": "string"
  1796. },
  1797. "date": {
  1798. "type": "string"
  1799. },
  1800. "extends_uuid": {
  1801. "type": "string"
  1802. },
  1803. "threat_level_id": {
  1804. "type": "string"
  1805. },
  1806. "info": {
  1807. "type": "string"
  1808. },
  1809. "published": {
  1810. "type": "boolean"
  1811. },
  1812. "uuid": {
  1813. "type": "string"
  1814. },
  1815. "attribute_count": {
  1816. "type": "string"
  1817. },
  1818. "analysis": {
  1819. "type": "string"
  1820. },
  1821. "timestamp": {
  1822. Dulaunoy & Iklody Expires April 24, 2021 [Page 46]
  1823. Internet-Draft MISP core format October 2020
  1824. "type": "string"
  1825. },
  1826. "distribution": {
  1827. "type": "string"
  1828. },
  1829. "proposal_email_lock": {
  1830. "type": "boolean"
  1831. },
  1832. "locked": {
  1833. "type": "boolean"
  1834. },
  1835. "publish_timestamp": {
  1836. "type": "string"
  1837. },
  1838. "sharing_group_id": {
  1839. "type": "string"
  1840. },
  1841. "disable_correlation": {
  1842. "type": "boolean"
  1843. },
  1844. "event_creator_email": {
  1845. "type": "string"
  1846. },
  1847. "Org": {
  1848. "$ref": "#/defs/org"
  1849. },
  1850. "Orgc": {
  1851. "$ref": "#/defs/org"
  1852. },
  1853. "SharingGroup": {
  1854. "$ref": "#/defs/sharing_group"
  1855. },
  1856. "Attribute": {
  1857. "type": "array",
  1858. "uniqueItems": true,
  1859. "items": {
  1860. "$ref": "#/defs/attribute"
  1861. }
  1862. },
  1863. "ShadowAttribute": {
  1864. "type": "array",
  1865. "uniqueItems": true,
  1866. "items": {
  1867. "$ref": "#/defs/attribute"
  1868. }
  1869. },
  1870. "RelatedEvent": {
  1871. "type": "array",
  1872. Dulaunoy & Iklody Expires April 24, 2021 [Page 47]
  1873. Internet-Draft MISP core format October 2020
  1874. "uniqueItems": true,
  1875. "items": {
  1876. "type": "object",
  1877. "additionalProperties": false,
  1878. "properties": {
  1879. "Event":{
  1880. "$ref": "#/defs/event"
  1881. }
  1882. }
  1883. }
  1884. },
  1885. "Galaxy": {
  1886. "type": "array",
  1887. "uniqueItems": true,
  1888. "items": {
  1889. "$ref": "#/defs/galaxy"
  1890. }
  1891. },
  1892. "Object": {
  1893. "type": "array",
  1894. "uniqueItems": true,
  1895. "items": {
  1896. "$ref": "#/defs/object"
  1897. }
  1898. },
  1899. "Tag": {
  1900. "type": "array",
  1901. "uniqueItems": true,
  1902. "items": {
  1903. "$ref": "#/defs/tag"
  1904. }
  1905. }
  1906. }
  1907. },
  1908. "tag": {
  1909. "type": "object",
  1910. "additionalProperties": false,
  1911. "properties": {
  1912. "id": {
  1913. "type": "string"
  1914. },
  1915. "name": {
  1916. "type": "string"
  1917. },
  1918. "colour": {
  1919. "type": "string"
  1920. },
  1921. "exportable": {
  1922. Dulaunoy & Iklody Expires April 24, 2021 [Page 48]
  1923. Internet-Draft MISP core format October 2020
  1924. "type": "boolean"
  1925. },
  1926. "hide_tag": {
  1927. "type": "boolean"
  1928. },
  1929. "user_id": {
  1930. "type": "string"
  1931. }
  1932. }
  1933. },
  1934. "galaxy": {
  1935. "type": "object",
  1936. "additionalProperties": false,
  1937. "properties": {
  1938. "id": {
  1939. "type": "string"
  1940. },
  1941. "uuid": {
  1942. "type": "string"
  1943. },
  1944. "name": {
  1945. "type": "string"
  1946. },
  1947. "type": {
  1948. "type": "string"
  1949. },
  1950. "description": {
  1951. "type": "string"
  1952. },
  1953. "version": {
  1954. "type": "string"
  1955. },
  1956. "icon": {
  1957. "type": "string"
  1958. },
  1959. "namespace": {
  1960. "type": "string"
  1961. },
  1962. "GalaxyCluster": {
  1963. "type": "array",
  1964. "uniqueItems": true,
  1965. "items": {
  1966. "$ref": "#/defs/galaxy_cluster"
  1967. }
  1968. }
  1969. }
  1970. },
  1971. "galaxy_cluster": {
  1972. Dulaunoy & Iklody Expires April 24, 2021 [Page 49]
  1973. Internet-Draft MISP core format October 2020
  1974. "type": "object",
  1975. "additionalProperties": false,
  1976. "properties": {
  1977. "id": {
  1978. "type": "string"
  1979. },
  1980. "uuid": {
  1981. "type": "string"
  1982. },
  1983. "type": {
  1984. "type": "string"
  1985. },
  1986. "value": {
  1987. "type": "string"
  1988. },
  1989. "tag_name": {
  1990. "type": "string"
  1991. },
  1992. "description": {
  1993. "type": "string"
  1994. },
  1995. "galaxy_id": {
  1996. "type": "string"
  1997. },
  1998. "version": {
  1999. "type": "string"
  2000. },
  2001. "source": {
  2002. "type": "string"
  2003. },
  2004. "authors": {
  2005. "type": "array",
  2006. "uniqueItems": true,
  2007. "items": {
  2008. "type": "string"
  2009. }
  2010. },
  2011. "tag_id": {
  2012. "type": "string"
  2013. },
  2014. "meta": {
  2015. "type": "object"
  2016. }
  2017. }
  2018. }
  2019. },
  2020. "type": "object",
  2021. "properties": {
  2022. Dulaunoy & Iklody Expires April 24, 2021 [Page 50]
  2023. Internet-Draft MISP core format October 2020
  2024. "Event": {
  2025. "$ref": "#/defs/event"
  2026. }
  2027. },
  2028. "required": [
  2029. "Event"
  2030. ]
  2031. }
  2032. 4. Manifest
  2033. MISP events can be shared over an HTTP repository, a file package or
  2034. USB key. A manifest file is used to provide an index of MISP events
  2035. allowing to only fetch the recently updated files without the need to
  2036. parse each json file.
  2037. 4.1. Format
  2038. A manifest file is a simple JSON file named manifest.json in a
  2039. directory where the MISP events are located. Each MISP event is a
  2040. file located in the same directory with the event uuid as filename
  2041. with the json extension.
  2042. The manifest format is a JSON object composed of a dictionary where
  2043. the field is the uuid of the event.
  2044. Each uuid is composed of a JSON object with the following fields
  2045. which came from the original event referenced by the same uuid:
  2046. o info (MUST)
  2047. o Orgc object (MUST)
  2048. o analysis (SHALL)
  2049. o timestamp (MUST)
  2050. o date (MUST)
  2051. o threat_level_id (SHALL)
  2052. In addition to the fields originating from the event, the following
  2053. fields can be added:
  2054. o integrity:sha256 represents the SHA256 value in hexadecimal
  2055. representation of the associated MISP event file to ensure
  2056. integrity of the file. (SHOULD)
  2057. Dulaunoy & Iklody Expires April 24, 2021 [Page 51]
  2058. Internet-Draft MISP core format October 2020
  2059. o integrity:pgp represents a detached PGP signature [RFC4880] of the
  2060. associated MISP event file to ensure integrity of the file.
  2061. (SHOULD)
  2062. If a detached PGP signature is used for each MISP event, a detached
  2063. PGP signature is a MUST to ensure integrity of the manifest file. A
  2064. detached PGP signature for a manifest file is a manifest.json.asc
  2065. file containing the PGP signature.
  2066. 4.1.1. Sample Manifest
  2067. {
  2068. "57c6ac4c-c60c-4f79-a38f-b666950d210f": {
  2069. "info": "Malspam 2016-08-31 (.wsf in .zip) - campaign: Photo",
  2070. "Orgc": {
  2071. "id": "2",
  2072. "name": "CIRCL",
  2073. "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f"
  2074. },
  2075. "analysis": "0",
  2076. "Tag": [
  2077. {
  2078. "colour": "#3d7a00",
  2079. "name": "circl:incident-classification=\"malware\""
  2080. },
  2081. {
  2082. "colour": "#ffffff",
  2083. "name": "tlp:white"
  2084. }
  2085. ],
  2086. "timestamp": "1472638251",
  2087. "date": "2016-08-31",
  2088. "threat_level_id": "3"
  2089. },
  2090. "5720accd-dd28-45f8-80e5-4605950d210f": {
  2091. "info": "Malspam 2016-04-27 - Locky",
  2092. "Orgc": {
  2093. "id": "2",
  2094. "name": "CIRCL"
  2095. },
  2096. "analysis": "2",
  2097. "Tag": [
  2098. {
  2099. "colour": "#ffffff",
  2100. "name": "tlp:white"
  2101. },
  2102. {
  2103. "colour": "#3d7a00",
  2104. Dulaunoy & Iklody Expires April 24, 2021 [Page 52]
  2105. Internet-Draft MISP core format October 2020
  2106. "name": "circl:incident-classification=\"malware\""
  2107. },
  2108. {
  2109. "colour": "#2c4f00",
  2110. "name": "malware_classification:malware-category=\"Ransomware\""
  2111. }
  2112. ],
  2113. "timestamp": "1461764231",
  2114. "date": "2016-04-27",
  2115. "threat_level_id": "3"
  2116. }
  2117. }
  2118. 5. Implementation
  2119. MISP format is implemented by different software including the MISP
  2120. threat sharing platform and libraries like PyMISP [MISP-P].
  2121. Implementations use the format as an export/import mechanism, staging
  2122. transport format or synchronisation format as used in the MISP core
  2123. platform. MISP format doesn't impose any restriction on the data
  2124. representation of the format in data-structure of other
  2125. implementations.
  2126. 6. Security Considerations
  2127. MISP events might contain sensitive or confidential information.
  2128. Adequate access control and encryption measures shall be implemented
  2129. to ensure the confidentiality of the MISP events.
  2130. Adversaries might include malicious content in MISP events and
  2131. attributes. Implementation MUST consider the input of malicious
  2132. inputs beside the standard threat information that might already
  2133. include malicious intended inputs.
  2134. 7. Acknowledgements
  2135. The authors wish to thank all the MISP community who are supporting
  2136. the creation of open standards in threat intelligence sharing. A
  2137. special thank to Nicolas Bareil for the review of the JSON Schema.
  2138. 8. References
  2139. 9. References
  2140. Dulaunoy & Iklody Expires April 24, 2021 [Page 53]
  2141. Internet-Draft MISP core format October 2020
  2142. 9.1. Normative References
  2143. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
  2144. Requirement Levels", BCP 14, RFC 2119,
  2145. DOI 10.17487/RFC2119, March 1997,
  2146. <https://www.rfc-editor.org/info/rfc2119>.
  2147. [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
  2148. Unique IDentifier (UUID) URN Namespace", RFC 4122,
  2149. DOI 10.17487/RFC4122, July 2005,
  2150. <https://www.rfc-editor.org/info/rfc4122>.
  2151. [RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.
  2152. Thayer, "OpenPGP Message Format", RFC 4880,
  2153. DOI 10.17487/RFC4880, November 2007,
  2154. <https://www.rfc-editor.org/info/rfc4880>.
  2155. [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
  2156. Interchange Format", STD 90, RFC 8259,
  2157. DOI 10.17487/RFC8259, December 2017,
  2158. <https://www.rfc-editor.org/info/rfc8259>.
  2159. 9.2. Informative References
  2160. [JSON-SCHEMA]
  2161. "JSON Schema: A Media Type for Describing JSON Documents",
  2162. 2016,
  2163. <https://tools.ietf.org/html/draft-wright-json-schema>.
  2164. [MISP-P] MISP, "MISP Project - Open Source Threat Intelligence
  2165. Platform and Open Standards For Threat Information
  2166. Sharing", <https://github.com/MISP>.
  2167. [MISP-R] MISP, "MISP Object Relationship Types - common vocabulary
  2168. of relationships", <https://github.com/MISP/misp-
  2169. objects/tree/master/relationships>.
  2170. [MISP-T] MISP, "MISP Taxonomies - shared and common vocabularies of
  2171. tags", <https://github.com/MISP/misp-taxonomies>.
  2172. Authors' Addresses
  2173. Dulaunoy & Iklody Expires April 24, 2021 [Page 54]
  2174. Internet-Draft MISP core format October 2020
  2175. Alexandre Dulaunoy
  2176. Computer Incident Response Center Luxembourg
  2177. 16, bd d'Avranches
  2178. Luxembourg L-1160
  2179. Luxembourg
  2180. Phone: +352 247 88444
  2181. Email: alexandre.dulaunoy@circl.lu
  2182. Andras Iklody
  2183. Computer Incident Response Center Luxembourg
  2184. 16, bd d'Avranches
  2185. Luxembourg L-1160
  2186. Luxembourg
  2187. Phone: +352 247 88444
  2188. Email: andras.iklody@circl.lu
  2189. Dulaunoy & Iklody Expires April 24, 2021 [Page 55]