Export added

pull/6/head
Alexandre Dulaunoy 2016-10-16 11:01:14 +02:00
parent 99d77f87b0
commit d9a619ee54
1 changed files with 672 additions and 0 deletions

View File

@ -0,0 +1,672 @@
Network Working Group A. Dulaunoy
Internet-Draft A. Iklody
Intended status: Informational CIRCL
Expires: April 16, 2017 October 13, 2016
MISP taxonomy format
draft-dulaunoy-misp-taxonomy-format
Abstract
This document describes the MISP taxonomy format which describes a
simple JSON format to represent machine tags (also called triple
tags) vocabularies. A public directory of common vocabularies MISP
taxonomies is available and relies on the MISP taxonomy format.
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 16, 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
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.
Dulaunoy & Iklody Expires April 16, 2017 [Page 1]
Internet-Draft MISP taxonomy format October 2016
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Conventions and Terminology . . . . . . . . . . . . . . . 3
2. Format . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. predicates . . . . . . . . . . . . . . . . . . . . . . . 3
2.3. values . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4. optional fields . . . . . . . . . . . . . . . . . . . . . 4
2.4.1. colour . . . . . . . . . . . . . . . . . . . . . . . 4
2.4.2. description . . . . . . . . . . . . . . . . . . . . . 4
2.4.3. numerical_value . . . . . . . . . . . . . . . . . . . 5
3. Directory . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1. Sample Manifest . . . . . . . . . . . . . . . . . . . . . 6
4. Sample Taxonomy in MISP taxonomy format . . . . . . . . . . . 6
4.1. Admiralty Scale Taxonomy . . . . . . . . . . . . . . . . 6
4.2. Open Source Intelligence - Classification . . . . . . . . 8
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
6.1. Normative References . . . . . . . . . . . . . . . . . . 11
6.2. Informative References . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11
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. While sharing such indicators or information,
classification plays an important role to ensure adequate
distribution, understanding, validation or action of the shared
information. MISP taxonomies is a public repository of known
vocabularies that can be used in threat information sharing.
Machine tags were introduced in 2007 [machine-tags] to allow users to
be more precise when tagging their picture with geolocation. So a
machine tag is a tag which use a special syntax to provide more
information to user and machines. Machine tags are also known as
triple tags due to the their format.
In MISP taxonomy context, machine tags help analysts to classify
their cybersecurity events, indicators or threats. MISP taxonomy can
be used for classification, filtering, triggering action or
visualization depending on their use in threat intelligence platforms
like MISP [MISP-P].
Dulaunoy & Iklody Expires April 16, 2017 [Page 2]
Internet-Draft MISP taxonomy format October 2016
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
A machine tag is composed of a namespace (MUST), a predicate (MUST)
and an optional value (OPTIONAL).
Machine tags are represented as a string. Below a set of sample
machine tags for different namespaces like tlp, admiralty-scale or
osint.
tlp:amber
admiralty-scale:information-credibility="1"
osint:source-type="blog-post"
The MISP taxonomy format describes how to define a machine tag
namespace in a parseable format. The objective is to provide a
simple format to describe machine tags (aka triple tags)
vocabularies.
2.1. Overview
The MISP taxonomy format uses the JSON [RFC4627] format. Each
namespace is represented as a JSON object with meta information
including the following fields namespace, description, version.
namespace defines the overall namespace of the machine tag. The
namespace is represented as a string and MUST be present. The
description is represented as a string and SHOULD be present. A
version is represented as a decimal and MUST be present.
predicates defines all the predicates available in the namespace
defined. predicates is represented as an array of JSON objects.
predicates MUST be present and MUST at least content one element.
values defines all the values for each predicate in the namespace
defined. values SHOULD ne present.
2.2. predicates
predicates array contain one or more JSON objects which lists all the
possible predicate. The JSON object contains two fields: value and
expanded. value and expanded MUST be present. value is represented as
a string and describes the predicate value. The predicate value MUST
Dulaunoy & Iklody Expires April 16, 2017 [Page 3]
Internet-Draft MISP taxonomy format October 2016
not contain spaces or colons. expanded is represented as a string and
describes the human-readable version of the predicate value.
2.3. values
values array contain one or more JSON objects which lists all the
possible values of a predicate. The JSON object contain two fields:
predicate and entry. predicate is represented as a string and
describes the predicate value. entry is an array with one or more
JSON objects. The JSON object contains two fields: value and
expanded. value and expanded MUST be present. value is represented as
a string and describe the value machine parsable. expanded is
represented as a string and describes the human-readable version of
the value.
2.4. optional fields
2.4.1. colour
colour fields MAY be used at predicates or values level to set a
specify colour that *MAY** be used by the implementation. The colour
field is described as an RGB colour fill in hexadecimal
representation.
Example use of the colour field in the Traffic Light Protocol (TLP):
"predicates": [
{
"colour": "#CC0033",
"expanded": "(TLP:RED) Information exclusively and directly
given to (a group of) individual recipients.
Sharing outside is not legitimate.",
"value": "red"
},
{
"colour": "#FFC000",
"expanded": "(TLP:AMBER) Information exclusively given
to an organization; sharing limited within
the organization to be effectively acted upon.",
"value": "amber"
}...]
2.4.2. description
description fields MAY be used at predicates or values level to add a
descriptive and human-readable information about the specific
predicate or value. The field is represented as a string.
Implementations *_MAY_ use the description field to improve more
Dulaunoy & Iklody Expires April 16, 2017 [Page 4]
Internet-Draft MISP taxonomy format October 2016
contextual information. The description at the namespace level is a
MUST as described above.
2.4.3. numerical_value
numerical_value fields MAY be used at predicates or values level to
add a machine-readable numeric value to a specific predicate or
value. The field is represented as JSON number. Implementations
SHOULD use the decimal value provided to support scoring or
filtering.
Example use of the numerical_value in the MISP confidence level:
{
"predicate": "confidence-level",
"entry": [
{
"expanded": "Completely confident",
"value": "completely-confident",
"numerical_value": 100
},
{
"expanded": "Usually confident",
"value": "usually-confident",
"numerical_value": 75
},
{
"expanded": "Fairly confident",
"value": "fairly-confident",
"numerical_value": 50
},
{
"expanded": "Rarely confident",
"value": "rarely-confident",
"numerical_value": 25
},
{
"expanded": "Unconfident",
"value": "unconfident",
"numerical_value": 0
},
{
"expanded": "Confidence cannot be evaluated",
"value": "confidence-cannot-be-evalued"
}
]
}
Dulaunoy & Iklody Expires April 16, 2017 [Page 5]
Internet-Draft MISP taxonomy format October 2016
3. Directory
The MISP taxonomies directory is publicly available [MISP-T] in a git
repository. The repository contains a directory per namespace then a
file machinetag.json which contains the taxonomy as described in the
format above. In the root of the repository, a MANIFEST.json exists
containing a list of all the taxonomies.
The MANIFEST.json file is composed of an JSON object with metadata
like version, license, description, url and path. A taxonomies array
describes the taxonomy available with the description, name and
version field.
3.1. Sample Manifest
{
"version": "20161009",
"license": "CC-0",
"description": "Manifest file of MISP taxonomies available.",
"url":
"https://raw.githubusercontent.com/MISP/misp-taxonomies/master/",
"path": "machinetag.json",
"taxonomies": [
{
"description": "The Admiralty Scale (also called the NATO System)
is used to rank the reliability of a source and
the credibility of an information.",
"name": "admiralty-scale",
"version": 1
},
{
"description": "Open Source Intelligence - Classification.",
"name": "osint",
"version": 2
}]
}
4. Sample Taxonomy in MISP taxonomy format
4.1. Admiralty Scale Taxonomy
"namespace": "admiralty-scale",
"description": "The Admiralty Scale (also called the NATO System)
is used to rank the reliability of a source and
the credibility of an information.",
"version": 1,
"predicates": [
{
Dulaunoy & Iklody Expires April 16, 2017 [Page 6]
Internet-Draft MISP taxonomy format October 2016
"value": "source-reliability",
"expanded": "Source Reliability"
},
{
"value": "information-credibility",
"expanded": "Information Credibility"
}
],
"values": [
{
"predicate": "source-reliability",
"entry": [
{
"value": "a",
"expanded": "Completely reliable"
},
{
"value": "b",
"expanded": "Usually reliable"
},
{
"value": "c",
"expanded": "Fairly reliable"
},
{
"value": "d",
"expanded": "Not usually reliable"
},
{
"value": "e",
"expanded": "Unreliable"
},
{
"value": "f",
"expanded": "Reliability cannot be judged"
}
]
},
{
"predicate": "information-credibility",
"entry": [
{
"value": "1",
"expanded": "Confirmed by other sources"
},
{
"value": "2",
"expanded": "Probably true"
Dulaunoy & Iklody Expires April 16, 2017 [Page 7]
Internet-Draft MISP taxonomy format October 2016
},
{
"value": "3",
"expanded": "Possibly true"
},
{
"value": "4",
"expanded": "Doubtful"
},
{
"value": "5",
"expanded": "Improbable"
},
{
"value": "6",
"expanded": "Truth cannot be judged"
}
]
}
]
}
4.2. Open Source Intelligence - Classification
{
"values": [
{
"entry": [
{
"expanded": "Blog post",
"value": "blog-post"
},
{
"expanded": "Technical or analysis report",
"value": "technical-report"
},
{
"expanded": "News report",
"value": "news-report"
},
{
"expanded": "Pastie-like website",
"value": "pastie-website"
},
{
"expanded": "Electronic forum",
"value": "electronic-forum"
},
Dulaunoy & Iklody Expires April 16, 2017 [Page 8]
Internet-Draft MISP taxonomy format October 2016
{
"expanded": "Mailing-list",
"value": "mailing-list"
},
{
"expanded": "Block or Filter List",
"value": "block-or-filter-list"
},
{
"expanded": "Expansion",
"value": "expansion"
}
],
"predicate": "source-type"
},
{
"predicate": "lifetime",
"entry": [
{
"value": "perpetual",
"expanded": "Perpetual",
"description": "Information available publicly on long-term"
},
{
"value": "ephemeral",
"expanded": "Ephemeral",
"description": "Information available publicly on short-term"
}
]
},
{
"predicate": "certainty",
"entry": [
{
"numerical_value": 100,
"value": "100",
"expanded": "100% Certainty",
"description": "100% Certainty"
},
{
"numerical_value": 93,
"value": "93",
"expanded": "93% Almost certain",
"description": "93% Almost certain"
},
{
"numerical_value": 75,
"value": "75",
Dulaunoy & Iklody Expires April 16, 2017 [Page 9]
Internet-Draft MISP taxonomy format October 2016
"expanded": "75% Probable",
"description": "75% Probable"
},
{
"numerical_value": 50,
"value": "50",
"expanded": "50% Chances about even",
"description": "50% Chances about even"
},
{
"numerical_value": 30,
"value": "30",
"expanded": "30% Probably not",
"description": "30% Probably not"
},
{
"numerical_value": 7,
"value": "7",
"expanded": "7% Almost certainly not",
"description": "7% Almost certainly not"
},
{
"numerical_value": 0,
"value": "0",
"expanded": "0% Impossibility",
"description": "0% Impossibility"
}
]
}
],
"namespace": "osint",
"description": "Open Source Intelligence - Classification",
"version": 3,
"predicates": [
{
"value": "source-type",
"expanded": "Source Type"
},
{
"value": "lifetime",
"expanded": "Lifetime of the information
as Open Source Intelligence"
},
{
"value": "certainty",
"expanded": "Certainty of the elements mentioned
in this Open Source Intelligence"
}
Dulaunoy & Iklody Expires April 16, 2017 [Page 10]
Internet-Draft MISP taxonomy format October 2016
]
}
5. Acknowledgements
The authors wish to thank all the MISP community to support the
creation of open standards in threat intelligence sharing.
6. References
6.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,
<http://www.rfc-editor.org/info/rfc2119>.
[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>.
6.2. Informative References
[machine-tags]
"Machine tags", 2007,
<https://www.flickr.com/groups/51035612836@N01/
discuss/72157594497877875/>.
[MISP-P] MISP, , "MISP Project - Malware Information Sharing
Platform and Threat Sharing", <https://github.com/MISP>.
[MISP-T] MISP, , "MISP Taxonomies - shared and common vocabularies
of tags", <https://github.com/MISP/misp-taxonomies>.
Authors' Addresses
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
Dulaunoy & Iklody Expires April 16, 2017 [Page 11]
Internet-Draft MISP taxonomy format October 2016
Andras Iklody
Computer Incident Response Center Luxembourg
41, avenue de la gare
Luxembourg L-1611
Luxembourg
Phone: +352 247 88444
Email: andras.iklody@circl.lu
Dulaunoy & Iklody Expires April 16, 2017 [Page 12]