2016-10-01 12:18:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
Network Working Group A. Dulaunoy
|
2016-10-01 20:46:27 +02:00
|
|
|
|
Internet-Draft A. Iklody
|
|
|
|
|
Intended status: Informational CIRCL
|
|
|
|
|
Expires: April 4, 2017 October 1, 2016
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MISP core format
|
|
|
|
|
draft-dulaunoy-misp-core-format
|
|
|
|
|
|
|
|
|
|
Abstract
|
|
|
|
|
|
|
|
|
|
This document describes the MISP core format used to exchange
|
|
|
|
|
indicators and threat information between MISP (Malware Information
|
|
|
|
|
and threat Sharing Platform) instances. The JSON format includes the
|
|
|
|
|
overall structure along with the semantic associated for each
|
|
|
|
|
respective key. The format is described to support other
|
|
|
|
|
implementations which reuse the format and ensuring an
|
|
|
|
|
interoperability with existing MISP [MISP-P] software and other
|
2016-10-01 12:47:20 +02:00
|
|
|
|
Threat Intelligence Platforms.
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
|
|
|
|
Status of This Memo
|
|
|
|
|
|
|
|
|
|
This Internet-Draft is submitted in full conformance with the
|
|
|
|
|
provisions of BCP 78 and BCP 79.
|
|
|
|
|
|
|
|
|
|
Internet-Drafts are working documents of the Internet Engineering
|
|
|
|
|
Task Force (IETF). Note that other groups may also distribute
|
|
|
|
|
working documents as Internet-Drafts. The list of current Internet-
|
|
|
|
|
Drafts is at http://datatracker.ietf.org/drafts/current/.
|
|
|
|
|
|
|
|
|
|
Internet-Drafts are draft documents valid for a maximum of six months
|
|
|
|
|
and may be updated, replaced, or obsoleted by other documents at any
|
|
|
|
|
time. It is inappropriate to use Internet-Drafts as reference
|
|
|
|
|
material or to cite them other than as "work in progress."
|
|
|
|
|
|
|
|
|
|
This Internet-Draft will expire on April 4, 2017.
|
|
|
|
|
|
|
|
|
|
Copyright Notice
|
|
|
|
|
|
|
|
|
|
Copyright (c) 2016 IETF Trust and the persons identified as the
|
|
|
|
|
document authors. All rights reserved.
|
|
|
|
|
|
|
|
|
|
This document is subject to BCP 78 and the IETF Trust's Legal
|
|
|
|
|
Provisions Relating to IETF Documents
|
|
|
|
|
(http://trustee.ietf.org/license-info) in effect on the date of
|
|
|
|
|
publication of this document. Please review these documents
|
|
|
|
|
carefully, as they describe your rights and restrictions with respect
|
|
|
|
|
to this document. Code Components extracted from this document must
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-01 20:46:27 +02:00
|
|
|
|
Dulaunoy & Iklody Expires April 4, 2017 [Page 1]
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
|
|
|
|
Internet-Draft MISP core format October 2016
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
include Simplified BSD License text as described in Section 4.e of
|
|
|
|
|
the Trust Legal Provisions and are provided without warranty as
|
|
|
|
|
described in the Simplified BSD License.
|
|
|
|
|
|
|
|
|
|
Table of Contents
|
|
|
|
|
|
|
|
|
|
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
|
2016-10-01 17:50:05 +02:00
|
|
|
|
1.1. Conventions and Terminology . . . . . . . . . . . . . . . 2
|
2016-10-01 12:18:59 +02:00
|
|
|
|
2. Format . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
|
|
|
|
|
2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 2
|
2016-10-01 17:50:05 +02:00
|
|
|
|
2.2. Event . . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
|
|
|
|
2.2.1. Event Attributes . . . . . . . . . . . . . . . . . . 3
|
2016-10-05 09:01:33 +02:00
|
|
|
|
2.3. Objects . . . . . . . . . . . . . . . . . . . . . . . . . 5
|
|
|
|
|
2.3.1. Org . . . . . . . . . . . . . . . . . . . . . . . . . 5
|
|
|
|
|
2.3.2. Orgc . . . . . . . . . . . . . . . . . . . . . . . . 6
|
|
|
|
|
3. References . . . . . . . . . . . . . . . . . . . . . . . . . 6
|
|
|
|
|
3.1. Normative References . . . . . . . . . . . . . . . . . . 6
|
2016-10-03 07:56:27 +02:00
|
|
|
|
3.2. Informative References . . . . . . . . . . . . . . . . . 6
|
2016-10-05 10:15:41 +02:00
|
|
|
|
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 7
|
|
|
|
|
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
|
|
|
|
1. Introduction
|
|
|
|
|
|
|
|
|
|
Sharing threat information became a fundamental requirements in the
|
|
|
|
|
Internet, security and intelligence community at large. Threat
|
|
|
|
|
information can include indicators of compromise, malicious file
|
|
|
|
|
indicators, financial fraud indicators or even detailed information
|
|
|
|
|
about a threat actor. MISP started as an open source project in late
|
2016-10-01 12:47:20 +02:00
|
|
|
|
2011 and the MISP format started to be widely used as an exchange
|
|
|
|
|
format within the community in the past years. The aim of this
|
|
|
|
|
document is to describe the specification and the MISP core format.
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
1.1. Conventions and Terminology
|
|
|
|
|
|
|
|
|
|
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
|
|
|
|
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
|
|
|
|
document are to be interpreted as described in RFC 2119 [RFC2119].
|
|
|
|
|
|
2016-10-01 12:18:59 +02:00
|
|
|
|
2. Format
|
|
|
|
|
|
|
|
|
|
2.1. Overview
|
|
|
|
|
|
|
|
|
|
The MISP core format is in the JSON [RFC4627] format. In MISP, an
|
|
|
|
|
event is composed of a single JSON object.
|
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
A capitalized key (like Event, Org) represent a data model and a non-
|
|
|
|
|
capitalized key is just an attribute. This nomenclature can support
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-01 20:46:27 +02:00
|
|
|
|
Dulaunoy & Iklody Expires April 4, 2017 [Page 2]
|
2016-10-01 17:50:05 +02:00
|
|
|
|
|
|
|
|
|
Internet-Draft MISP core format October 2016
|
|
|
|
|
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
an implementation to represent the MISP format in another data
|
|
|
|
|
structure.
|
|
|
|
|
|
2016-10-01 12:18:59 +02:00
|
|
|
|
2.2. Event
|
|
|
|
|
|
2016-10-01 12:47:20 +02:00
|
|
|
|
An event is a simple meta structure scheme where attributes and meta-
|
|
|
|
|
data are embedded to compose a coherent set of indicators. An event
|
|
|
|
|
can be composed from an incident, a security analysis report or a
|
|
|
|
|
specific threat actor analysis. The meaning of an event only depends
|
|
|
|
|
of the information embedded in the event.
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
2.2.1. Event Attributes
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
2.2.1.1. uuid
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of
|
|
|
|
|
the event. The uuid MUST be preserved for any updates or transfer of
|
|
|
|
|
the same event. UUID version 4 is RECOMMENDED when assigning it to a
|
|
|
|
|
new event.
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
uuid is represented as a JSON string. uuid MUST be present.
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
2.2.1.2. id
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
id represents the human-readable identifier associated to the event
|
|
|
|
|
for a specific MISP instance.
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
id is represented as a JSON string. id SHALL be present.
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
2.2.1.3. published
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
published represents the event publication state. If the event was
|
|
|
|
|
published, the published value MUST be true. In any other
|
|
|
|
|
publication state, the published value MUST be false.
|
|
|
|
|
|
|
|
|
|
published is represented as a JSON boolean. published MUST be
|
|
|
|
|
present.
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 20:46:27 +02:00
|
|
|
|
2.2.1.4. info
|
|
|
|
|
|
|
|
|
|
info represents the information field of the event. info a free-text
|
|
|
|
|
value to provide a human-readable summary of the event. info SHOULD
|
|
|
|
|
NOT be bigger than 256 characters.
|
|
|
|
|
|
|
|
|
|
info is represented as a JSON string. info MUST be present.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dulaunoy & Iklody Expires April 4, 2017 [Page 3]
|
|
|
|
|
|
|
|
|
|
Internet-Draft MISP core format October 2016
|
|
|
|
|
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
2.2.1.5. threat_level_id
|
|
|
|
|
|
|
|
|
|
threat_level_id represents the threat level.
|
|
|
|
|
|
|
|
|
|
0:
|
2016-10-01 20:46:27 +02:00
|
|
|
|
Undefined
|
|
|
|
|
|
|
|
|
|
1:
|
|
|
|
|
Low
|
|
|
|
|
|
|
|
|
|
2:
|
|
|
|
|
Medium
|
|
|
|
|
|
|
|
|
|
3:
|
|
|
|
|
High
|
|
|
|
|
|
|
|
|
|
If a higher granularity is required, a MISP taxonomy applied as a Tag
|
|
|
|
|
SHOULD be preferred.
|
|
|
|
|
|
|
|
|
|
threat_level_id is represented as a JSON string. threat_level_id
|
|
|
|
|
SHALL be present.
|
|
|
|
|
|
|
|
|
|
2.2.1.6. date
|
|
|
|
|
|
2016-10-03 11:00:55 +02:00
|
|
|
|
date represents a reference date to the event in ISO 8601 format
|
|
|
|
|
(date only: YYYY-MM-DD). This date corresponds to the date the event
|
|
|
|
|
occured, which may be in the past.
|
2016-10-01 20:46:27 +02:00
|
|
|
|
|
|
|
|
|
date is represented as a JSON string.
|
|
|
|
|
|
2016-10-03 07:52:25 +02:00
|
|
|
|
2.2.1.7. timestamp
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
timestamp represents a reference time when the event, or one of the
|
|
|
|
|
attributes within the event was created, or last updated/edited on
|
|
|
|
|
the instance. timestamp is expressed in seconds (decimal) since 1st
|
|
|
|
|
of January 1970 (Unix timestamp). The time zone MUST be UTC.
|
2016-10-03 07:52:25 +02:00
|
|
|
|
|
2016-10-03 07:56:27 +02:00
|
|
|
|
timestamp is represented as a JSON string. timestamp MUST be present.
|
2016-10-03 07:52:25 +02:00
|
|
|
|
|
|
|
|
|
2.2.1.8. publish_timestamp
|
|
|
|
|
|
|
|
|
|
publish_timestamp represents a reference time when the event was
|
2016-10-03 11:24:40 +02:00
|
|
|
|
published on the instance. published_timestamp is expressed in
|
|
|
|
|
seconds (decimal) since 1st of January 1970 (Unix timestamp). At
|
|
|
|
|
each publication of an event, publish_timestamp MUST be updated. The
|
|
|
|
|
time zone MUST be UTC.
|
2016-10-03 07:52:25 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dulaunoy & Iklody Expires April 4, 2017 [Page 4]
|
|
|
|
|
|
|
|
|
|
Internet-Draft MISP core format October 2016
|
|
|
|
|
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
publish_timestamp is represented as a JSON string. publish_timestamp
|
|
|
|
|
MUST be present.
|
|
|
|
|
|
2016-10-03 07:56:27 +02:00
|
|
|
|
2.2.1.9. org_id
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
org_id represents a human-readable identifier referencing an Org
|
|
|
|
|
object of the organization which generated the event.
|
|
|
|
|
|
|
|
|
|
The org_id MUST be updated when the event is generated by a new
|
|
|
|
|
instance.
|
2016-10-03 07:56:27 +02:00
|
|
|
|
|
2016-10-03 07:52:25 +02:00
|
|
|
|
org_id is represented as a JSON string. org_id MUST be present.
|
|
|
|
|
|
|
|
|
|
2.2.1.10. orgc_id
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
orgc_id represents a human-readable identifier referencing an Orgc
|
|
|
|
|
object of the organization which created the event.
|
|
|
|
|
|
|
|
|
|
The orgc_id and Orc object MUST be preserved for any updates or
|
|
|
|
|
transfer of the same event.
|
2016-10-03 07:52:25 +02:00
|
|
|
|
|
|
|
|
|
orgc_id is represented as a JSON string. orgc_id MUST be present.
|
|
|
|
|
|
2016-10-03 07:56:27 +02:00
|
|
|
|
2.2.1.11. attribute_count
|
|
|
|
|
|
|
|
|
|
attribute_count represents the number of attributes in the event.
|
|
|
|
|
attribute_count is expressed in decimal.
|
|
|
|
|
|
|
|
|
|
attribute_count is represented as a JSON string. attribute_count
|
|
|
|
|
SHALL be present.
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
2.3. Objects
|
|
|
|
|
|
|
|
|
|
2.3.1. Org
|
|
|
|
|
|
|
|
|
|
An Org object is composed of an uuid, name and id.
|
|
|
|
|
|
|
|
|
|
The uuid represents the Universally Unique IDentifier (UUID)
|
2016-10-05 10:15:41 +02:00
|
|
|
|
[RFC4122] of the organization. The organization UUID is globally
|
|
|
|
|
assigned to an organization and SHALL be kept overtime.
|
2016-10-05 09:01:33 +02:00
|
|
|
|
|
|
|
|
|
The name is a readable description of the organization and SHOULD be
|
2016-10-05 10:15:41 +02:00
|
|
|
|
present. The id is a human-readable identifier generated by the
|
|
|
|
|
instance and used as reference in the event.
|
2016-10-05 09:01:33 +02:00
|
|
|
|
|
2016-10-05 10:15:41 +02:00
|
|
|
|
uuid, name and id are represented as a JSON string. uuid, name and id
|
|
|
|
|
MUST be present.
|
2016-10-05 09:01:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dulaunoy & Iklody Expires April 4, 2017 [Page 5]
|
|
|
|
|
|
|
|
|
|
Internet-Draft MISP core format October 2016
|
|
|
|
|
|
|
|
|
|
|
2016-10-05 10:15:41 +02:00
|
|
|
|
2.3.1.1. Sample Org Object
|
|
|
|
|
|
|
|
|
|
"Org": {
|
|
|
|
|
"id": "2",
|
|
|
|
|
"name": "CIRCL",
|
|
|
|
|
"uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f"
|
|
|
|
|
}
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
2.3.2. Orgc
|
|
|
|
|
|
|
|
|
|
An Orgc object is composed of an uuid, name and id.
|
|
|
|
|
|
|
|
|
|
The uuid MUST be preserved for any updates or transfer of the same
|
|
|
|
|
event. UUID version 4 is RECOMMENDED when assigning it to a new
|
2016-10-05 10:15:41 +02:00
|
|
|
|
event. The organization UUID is globally assigned to an organization
|
|
|
|
|
and SHALL be kept overtime.
|
2016-10-05 09:01:33 +02:00
|
|
|
|
|
|
|
|
|
The name is a readable description of the organization and SHOULD be
|
2016-10-05 10:15:41 +02:00
|
|
|
|
present. The id is a human-readable identifier generated by the
|
|
|
|
|
instance and used as reference in the event.
|
2016-10-05 09:01:33 +02:00
|
|
|
|
|
2016-10-05 10:15:41 +02:00
|
|
|
|
uuid, name and id are represented as a JSON string. uuid, name and id
|
|
|
|
|
MUST be present.
|
2016-10-05 09:01:33 +02:00
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
3. References
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 12:47:20 +02:00
|
|
|
|
3.1. Normative References
|
|
|
|
|
|
2016-10-01 17:50:05 +02:00
|
|
|
|
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
|
|
|
|
Requirement Levels", BCP 14, RFC 2119,
|
|
|
|
|
DOI 10.17487/RFC2119, March 1997,
|
|
|
|
|
<http://www.rfc-editor.org/info/rfc2119>.
|
|
|
|
|
|
|
|
|
|
[RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
|
|
|
|
|
Unique IDentifier (UUID) URN Namespace", RFC 4122,
|
|
|
|
|
DOI 10.17487/RFC4122, July 2005,
|
|
|
|
|
<http://www.rfc-editor.org/info/rfc4122>.
|
|
|
|
|
|
2016-10-01 20:46:27 +02:00
|
|
|
|
[RFC4627] Crockford, D., "The application/json Media Type for
|
|
|
|
|
JavaScript Object Notation (JSON)", RFC 4627,
|
|
|
|
|
DOI 10.17487/RFC4627, July 2006,
|
|
|
|
|
<http://www.rfc-editor.org/info/rfc4627>.
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
3.2. Informative References
|
2016-10-01 20:46:27 +02:00
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
[MISP-P] MISP, , "MISP Project - Malware Information Sharing
|
|
|
|
|
Platform and Threat Sharing", <https://github.com/MISP>.
|
2016-10-01 20:46:27 +02:00
|
|
|
|
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
Dulaunoy & Iklody Expires April 4, 2017 [Page 6]
|
|
|
|
|
|
|
|
|
|
Internet-Draft MISP core format October 2016
|
2016-10-03 07:52:25 +02:00
|
|
|
|
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-05 10:15:41 +02:00
|
|
|
|
Appendix A. Acknowledgements
|
|
|
|
|
|
|
|
|
|
The authors wish to thank all the MISP community to support the
|
|
|
|
|
creation of open standards in threat intelligence sharing.
|
|
|
|
|
|
|
|
|
|
Authors' Addresses
|
|
|
|
|
|
2016-10-01 12:18:59 +02:00
|
|
|
|
Alexandre Dulaunoy
|
|
|
|
|
Computer Incident Response Center Luxembourg
|
|
|
|
|
41, avenue de la gare
|
|
|
|
|
Luxembourg L-1611
|
|
|
|
|
Luxembourg
|
|
|
|
|
|
|
|
|
|
Phone: +352 247 88444
|
|
|
|
|
Email: alexandre.dulaunoy@circl.lu
|
|
|
|
|
|
|
|
|
|
|
2016-10-01 20:46:27 +02:00
|
|
|
|
Andras Iklody
|
|
|
|
|
Computer Incident Response Center Luxembourg
|
|
|
|
|
41, avenue de la gare
|
|
|
|
|
Luxembourg L-1611
|
|
|
|
|
Luxembourg
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
2016-10-01 20:46:27 +02:00
|
|
|
|
Phone: +352 247 88444
|
|
|
|
|
Email: andras.iklody@circl.lu
|
2016-10-01 12:18:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-10-03 07:52:25 +02:00
|
|
|
|
|
|
|
|
|
|
2016-10-05 09:01:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dulaunoy & Iklody Expires April 4, 2017 [Page 7]
|