mirror of https://github.com/MISP/misp-rfc
				
				
				
			
		
			
				
	
	
		
			449 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			449 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Network Working Group                                        A. Dulaunoy
 | ||
| Internet-Draft                                                 A. Iklody
 | ||
| Intended status: Informational                                     CIRCL
 | ||
| Expires: April 11, 2019                                  October 8, 2018
 | ||
| 
 | ||
| 
 | ||
|                            MISP query format
 | ||
|                     draft-dulaunoy-misp-core-format
 | ||
| 
 | ||
| Abstract
 | ||
| 
 | ||
|    This document describes the MISP query format used to search MISP
 | ||
|    (Malware Information and threat Sharing Platform) [MISP-P] threat
 | ||
|    intelligence instances.  MISP query format is a simple format used to
 | ||
|    query MISP instances over a REST (Representational State Transfer )
 | ||
|    interface.  The query format includes the JSON format to describe the
 | ||
|    query and the minimal API access to perform the query.  The JSON
 | ||
|    format includes the overall structure along with the semantic
 | ||
|    associated for each respective key.  The goal of the format is to
 | ||
|    query MISP threat intelligence instances can feed and integrate with
 | ||
|    network security devices (such as firewall, network intrusion
 | ||
|    detection system, routers, SIEMs), endpoint security devices or
 | ||
|    monitoring devices.
 | ||
| 
 | ||
| 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 https://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 11, 2019.
 | ||
| 
 | ||
| Copyright Notice
 | ||
| 
 | ||
|    Copyright (c) 2018 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
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Dulaunoy & Iklody        Expires April 11, 2019                 [Page 1]
 | ||
| 
 | ||
| Internet-Draft              MISP query format               October 2018
 | ||
| 
 | ||
| 
 | ||
|    (https://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
 | ||
|    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  . . . . . . . . . . . . . . . . . . . . . . . .   3
 | ||
|      1.1.  Conventions and Terminology . . . . . . . . . . . . . . .   3
 | ||
|    2.  Format  . . . . . . . . . . . . . . . . . . . . . . . . . . .   3
 | ||
|      2.1.  Overview  . . . . . . . . . . . . . . . . . . . . . . . .   3
 | ||
|      2.2.  query format criteria . . . . . . . . . . . . . . . . . .   3
 | ||
|        2.2.1.  returnFormat  . . . . . . . . . . . . . . . . . . . .   3
 | ||
|        2.2.2.  limit . . . . . . . . . . . . . . . . . . . . . . . .   4
 | ||
|        2.2.3.  page  . . . . . . . . . . . . . . . . . . . . . . . .   4
 | ||
|        2.2.4.  value . . . . . . . . . . . . . . . . . . . . . . . .   4
 | ||
|        2.2.5.  type  . . . . . . . . . . . . . . . . . . . . . . . .   4
 | ||
|        2.2.6.  category  . . . . . . . . . . . . . . . . . . . . . .   5
 | ||
|        2.2.7.  org . . . . . . . . . . . . . . . . . . . . . . . . .   5
 | ||
|        2.2.8.  tags  . . . . . . . . . . . . . . . . . . . . . . . .   5
 | ||
|        2.2.9.  quickfilter . . . . . . . . . . . . . . . . . . . . .   5
 | ||
|        2.2.10. from  . . . . . . . . . . . . . . . . . . . . . . . .   5
 | ||
|        2.2.11. to  . . . . . . . . . . . . . . . . . . . . . . . . .   6
 | ||
|        2.2.12. last  . . . . . . . . . . . . . . . . . . . . . . . .   6
 | ||
|        2.2.13. eventid . . . . . . . . . . . . . . . . . . . . . . .   6
 | ||
|        2.2.14. withAttachments . . . . . . . . . . . . . . . . . . .   6
 | ||
|        2.2.15. uuid  . . . . . . . . . . . . . . . . . . . . . . . .   6
 | ||
|        2.2.16. publish_timestamp . . . . . . . . . . . . . . . . . .   6
 | ||
|        2.2.17. timestamp . . . . . . . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.18. published . . . . . . . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.19. enforceWarninglist  . . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.20. to_ids  . . . . . . . . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.21. deleted . . . . . . . . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.22. includeEventUuid  . . . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.23. event_timestamp . . . . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.24. sgReferenceOnly . . . . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.25. eventinfo . . . . . . . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.26. searchall . . . . . . . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.27. requested_attributes  . . . . . . . . . . . . . . . .   7
 | ||
|        2.2.28. includeContext  . . . . . . . . . . . . . . . . . . .   7
 | ||
|    3.  Security Considerations . . . . . . . . . . . . . . . . . . .   7
 | ||
|    4.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   7
 | ||
|    5.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
 | ||
|      5.1.  Normative References  . . . . . . . . . . . . . . . . . .   8
 | ||
|      5.2.  Informative References  . . . . . . . . . . . . . . . . .   8
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Dulaunoy & Iklody        Expires April 11, 2019                 [Page 2]
 | ||
| 
 | ||
| Internet-Draft              MISP query format               October 2018
 | ||
| 
 | ||
| 
 | ||
|    Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   8
 | ||
| 
 | ||
| 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 [MISP-P] started as an open source
 | ||
|    project in late 2011 and the MISP format started to be widely used as
 | ||
|    an exchange format within the community in the past years.  The core
 | ||
|    format is described in an Internet-Draft as misp-core-format [MISP-C]
 | ||
|    and contain the standard MISP JSON format used for threat
 | ||
|    intelligence.
 | ||
| 
 | ||
|    The aim of this document is to describe the specification of the MISP
 | ||
|    query format and how the query can be perform against a REST
 | ||
|    interface.
 | ||
| 
 | ||
| 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].
 | ||
| 
 | ||
| 2.  Format
 | ||
| 
 | ||
| 2.1.  Overview
 | ||
| 
 | ||
|    The MISP query format is in the JSON [RFC8259] format.
 | ||
| 
 | ||
| 2.2.  query format criteria
 | ||
| 
 | ||
| 2.2.1.  returnFormat
 | ||
| 
 | ||
|    returnFormat MUST be present. returnFormat sets the type of output
 | ||
|    format.  MISP allows multiple format (depending of the
 | ||
|    configuration):
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Dulaunoy & Iklody        Expires April 11, 2019                 [Page 3]
 | ||
| 
 | ||
| Internet-Draft              MISP query format               October 2018
 | ||
| 
 | ||
| 
 | ||
|       +----------+-------------------------------------------------+
 | ||
|       |  value   |                   Description                   |
 | ||
|       +----------+-------------------------------------------------+
 | ||
|       |   json   |  MISP JSON core format as described in [MISP-C] |
 | ||
|       |   xml    |                 MISP XML format                 |
 | ||
|       | openioc  |                  OpenIOC format                 |
 | ||
|       | suricata |               Suricata NIDS format              |
 | ||
|       |  snort   |                Snort NIDS format                |
 | ||
|       |   csv    |                    CSV format                   |
 | ||
|       |   rpz    |           Response policy zone format           |
 | ||
|       |   text   |              Raw value list format              |
 | ||
|       |  cache   | MISP cache format (hashed values of attributes) |
 | ||
|       +----------+-------------------------------------------------+
 | ||
| 
 | ||
| 2.2.2.  limit
 | ||
| 
 | ||
|    limit MAY be present.  If present, the page parameter MUST also be
 | ||
|    supplied. limit sets the number of returned elements when paginating,
 | ||
|    depending on the scope of the request (x number of attributes or x
 | ||
|    number of events) as converted into the output format.
 | ||
| 
 | ||
| 2.2.3.  page
 | ||
| 
 | ||
|    page MAY be present.  If present, the page parameter MUST also be
 | ||
|    supplied. page generates the offset for the pagination and will
 | ||
|    return a result set consisting of a slice of the query results
 | ||
|    starting with offset (limit * page) + 1 and ending with (limit *
 | ||
|    (page+1)).
 | ||
| 
 | ||
| 2.2.4.  value
 | ||
| 
 | ||
|    value MAY be present.  If set, the returned data set will be filtered
 | ||
|    on the attribute value field. value MUST be a string or a sub-string,
 | ||
|    the latter of which starts with, ends with or is encapsulated in
 | ||
|    wildcard (\%) characters.
 | ||
| 
 | ||
| 2.2.5.  type
 | ||
| 
 | ||
|    type MAY be present.  If set, the returned data set will be filtered
 | ||
|    on the attribute type field. type MUST be a string or a sub-string,
 | ||
|    the latter of which starts with, ends with or is encapsulated in
 | ||
|    wildcard (\%) characters.  The list of valid attribute types is
 | ||
|    described in the MISP core format [MISP-C] in the attribute type
 | ||
|    section.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Dulaunoy & Iklody        Expires April 11, 2019                 [Page 4]
 | ||
| 
 | ||
| Internet-Draft              MISP query format               October 2018
 | ||
| 
 | ||
| 
 | ||
| 2.2.6.  category
 | ||
| 
 | ||
|    category MAY be present.  If set, the returned data set will be
 | ||
|    filtered on the attribute category field. category MUST be a string
 | ||
|    or a sub-string, the latter of which starts with, ends with or is
 | ||
|    encapsulated in wildcard (\%) characters.  The list of valid
 | ||
|    categories is described in the MISP core format [MISP-C] in the
 | ||
|    attribute type section.
 | ||
| 
 | ||
|    A sample query to lookup for the last 30 days of indicators in the
 | ||
|    "Financial fraud" category and output in CSV format:
 | ||
| 
 | ||
|                      {
 | ||
|                          "returnFormat": "csv",
 | ||
|                          "last": "30d",
 | ||
|                          "category": "Financial fraud"
 | ||
|                      }
 | ||
| 
 | ||
| 2.2.7.  org
 | ||
| 
 | ||
|    org MAY be present.  If set, the returned data set will be filtered
 | ||
|    by the organisation identifier (local ID of the instance). org MUST
 | ||
|    be the identifier of the organisation in a string format.
 | ||
| 
 | ||
| 2.2.8.  tags
 | ||
| 
 | ||
|    tags MAY be present.  If set, the returned data set will be filtered
 | ||
|    by tags. tags MUST be a string or a sub-string, the latter of which
 | ||
|    starts with, ends with or is encapsulated in wildcard (\%)
 | ||
|    characters.
 | ||
| 
 | ||
|                    {
 | ||
|                        "returnFormat": "cache",
 | ||
|                        "limit": "100",
 | ||
|                        "tags": ["tlp:red", "%private%"]
 | ||
|                    }
 | ||
| 
 | ||
| 2.2.9.  quickfilter
 | ||
| 
 | ||
| 2.2.10.  from
 | ||
| 
 | ||
|    from MAY be present.  If set, the returned data set will be filtered
 | ||
|    from a starting date. from MUST be a string represented in the format
 | ||
|    year-month-date.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Dulaunoy & Iklody        Expires April 11, 2019                 [Page 5]
 | ||
| 
 | ||
| Internet-Draft              MISP query format               October 2018
 | ||
| 
 | ||
| 
 | ||
|                         {
 | ||
|                             "returnFormat": "json",
 | ||
|                             "limit": "100",
 | ||
|                             "tags": ["tlp:amber"],
 | ||
|                             "from": "2018-09-02",
 | ||
|                             "to": "2018-10-01"
 | ||
|                         }
 | ||
| 
 | ||
| 2.2.11.  to
 | ||
| 
 | ||
|    to MAY be present.  If set, the returned data set will be filtered
 | ||
|    until the specified date. from MUST be a string represented in the
 | ||
|    format year-month-date.
 | ||
| 
 | ||
| 2.2.12.  last
 | ||
| 
 | ||
|    last MAY be present.  If set, the returned data set will be filtered
 | ||
|    in the number of days, hours or minutes defined (such as 5d, 12h or
 | ||
|    30m). last MUST be a string represented in the format expressing
 | ||
|    days, hours or minutes.
 | ||
| 
 | ||
| 2.2.13.  eventid
 | ||
| 
 | ||
|    eventid MAY be present.  If set, the returned data set will be
 | ||
|    filtered to a specific event. eventid MUST be a string representing
 | ||
|    the event id as an integer.
 | ||
| 
 | ||
|                         {
 | ||
|                             "returnFormat": "json",
 | ||
|                             "eventid": 1
 | ||
|                         }
 | ||
| 
 | ||
| 2.2.14.  withAttachments
 | ||
| 
 | ||
|    withAttachments MAY be present.  If set to True (1), the returned
 | ||
|    data set will include the attachment(s) matching the query.
 | ||
|    withAttachments MUST be an integer set as 1 (True) to include the
 | ||
|    attachment(s).  If not, the attachment(s) won't be included in the
 | ||
|    results.
 | ||
| 
 | ||
| 2.2.15.  uuid
 | ||
| 
 | ||
| 2.2.16.  publish_timestamp
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Dulaunoy & Iklody        Expires April 11, 2019                 [Page 6]
 | ||
| 
 | ||
| Internet-Draft              MISP query format               October 2018
 | ||
| 
 | ||
| 
 | ||
| 2.2.17.  timestamp
 | ||
| 
 | ||
| 2.2.18.  published
 | ||
| 
 | ||
| 2.2.19.  enforceWarninglist
 | ||
| 
 | ||
| 2.2.20.  to_ids
 | ||
| 
 | ||
| 2.2.21.  deleted
 | ||
| 
 | ||
| 2.2.22.  includeEventUuid
 | ||
| 
 | ||
| 2.2.23.  event_timestamp
 | ||
| 
 | ||
| 2.2.24.  sgReferenceOnly
 | ||
| 
 | ||
| 2.2.25.  eventinfo
 | ||
| 
 | ||
| 2.2.26.  searchall
 | ||
| 
 | ||
| 2.2.27.  requested_attributes
 | ||
| 
 | ||
| 2.2.28.  includeContext
 | ||
| 
 | ||
| 3.  Security Considerations
 | ||
| 
 | ||
|    MISP threat intelligence instances might contain sensitive or
 | ||
|    confidential information.  Adequate access control and encryption
 | ||
|    measures shall be implemented to ensure the confidentiality of the
 | ||
|    threat intelligence.
 | ||
| 
 | ||
|    Adversaries might include malicious content in MISP queries.
 | ||
|    Implementation MUST consider the input of malicious inputs beside the
 | ||
|    standard threat information that might already include malicious
 | ||
|    intended inputs.
 | ||
| 
 | ||
| 4.  Acknowledgements
 | ||
| 
 | ||
|    The authors wish to thank all the MISP community who are supporting
 | ||
|    the creation of open standards in threat intelligence sharing.  A
 | ||
|    special thank to all the committees which triggered us to come with
 | ||
|    better and flexible format.
 | ||
| 
 | ||
| 5.  References
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Dulaunoy & Iklody        Expires April 11, 2019                 [Page 7]
 | ||
| 
 | ||
| Internet-Draft              MISP query format               October 2018
 | ||
| 
 | ||
| 
 | ||
| 5.1.  Normative References
 | ||
| 
 | ||
|    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
 | ||
|               Requirement Levels", BCP 14, RFC 2119,
 | ||
|               DOI 10.17487/RFC2119, March 1997,
 | ||
|               <https://www.rfc-editor.org/info/rfc2119>.
 | ||
| 
 | ||
|    [RFC8259]  Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
 | ||
|               Interchange Format", STD 90, RFC 8259,
 | ||
|               DOI 10.17487/RFC8259, December 2017,
 | ||
|               <https://www.rfc-editor.org/info/rfc8259>.
 | ||
| 
 | ||
| 5.2.  Informative References
 | ||
| 
 | ||
|    [MISP-C]   MISP, "MISP core format", <https://tools.ietf.org/html/
 | ||
|               draft-dulaunoy-misp-core-format>.
 | ||
| 
 | ||
|    [MISP-P]   MISP, "MISP Project - Malware Information Sharing Platform
 | ||
|               and Threat Sharing", <https://github.com/MISP>.
 | ||
| 
 | ||
| Authors' Addresses
 | ||
| 
 | ||
|    Alexandre Dulaunoy
 | ||
|    Computer Incident Response Center Luxembourg
 | ||
|    16, bd d'Avranches
 | ||
|    Luxembourg  L-1160
 | ||
|    Luxembourg
 | ||
| 
 | ||
|    Phone: +352 247 88444
 | ||
|    Email: alexandre.dulaunoy@circl.lu
 | ||
| 
 | ||
| 
 | ||
|    Andras Iklody
 | ||
|    Computer Incident Response Center Luxembourg
 | ||
|    16, bd d'Avranches
 | ||
|    Luxembourg  L-1160
 | ||
|    Luxembourg
 | ||
| 
 | ||
|    Phone: +352 247 88444
 | ||
|    Email: andras.iklody@circl.lu
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Dulaunoy & Iklody        Expires April 11, 2019                 [Page 8]
 |