From 695b25ab7c8b70892b6b037351b0b123ebbe5406 Mon Sep 17 00:00:00 2001 From: Alexandre Dulaunoy Date: Mon, 14 Feb 2022 16:35:27 +0100 Subject: [PATCH] chg: [core] updated output --- misp-core-format/raw.md.html | 4687 ++++++++++++++++++++++------------ misp-core-format/raw.md.txt | 1642 ++++++------ misp-core-format/raw.md.xml | 2847 +++++++++------------ 3 files changed, 5136 insertions(+), 4040 deletions(-) diff --git a/misp-core-format/raw.md.html b/misp-core-format/raw.md.html index 7aa2194..12f6de1 100755 --- a/misp-core-format/raw.md.html +++ b/misp-core-format/raw.md.html @@ -1,784 +1,1773 @@ - + + + + + + +MISP core format + + + + + + + + + +*/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +/* fonts */ +@import url('https://fonts.googleapis.com/css?family=Noto+Sans'); /* Sans-serif */ +@import url('https://fonts.googleapis.com/css?family=Noto+Serif'); /* Serif (print) */ +@import url('https://fonts.googleapis.com/css?family=Roboto+Mono'); /* Monospace */ + +@viewport { + zoom: 1.0; + width: extend-to-zoom; +} +@-ms-viewport { + width: extend-to-zoom; + zoom: 1.0; +} +/* general and mobile first */ +html { +} +body { + max-width: 90%; + margin: 1.5em auto; + color: #222; + background-color: #fff; + font-size: 14px; + font-family: 'Noto Sans', Arial, Helvetica, sans-serif; + line-height: 1.6; + scroll-behavior: smooth; +} +.ears { + display: none; +} + +/* headings */ +#title, h1, h2, h3, h4, h5, h6 { + margin: 1em 0 0.5em; + font-weight: bold; + line-height: 1.3; +} +#title { + clear: both; + border-bottom: 1px solid #ddd; + margin: 0 0 0.5em 0; + padding: 1em 0 0.5em; +} +.author { + padding-bottom: 4px; +} +h1 { + font-size: 26px; + margin: 1em 0; +} +h2 { + font-size: 22px; + margin-top: -20px; /* provide offset for in-page anchors */ + padding-top: 33px; +} +h3 { + font-size: 18px; + margin-top: -36px; /* provide offset for in-page anchors */ + padding-top: 42px; +} +h4 { + font-size: 16px; + margin-top: -36px; /* provide offset for in-page anchors */ + padding-top: 42px; +} +h5, h6 { + font-size: 14px; +} +#n-copyright-notice { + border-bottom: 1px solid #ddd; + padding-bottom: 1em; + margin-bottom: 1em; +} +/* general structure */ +p { + padding: 0; + margin: 0 0 1em 0; + text-align: left; +} +div, span { + position: relative; +} +div { + margin: 0; +} +.alignRight.art-text { + background-color: #f9f9f9; + border: 1px solid #eee; + border-radius: 3px; + padding: 1em 1em 0; + margin-bottom: 1.5em; +} +.alignRight.art-text pre { + padding: 0; +} +.alignRight { + margin: 1em 0; +} +.alignRight > *:first-child { + border: none; + margin: 0; + float: right; + clear: both; +} +.alignRight > *:nth-child(2) { + clear: both; + display: block; + border: none; +} +svg { + display: block; +} +.alignCenter.art-text { + background-color: #f9f9f9; + border: 1px solid #eee; + border-radius: 3px; + padding: 1em 1em 0; + margin-bottom: 1.5em; +} +.alignCenter.art-text pre { + padding: 0; +} +.alignCenter { + margin: 1em 0; +} +.alignCenter > *:first-child { + border: none; + /* this isn't optimal, but it's an existence proof. PrinceXML doesn't + support flexbox yet. + */ + display: table; + margin: 0 auto; +} + +/* lists */ +ol, ul { + padding: 0; + margin: 0 0 1em 2em; +} +ol ol, ul ul, ol ul, ul ol { + margin-left: 1em; +} +li { + margin: 0 0 0.25em 0; +} +.ulCompact li { + margin: 0; +} +ul.empty, .ulEmpty { + list-style-type: none; +} +ul.empty li, .ulEmpty li { + margin-top: 0.5em; +} +ul.ulBare, li.ulBare { + margin-left: 0em !important; +} +ul.compact, .ulCompact, +ol.compact, .olCompact { + line-height: 100%; + margin: 0 0 0 2em; +} + +/* definition lists */ +dl { +} +dl > dt { + float: left; + margin-right: 1em; +} +/* +dl.nohang > dt { + float: none; +} +*/ +dl > dd { + margin-bottom: .8em; + min-height: 1.3em; +} +dl.compact > dd, .dlCompact > dd { + margin-bottom: 0em; +} +dl > dd > dl { + margin-top: 0.5em; + margin-bottom: 0em; +} + +/* links */ +a { + text-decoration: none; +} +a[href] { + color: #22e; /* Arlen: WCAG 2019 */ +} +a[href]:hover { + background-color: #f2f2f2; +} +figcaption a[href], +a[href].selfRef { + color: #222; +} +/* XXX probably not this: +a.selfRef:hover { + background-color: transparent; + cursor: default; +} */ + +/* Figures */ +tt, code, pre, code { + background-color: #f9f9f9; + font-family: 'Roboto Mono', monospace; +} +pre { + border: 1px solid #eee; + margin: 0; + padding: 1em; +} +img { + max-width: 100%; +} +figure { + margin: 0; +} +figure blockquote { + margin: 0.8em 0.4em 0.4em; +} +figcaption { + font-style: italic; + margin: 0 0 1em 0; +} +@media screen { + pre { + overflow-x: auto; + max-width: 100%; + max-width: calc(100% - 22px); + } +} + +/* aside, blockquote */ +aside, blockquote { + margin-left: 0; + padding: 1.2em 2em; +} +blockquote { + background-color: #f9f9f9; + color: #111; /* Arlen: WCAG 2019 */ + border: 1px solid #ddd; + border-radius: 3px; + margin: 1em 0; +} +cite { + display: block; + text-align: right; + font-style: italic; +} + +/* tables */ +table { + width: 100%; + margin: 0 0 1em; + border-collapse: collapse; + border: 1px solid #eee; +} +th, td { + text-align: left; + vertical-align: top; + padding: 0.5em 0.75em; +} +th { + text-align: left; + background-color: #e9e9e9; +} +tr:nth-child(2n+1) > td { + background-color: #f5f5f5; +} +table caption { + font-style: italic; + margin: 0; + padding: 0; + text-align: left; +} +table p { + /* XXX to avoid bottom margin on table row signifiers. If paragraphs should + be allowed within tables more generally, it would be far better to select on a class. */ + margin: 0; +} + +/* pilcrow */ +a.pilcrow { + color: #666; /* Arlen: AHDJ 2019 */ + text-decoration: none; + visibility: hidden; + user-select: none; + -ms-user-select: none; + -o-user-select:none; + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -webkit-touch-callout: none; +} +@media screen { + aside:hover > a.pilcrow, + p:hover > a.pilcrow, + blockquote:hover > a.pilcrow, + div:hover > a.pilcrow, + li:hover > a.pilcrow, + pre:hover > a.pilcrow { + visibility: visible; + } + a.pilcrow:hover { + background-color: transparent; + } +} + +/* misc */ +hr { + border: 0; + border-top: 1px solid #eee; +} +.bcp14 { + font-variant: small-caps; +} + +.role { + font-variant: all-small-caps; +} + +/* info block */ +#identifiers { + margin: 0; + font-size: 0.9em; +} +#identifiers dt { + width: 3em; + clear: left; +} +#identifiers dd { + float: left; + margin-bottom: 0; +} +/* Fix PDF info block run off issue */ +@media print { + #identifiers dd { + float: none; + } +} +#identifiers .authors .author { + display: inline-block; + margin-right: 1.5em; +} +#identifiers .authors .org { + font-style: italic; +} + +/* The prepared/rendered info at the very bottom of the page */ +.docInfo { + color: #666; /* Arlen: WCAG 2019 */ + font-size: 0.9em; + font-style: italic; + margin-top: 2em; +} +.docInfo .prepared { + float: left; +} +.docInfo .prepared { + float: right; +} + +/* table of contents */ +#toc { + padding: 0.75em 0 2em 0; + margin-bottom: 1em; +} +nav.toc ul { + margin: 0 0.5em 0 0; + padding: 0; + list-style: none; +} +nav.toc li { + line-height: 1.3em; + margin: 0.75em 0; + padding-left: 1.2em; + text-indent: -1.2em; +} +/* references */ +.references dt { + text-align: right; + font-weight: bold; + min-width: 7em; +} +.references dd { + margin-left: 8em; + overflow: auto; +} + +.refInstance { + margin-bottom: 1.25em; +} + +.references .ascii { + margin-bottom: 0.25em; +} + +/* index */ +.index ul { + margin: 0 0 0 1em; + padding: 0; + list-style: none; +} +.index ul ul { + margin: 0; +} +.index li { + margin: 0; + text-indent: -2em; + padding-left: 2em; + padding-bottom: 5px; +} +.indexIndex { + margin: 0.5em 0 1em; +} +.index a { + font-weight: 700; +} +/* make the index two-column on all but the smallest screens */ +@media (min-width: 600px) { + .index ul { + -moz-column-count: 2; + -moz-column-gap: 20px; + } + .index ul ul { + -moz-column-count: 1; + -moz-column-gap: 0; + } +} + +/* authors */ +address.vcard { + font-style: normal; + margin: 1em 0; +} + +address.vcard .nameRole { + font-weight: 700; + margin-left: 0; +} +address.vcard .label { + font-family: "Noto Sans",Arial,Helvetica,sans-serif; + margin: 0.5em 0; +} +address.vcard .type { + display: none; +} +.alternative-contact { + margin: 1.5em 0 1em; +} +hr.addr { + border-top: 1px dashed; + margin: 0; + color: #ddd; + max-width: calc(100% - 16px); +} + +/* temporary notes */ +.rfcEditorRemove::before { + position: absolute; + top: 0.2em; + right: 0.2em; + padding: 0.2em; + content: "The RFC Editor will remove this note"; + color: #9e2a00; /* Arlen: WCAG 2019 */ + background-color: #ffd; /* Arlen: WCAG 2019 */ +} +.rfcEditorRemove { + position: relative; + padding-top: 1.8em; + background-color: #ffd; /* Arlen: WCAG 2019 */ + border-radius: 3px; +} +.cref { + background-color: #ffd; /* Arlen: WCAG 2019 */ + padding: 2px 4px; +} +.crefSource { + font-style: italic; +} +/* alternative layout for smaller screens */ +@media screen and (max-width: 1023px) { + body { + padding-top: 2em; + } + #title { + padding: 1em 0; + } + h1 { + font-size: 24px; + } + h2 { + font-size: 20px; + margin-top: -18px; /* provide offset for in-page anchors */ + padding-top: 38px; + } + #identifiers dd { + max-width: 60%; + } + #toc { + position: fixed; + z-index: 2; + top: 0; + right: 0; + padding: 0; + margin: 0; + background-color: inherit; + border-bottom: 1px solid #ccc; + } + #toc h2 { + margin: -1px 0 0 0; + padding: 4px 0 4px 6px; + padding-right: 1em; + min-width: 190px; + font-size: 1.1em; + text-align: right; + background-color: #444; + color: white; + cursor: pointer; + } + #toc h2::before { /* css hamburger */ + float: right; + position: relative; + width: 1em; + height: 1px; + left: -164px; + margin: 6px 0 0 0; + background: white none repeat scroll 0 0; + box-shadow: 0 4px 0 0 white, 0 8px 0 0 white; + content: ""; + } + #toc nav { + display: none; + padding: 0.5em 1em 1em; + overflow: auto; + height: calc(100vh - 48px); + border-left: 1px solid #ddd; + } +} + +/* alternative layout for wide screens */ +@media screen and (min-width: 1024px) { + body { + max-width: 724px; + margin: 42px auto; + padding-left: 1.5em; + padding-right: 29em; + } + #toc { + position: fixed; + top: 42px; + right: 42px; + width: 25%; + margin: 0; + padding: 0 1em; + z-index: 1; + } + #toc h2 { + border-top: none; + border-bottom: 1px solid #ddd; + font-size: 1em; + font-weight: normal; + margin: 0; + padding: 0.25em 1em 1em 0; + } + #toc nav { + display: block; + height: calc(90vh - 84px); + bottom: 0; + padding: 0.5em 0 0; + overflow: auto; + } + img { /* future proofing */ + max-width: 100%; + height: auto; + } +} + +/* pagination */ +@media print { + body { + + width: 100%; + } + p { + orphans: 3; + widows: 3; + } + #n-copyright-notice { + border-bottom: none; + } + #toc, #n-introduction { + page-break-before: always; + } + #toc { + border-top: none; + padding-top: 0; + } + figure, pre { + page-break-inside: avoid; + } + figure { + overflow: scroll; + } + h1, h2, h3, h4, h5, h6 { + page-break-after: avoid; + } + h2+*, h3+*, h4+*, h5+*, h6+* { + page-break-before: avoid; + } + pre { + white-space: pre-wrap; + word-wrap: break-word; + font-size: 10pt; + } + table { + border: 1px solid #ddd; + } + td { + border-top: 1px solid #ddd; + } +} + +/* This is commented out here, as the string-set: doesn't + pass W3C validation currently */ +/* +.ears thead .left { + string-set: ears-top-left content(); +} + +.ears thead .center { + string-set: ears-top-center content(); +} + +.ears thead .right { + string-set: ears-top-right content(); +} + +.ears tfoot .left { + string-set: ears-bottom-left content(); +} + +.ears tfoot .center { + string-set: ears-bottom-center content(); +} + +.ears tfoot .right { + string-set: ears-bottom-right content(); +} +*/ + +@page :first { + padding-top: 0; + @top-left { + content: normal; + border: none; + } + @top-center { + content: normal; + border: none; + } + @top-right { + content: normal; + border: none; + } +} + +@page { + size: A4; + margin-bottom: 45mm; + padding-top: 20px; + /* The follwing is commented out here, but set appropriately by in code, as + the content depends on the document */ + /* + @top-left { + content: 'Internet-Draft'; + vertical-align: bottom; + border-bottom: solid 1px #ccc; + } + @top-left { + content: string(ears-top-left); + vertical-align: bottom; + border-bottom: solid 1px #ccc; + } + @top-center { + content: string(ears-top-center); + vertical-align: bottom; + border-bottom: solid 1px #ccc; + } + @top-right { + content: string(ears-top-right); + vertical-align: bottom; + border-bottom: solid 1px #ccc; + } + @bottom-left { + content: string(ears-bottom-left); + vertical-align: top; + border-top: solid 1px #ccc; + } + @bottom-center { + content: string(ears-bottom-center); + vertical-align: top; + border-top: solid 1px #ccc; + } + @bottom-right { + content: '[Page ' counter(page) ']'; + vertical-align: top; + border-top: solid 1px #ccc; + } + */ + +} + +/* Changes introduced to fix issues found during implementation */ +/* Make sure links are clickable even if overlapped by following H* */ +a { + z-index: 2; +} +/* Separate body from document info even without intervening H1 */ +section { + clear: both; +} - - +/* Top align author divs, to avoid names without organization dropping level with org names */ +.author { + vertical-align: top; +} - - - - - +/* Leave room in document info to show Internet-Draft on one line */ +#identifiers dt { + width: 8em; +} +/* Don't waste quite as much whitespace between label and value in doc info */ +#identifiers dd { + margin-left: 1em; +} + +/* Give floating toc a background color (needed when it's a div inside section */ +#toc { + background-color: white; +} + +/* Make the collapsed ToC header render white on gray also when it's a link */ +@media screen and (max-width: 1023px) { + #toc h2 a, + #toc h2 a:link, + #toc h2 a:focus, + #toc h2 a:hover, + #toc a.toplink, + #toc a.toplink:hover { + color: white; + background-color: #444; + text-decoration: none; + } +} + +/* Give the bottom of the ToC some whitespace */ +@media screen and (min-width: 1024px) { + #toc { + padding: 0 0 1em 1em; + } +} + +/* Style section numbers with more space between number and title */ +.section-number { + padding-right: 0.5em; +} + +/* prevent monospace from becoming overly large */ +tt, code, pre, code { + font-size: 95%; +} + +/* Fix the height/width aspect for ascii art*/ +pre.sourcecode, +.art-text pre { + line-height: 1.12; +} + + +/* Add styling for a link in the ToC that points to the top of the document */ +a.toplink { + float: right; + margin-right: 0.5em; +} + +/* Fix the dl styling to match the RFC 7992 attributes */ +dl > dt, +dl.dlParallel > dt { + float: left; + margin-right: 1em; +} +dl.dlNewline > dt { + float: none; +} + +/* Provide styling for table cell text alignment */ +table td.text-left, +table th.text-left { + text-align: left; +} +table td.text-center, +table th.text-center { + text-align: center; +} +table td.text-right, +table th.text-right { + text-align: right; +} + +/* Make the alternative author contact informatio look less like just another + author, and group it closer with the primary author contact information */ +.alternative-contact { + margin: 0.5em 0 0.25em 0; +} +address .non-ascii { + margin: 0 0 0 2em; +} + +/* With it being possible to set tables with alignment + left, center, and right, { width: 100%; } does not make sense */ +table { + width: auto; +} + +/* Avoid reference text that sits in a block with very wide left margin, + because of a long floating dt label.*/ +.references dd { + overflow: visible; +} + +/* Control caption placement */ +caption { + caption-side: bottom; +} + +/* Limit the width of the author address vcard, so names in right-to-left + script don't end up on the other side of the page. */ + +address.vcard { + max-width: 30em; + margin-right: auto; +} + +/* For address alignment dependent on LTR or RTL scripts */ +address div.left { + text-align: left; +} +address div.right { + text-align: right; +} + +/* Provide table alignment support. We can't use the alignX classes above + since they do unwanted things with caption and other styling. */ +table.right { + margin-left: auto; + margin-right: 0; +} +table.center { + margin-left: auto; + margin-right: auto; +} +table.left { + margin-left: 0; + margin-right: auto; +} + +/* Give the table caption label the same styling as the figcaption */ +caption a[href] { + color: #222; +} + +@media print { + .toplink { + display: none; + } + + /* avoid overwriting the top border line with the ToC header */ + #toc { + padding-top: 1px; + } + + /* Avoid page breaks inside dl and author address entries */ + .vcard { + page-break-inside: avoid; + } + +} +/* Tweak the bcp14 keyword presentation */ +.bcp14 { + font-variant: small-caps; + font-weight: bold; + font-size: 0.9em; +} +/* Tweak the invisible space above H* in order not to overlay links in text above */ + h2 { + margin-top: -18px; /* provide offset for in-page anchors */ + padding-top: 31px; + } + h3 { + margin-top: -18px; /* provide offset for in-page anchors */ + padding-top: 24px; + } + h4 { + margin-top: -18px; /* provide offset for in-page anchors */ + padding-top: 24px; + } +/* Float artwork pilcrow to the right */ +@media screen { + .artwork a.pilcrow { + display: block; + line-height: 0.7; + margin-top: 0.15em; + } +} +/* Make pilcrows on dd visible */ +@media screen { + dd:hover > a.pilcrow { + visibility: visible; + } +} +/* Make the placement of figcaption match that of a table's caption + by removing the figure's added bottom margin */ +.alignLeft.art-text, +.alignCenter.art-text, +.alignRight.art-text { + margin-bottom: 0; +} +.alignLeft, +.alignCenter, +.alignRight { + margin: 1em 0 0 0; +} +/* In print, the pilcrow won't show on hover, so prevent it from taking up space, + possibly even requiring a new line */ +@media print { + a.pilcrow { + display: none; + } +} +/* Styling for the external metadata */ +div#external-metadata { + background-color: #eee; + padding: 0.5em; + margin-bottom: 0.5em; + display: none; +} +div#internal-metadata { + padding: 0.5em; /* to match the external-metadata padding */ +} +/* Styling for title RFC Number */ +h1#rfcnum { + clear: both; + margin: 0 0 -1em; + padding: 1em 0 0 0; +} +/* Make .olPercent look the same as
  1. */ +dl.olPercent > dd { + margin-bottom: 0.25em; + min-height: initial; +} +/* Give aside some styling to set it apart */ +aside { + border-left: 1px solid #ddd; + margin: 1em 0 1em 2em; + padding: 0.2em 2em; +} +aside > dl, +aside > ol, +aside > ul, +aside > table, +aside > p { + margin-bottom: 0.5em; +} +/* Additional page break settings */ +@media print { + figcaption, table caption { + page-break-before: avoid; + } +} +/* Font size adjustments for print */ +@media print { + body { font-size: 10pt; line-height: normal; max-width: 96%; } + h1 { font-size: 1.72em; padding-top: 1.5em; } /* 1*1.2*1.2*1.2 */ + h2 { font-size: 1.44em; padding-top: 1.5em; } /* 1*1.2*1.2 */ + h3 { font-size: 1.2em; padding-top: 1.5em; } /* 1*1.2 */ + h4 { font-size: 1em; padding-top: 1.5em; } + h5, h6 { font-size: 1em; margin: initial; padding: 0.5em 0 0.3em; } +} +/* Sourcecode margin in print, when there's no pilcrow */ +@media print { + .artwork, + .sourcecode { + margin-bottom: 1em; + } +} +/* Avoid narrow tables forcing too narrow table captions, which may render badly */ +table { + min-width: 20em; +} +/* ol type a */ +ol.type-a { list-style-type: lower-alpha; } +ol.type-A { list-style-type: upper-alpha; } +ol.type-i { list-style-type: lower-roman; } +ol.type-I { list-style-type: lower-roman; } +/* Apply the print table and row borders in general, on request from the RPC, +and increase the contrast between border and odd row background sligthtly */ +table { + border: 1px solid #ddd; +} +td { + border-top: 1px solid #ddd; +} +tr:nth-child(2n+1) > td { + background-color: #f8f8f8; +} +/* Use style rules to govern display of the TOC. */ +@media screen and (max-width: 1023px) { + #toc nav { display: none; } + #toc.active nav { display: block; } +} +/* Add support for keepWithNext */ +.keepWithNext { + break-after: avoid-page; + break-after: avoid-page; +} +/* Add support for keepWithPrevious */ +.keepWithPrevious { + break-before: avoid-page; +} +/* Change the approach to avoiding breaks inside artwork etc. */ +figure, pre, table, .artwork, .sourcecode { + break-before: auto; + break-after: auto; +} +/* Avoid breaks between
    and
    */ +dl { + break-before: auto; + break-inside: auto; +} +dt { + break-before: auto; + break-after: avoid-page; +} +dd { + break-before: avoid-page; + break-after: auto; + orphans: 3; + widows: 3 +} +span.break, dd.break { + margin-bottom: 0; + min-height: 0; + break-before: auto; + break-inside: auto; + break-after: auto; +} +/* Undo break-before ToC */ +@media print { + #toc { + break-before: auto; + } +} +/* Text in compact lists should not get extra bottim margin space, + since that would makes the list not compact */ +ul.compact p, .ulCompact p, +ol.compact p, .olCompact p { + margin: 0; +} +/* But the list as a whole needs the extra space at the end */ +section ul.compact, +section .ulCompact, +section ol.compact, +section .olCompact { + margin-bottom: 1em; /* same as p not within ul.compact etc. */ +} +/* The tt and code background above interferes with for instance table cell + backgrounds. Changed to something a bit more selective. */ +tt, code { + background-color: transparent; +} +p tt, p code, li tt, li code { + background-color: #f8f8f8; +} +/* Tweak the pre margin -- 0px doesn't come out well */ +pre { + margin-top: 0.5px; +} +/* Tweak the comact list text */ +ul.compact, .ulCompact, +ol.compact, .olCompact, +dl.compact, .dlCompact { + line-height: normal; +} +/* Don't add top margin for nested lists */ +li > ul, li > ol, li > dl, +dd > ul, dd > ol, dd > dl, +dl > dd > dl { + margin-top: initial; +} +/* Elements that should not be rendered on the same line as a
    */ +/* This should match the element list in writer.text.TextWriter.render_dl() */ +dd > div.artwork:first-child, +dd > aside:first-child, +dd > figure:first-child, +dd > ol:first-child, +dd > div:first-child > pre.sourcecode, +dd > table:first-child, +dd > ul:first-child { + clear: left; +} +/* fix for weird browser behaviour when
    is empty */ +dt+dd:empty::before{ + content: "\00a0"; +} +/* Make paragraph spacing inside
  2. smaller than in body text, to fit better within the list */ +li > p { + margin-bottom: 0.5em +} +/* Don't let p margin spill out from inside list items */ +li > p:last-of-type { + margin-bottom: 0; +} + + + - - - - - - - - - - + +
    Network Working GroupA. Dulaunoy
    + - - - - - - - - - - - - - -
    Internet-DraftA. Iklody
    Intended status: InformationalCIRCL
    Expires: April 24, 2021October 21, 2020
    - -

    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 (Open Source Threat Intelligence Sharing Platform formerly known as Malware Information 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 Threat Intelligence Platforms.

    -

    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 24, 2021.

    -

    Copyright Notice

    -

    Copyright (c) 2020 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 (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 -

    -

    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 aim of this document is to describe the specification and the MISP core format.

    -

    -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 core format is in the JSON [RFC8259] format. In MISP, an event is composed of a single JSON object.

    -

    A capitalized key (like Event, Org) represent a data model and a non-capitalised key is just an attribute. This nomenclature can support an implementation to represent the MISP format in another data structure.

    -

    -2.2. Event -

    -

    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.

    -

    -2.2.1. Event Attributes -

    -

    -2.2.1.1. uuid -

    -

    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.

    -

    uuid is represented as a JSON string. uuid MUST be present.

    -

    -2.2.1.2. id -

    -

    id represents the human-readable identifier associated to the event for a specific MISP instance. A human-readable identifier MUST be represented as an unsigned integer.

    -

    id is represented as a JSON string. id SHALL be present.

    -

    -2.2.1.3. published -

    -

    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.

    -

    -2.2.1.4. info -

    -

    info represents the information field of the event. info is a free-text value to provide a human-readable summary of the event. info SHOULD NOT be bigger than 256 characters and SHOULD NOT include new-lines.

    -

    info is represented as a JSON string. info MUST be present.

    -

    -2.2.1.5. threat_level_id -

    -

    threat_level_id represents the threat level.

    -

    - -
    -
    4:
    -
    -
    Undefined
    -
    3:
    -
    -
    Low
    -
    2:
    -
    -
    Medium
    -
    1:
    -
    -
    High
    +MISP core format +February 2022 + + +Dulaunoy & Iklody +Expires 18 August 2022 +[Page] + + +
    +
    +
    +
    Workgroup:
    +
    Network Working Group
    +
    Internet-Draft:
    +
    draft-00
    +
    Published:
    +
    + +
    +
    Intended Status:
    +
    Informational
    +
    Expires:
    +
    +
    Authors:
    +
    +
    +
    A. Dulaunoy
    +
    CIRCL
    +
    +
    +
    A. Iklody
    +
    CIRCL
    +
    +
    - -

    -

    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. analysis -

    -

    analysis represents the analysis level.

    -

    - -
    -
    0:
    -
    -
    Initial
    -
    1:
    -
    -
    Ongoing
    -
    2:
    -
    -
    Complete
    +
    +

    MISP core format

    +
    +

    Abstract

    +

    This document describes the MISP core format used to exchange indicators and threat information between +MISP (Open Source Threat Intelligence Sharing Platform formerly known as Malware Information 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 Threat Intelligence Platforms.

    +
    +
    +
    +

    +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 18 August 2022.

    +
    +
    + +
    +
    +

    +Table of Contents +

    + +
    +
    +
    +
    +

    +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 aim of this document +is to describe the specification and the MISP core format.

    +
    +
    +

    +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 core format is in the JSON [RFC8259] format. In MISP, an event is composed of a single JSON object.

    +

    A capitalized key (like Event, Org) represent a data model and a non-capitalised key is just an attribute. This nomenclature +can support an implementation to represent the MISP format in another data structure.

    +
    +
    +
    +
    +

    +2.2. Event +

    +

    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.

    +
    +
    +

    +2.2.1. Event Attributes +

    +
    +
    +
    +2.2.1.1. uuid +
    +

    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.

    +

    uuid is represented as a JSON string. uuid MUST be present.

    +
    +
    +
    +
    +
    +2.2.1.2. id +
    +

    id represents the human-readable identifier associated to the event for a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer.

    +

    id is represented as a JSON string. id SHALL be present.

    +
    +
    +
    +
    +
    +2.2.1.3. published +
    +

    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.

    +
    +
    +
    +
    +
    +2.2.1.4. info +
    +

    info represents the information field of the event. info is a free-text value to provide a human-readable summary +of the event. info SHOULD NOT be bigger than 256 characters and SHOULD NOT include new-lines.

    +

    info is represented as a JSON string. info MUST be present.

    +
    +
    +
    +
    +
    +2.2.1.5. threat_level_id +
    +

    threat_level_id represents the threat level.

    +
    +
    4:
    +
    Undefined +
    +
    +
    3:
    +
    Low +
    +
    +
    2:
    +
    Medium +
    +
    +
    1:
    +
    High +
    +
    - -

    -

    If a higher granularity is required, a MISP taxonomy applied as a Tag SHOULD be preferred.

    -

    analysis is represented as a JSON string. analysis SHALL be present.

    -

    -2.2.1.7. date -

    -

    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 occurred, which may be in the past.

    -

    date is represented as a JSON string. date MUST be present.

    -

    -2.2.1.8. timestamp -

    -

    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.

    -

    timestamp is represented as a JSON string. timestamp MUST be present.

    -

    -2.2.1.9. publish_timestamp -

    -

    publish_timestamp represents a reference time when the event was 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. If the published_timestamp is present and the published flag is set to false, the publish_timestamp represents the previous publication timestamp. If the event was never published, the published_timestamp MUST be set to 0.

    -

    publish_timestamp is represented as a JSON string. publish_timestamp MUST be present.

    -

    -2.2.1.10. org_id -

    -

    org_id represents a human-readable identifier referencing an Org object of the organisation which generated the event. A human-readable identifier MUST be represented as an unsigned integer.

    -

    The org_id MUST be updated when the event is generated by a new instance.

    -

    org_id is represented as a JSON string. org_id MUST be present.

    -

    -2.2.1.11. orgc_id -

    -

    orgc_id represents a human-readable identifier referencing an Orgc object of the organisation which created the event.

    -

    The orgc_id and Org object MUST be preserved for any updates or transfer of the same event.

    -

    orgc_id is represented as a JSON string. orgc_id MUST be present.

    -

    -2.2.1.12. 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.

    -

    -2.2.1.13. distribution -

    -

    distribution represents the basic distribution rules of the event. The system must adhere to the distribution setting for access control and for dissemination of the event.

    -

    distribution is represented by a JSON string. distribution MUST be present and be one of the following options:

    -

    - -
    -
    0
    -
    -
    Your Organisation Only
    -
    1
    -
    -
    This Community Only
    -
    2
    -
    -
    Connected Communities
    -
    3
    -
    -
    All Communities
    -
    4
    -
    -
    Sharing Group
    +

    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. analysis +
    +

    analysis represents the analysis level.

    +
    +
    0:
    +
    Initial +
    +
    +
    1:
    +
    Ongoing +
    +
    +
    2:
    +
    Complete +
    +
    - -

    -

    -2.2.1.14. sharing_group_id -

    -

    sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the event, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer.

    -

    sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0".

    -

    -2.2.1.15. extends_uuid -

    -

    extends_uuid represents which event is extended by this event. The extends_uuid is described as a Universally Unique IDentifier (UUID) [RFC4122] with the UUID of the extended event.

    -

    extends_uuid is represented as a JSON string. extends_uuid SHOULD be present.

    -

    -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) [RFC4122] of the organisation. The organisation UUID is globally assigned to an organisation and SHALL be kept overtime.

    -

    The name is a readable description of the organisation and SHOULD be present. The id is a human-readable identifier generated by the instance and used as reference in the event. A human-readable identifier MUST be represented as an unsigned integer.

    -

    uuid, name and id are represented as a JSON string. uuid, name and id MUST be present.

    -

    -2.3.1.1. Sample Org Object -

    -
    -"Org": {
    +

    If a higher granularity is required, a MISP taxonomy applied as a Tag SHOULD be preferred.

    +

    analysis is represented as a JSON string. analysis SHALL be present.

    +
    +
    +
    +
    +
    +2.2.1.7. date +
    +

    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 occurred, which may be in the past.

    +

    date is represented as a JSON string. date MUST be present.

    +
    +
    +
    +
    +
    +2.2.1.8. timestamp +
    +

    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.

    +

    timestamp is represented as a JSON string. timestamp MUST be present.

    +
    +
    +
    +
    +
    +2.2.1.9. publish_timestamp +
    +

    publish_timestamp represents a reference time when the event was 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. If the published_timestamp is present and the published flag is set to false, the publish_timestamp represents the previous publication timestamp. If the event was never published, the published_timestamp MUST be set to 0.

    +

    publish_timestamp is represented as a JSON string. publish_timestamp MUST be present.

    +
    +
    +
    +
    +
    +2.2.1.10. org_id +
    +

    org_id represents a human-readable identifier referencing an Org object of the organisation which generated the event. A human-readable identifier MUST be +represented as an unsigned integer.

    +

    The org_id MUST be updated when the event is generated by a new instance.

    +

    org_id is represented as a JSON string. org_id MUST be present.

    +
    +
    +
    +
    +
    +2.2.1.11. orgc_id +
    +

    orgc_id represents a human-readable identifier referencing an Orgc object of the organisation which created the event.

    +

    The orgc_id and Org object MUST be preserved for any updates or transfer of the same event.

    +

    orgc_id is represented as a JSON string. orgc_id MUST be present.

    +
    +
    +
    +
    +
    +2.2.1.12. 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.

    +
    +
    +
    +
    +
    +2.2.1.13. distribution +
    +

    distribution represents the basic distribution rules of the event. The system must adhere to the distribution setting for access control and for dissemination of the event.

    +

    distribution is represented by a JSON string. distribution MUST be present and be one of the following options:

    +
    +
    0
    +
    Your Organisation Only +
    +
    +
    1
    +
    This Community Only +
    +
    +
    2
    +
    Connected Communities +
    +
    +
    3
    +
    All Communities +
    +
    +
    4
    +
    Sharing Group +
    +
    +
    +
    +
    +
    +
    +
    +2.2.1.14. sharing_group_id +
    +

    sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the event, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer.

    +

    sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0".

    +
    +
    +
    +
    +
    +2.2.1.15. extends_uuid +
    +

    extends_uuid represents which event is extended by this event. The extends_uuid is described as a Universally Unique IDentifier (UUID) [RFC4122] with the UUID of the extended event.

    +

    extends_uuid is represented as a JSON string. extends_uuid SHOULD be present.

    +
    +
    +
    +
    +
    +
    +

    +2.2.2. Event Objects +

    +
    +
    +
    +2.2.2.1. Org +
    +

    An Org object is composed of an uuid, name and id.

    +

    The uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the organisation. +The organisation UUID is globally assigned to an organisation and SHALL be kept overtime.

    +

    The name is a readable description of the organisation and SHOULD be present. +The id is a human-readable identifier generated by the instance and used as reference in the event. +A human-readable identifier MUST be represented as an unsigned integer.

    +

    uuid, name and id are represented as a JSON string. uuid, name and id MUST be present.

    +
    +
    +
    +2.2.2.1.1. Sample Org Object +
    +
    +
    "Org": {
             "id": "2",
             "name": "CIRCL",
             "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f"
            }
    -
    -

    -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 event. The organisation UUID is globally assigned to an organisation and SHALL be kept overtime.

    -

    The name is a readable description of the organisation and SHOULD be present. The id is a human-readable identifier generated by the instance and used as reference in the event. A human-readable identifier MUST be represented as an unsigned integer.

    -

    uuid, name and id are represented as a JSON string. uuid, name and id MUST be present.

    -

    -2.4. Attribute -

    -

    Attributes are used to describe the indicators and contextual data of an event. The main information contained in an attribute is made up of a category-type-value triplet, where the category and type give meaning and context to the value. Through the various category-type combinations a wide range of information can be conveyed.

    -

    A MISP document MUST at least includes category-type-value triplet described in section "Attribute Attributes".

    -

    -2.4.1. Sample Attribute Object -

    -
    -"Attribute": {
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +2.2.2.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 event. +The organisation UUID is globally assigned to an organisation and SHALL be kept overtime.

    +

    The name is a readable description of the organisation and SHOULD be present. +The id is a human-readable identifier generated by the instance and used as reference in the event. +A human-readable identifier MUST be represented as an unsigned integer.

    +

    uuid, name and id are represented as a JSON string. uuid, name and id MUST be present.

    +
    +
    +
    +
    +
    +
    +
    +
    +

    +2.3. Attribute +

    +

    Attributes are used to describe the indicators and contextual data of an event. The main information contained in an attribute is made up of a category-type-value triplet, +where the category and type give meaning and context to the value. Through the various category-type combinations a wide range of information can be conveyed.

    +

    A MISP document MUST at least includes category-type-value triplet described in section "Attribute Attributes".

    +
    +
    +

    +2.3.1. Sample Attribute Object +

    +
    +
    "Attribute": {
                   "id": "346056",
                   "type": "comment",
                   "category": "Other",
    @@ -797,185 +1786,285 @@
                   "first_seen": "2019-06-02T22:14:28.711954+00:00",
                   "last_seen": null
                  }
    -
    -

    -2.4.2. Attribute Attributes -

    -

    -2.4.2.1. uuid -

    -

    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.

    -

    uuid is represented as a JSON string. uuid MUST be present.

    -

    -2.4.2.2. id -

    -

    id represents the human-readable identifier associated to the event for a specific MISP instance. A human-readable identifier MUST be represented as an unsigned integer.

    -

    id is represented as a JSON string. id SHALL be present.

    -

    -2.4.2.3. type -

    -

    type represents the means through which an attribute tries to describe the intent of the attribute creator, using a list of pre-defined attribute types.

    -

    type is represented as a JSON string. type MUST be present and it MUST be a valid selection for the chosen category. The list of valid category-type combinations is as follows:

    -

    - -
    -
    Antivirus detection
    -
    -
    link, comment, text, hex, attachment, other, anonymised
    -
    Artifacts dropped
    -
    -
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern, yara, sigma, attachment, malware-sample, named pipe, mutex, windows-scheduled-task, windows-service-name, windows-service-displayname, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene, kusto-query, mime-type, anonymised, pgp-public-key, pgp-private-key
    -
    Attribution
    -
    -
    threat-actor, campaign-name, campaign-id, whois-registrant-phone, whois-registrant-email, whois-registrant-name, whois-registrant-org, whois-registrar, whois-creation-date, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, dns-soa-email, anonymised, email
    -
    External analysis
    -
    -
    md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512, filename, filename|md5, filename|sha1, filename|sha256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac-address, mac-eui-64, hostname, domain, domain|ip, url, user-agent, regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, vulnerability, cpe, weakness, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, github-repository, other, cortex, anonymised, community-id
    -
    Financial fraud
    -
    -
    btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-number, prtn, phone-number, comment, text, other, hex, anonymised
    -
    Internal reference
    -
    -
    text, link, comment, other, hex, anonymised, git-commit-id
    -
    Network activity
    -
    -
    ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email, email-dst, email-src, eppn, url, uri, user-agent, http-method, AS, snort, pattern-in-file, filename-pattern, stix2-pattern, pattern-in-traffic, attachment, comment, text, x509-fingerprint-md5, x509-fingerprint-sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek, anonymised, community-id, email-subject
    -
    Other
    -
    -
    comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean, anonymised, pgp-public-key, pgp-private-key
    -
    Payload delivery
    -
    -
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip-src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email, email-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, filename-pattern, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, other, hostname|port, email-dst-display-name, email-src-display-name, email-header, email-reply-to, email-x-mailer, email-mime-boundary, email-thread-index, email-message-id, mobile-application-id, chrome-extension-id, whois-registrant-email, anonymised
    -
    Payload installation
    -
    -
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara, sigma, vulnerability, cpe, weakness, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, chrome-extension-id, other, mime-type, anonymised
    -
    Payload type
    -
    -
    comment, text, other, anonymised
    -
    Persistence mechanism
    -
    -
    filename, regkey, regkey|value, comment, text, other, hex, anonymised
    -
    Person
    -
    -
    first-name, middle-name, last-name, date-of-birth, place-of-birth, gender, passport-number, passport-country, passport-expiration, redress-number, nationality, visa-number, issue-date-of-the-visa, primary-residence, country-of-residence, special-service-request, frequent-flyer-number, travel-details, payment-details, place-port-of-original-embarkation, place-port-of-clearance, place-port-of-onward-foreign-destination, passenger-name-record-locator-number, comment, text, other, phone-number, identity-card-number, anonymised, email, pgp-public-key, pgp-private-key
    -
    Social network
    -
    -
    github-username, github-repository, github-organisation, jabber-id, twitter-id, email, email-src, email-dst, eppn, comment, text, other, whois-registrant-email, anonymised, pgp-public-key, pgp-private-key
    -
    Support Tool
    -
    -
    link, text, attachment, comment, other, hex, anonymised
    -
    Targeting data
    -
    -
    target-user, target-email, target-machine, target-org, target-location, target-external, comment, anonymised
    + +
    +
    +
    +
    +
    +

    +2.3.2. Attribute Attributes +

    +
    +
    +
    +2.3.2.1. uuid +
    +

    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.

    +

    uuid is represented as a JSON string. uuid MUST be present.

    +
    +
    +
    +
    +
    +2.3.2.2. id +
    +

    id represents the human-readable identifier associated to the event for a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer.

    +

    id is represented as a JSON string. id SHALL be present.

    +
    +
    +
    +
    +
    +2.3.2.3. type +
    +

    type represents the means through which an attribute tries to describe the intent of the attribute creator, using a list of pre-defined attribute types.

    +

    type is represented as a JSON string. type MUST be present and it MUST be a valid selection for the chosen category. The list of valid category-type combinations is as follows:

    +
    +
    Antivirus detection
    +
    link, comment, text, hex, attachment, other, anonymised +
    +
    +
    Artifacts dropped
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern, yara, sigma, attachment, malware-sample, named pipe, mutex, process-state, windows-scheduled-task, windows-service-name, windows-service-displayname, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene, kusto-query, mime-type, anonymised, pgp-public-key, pgp-private-key +
    +
    +
    Attribution
    +
    threat-actor, campaign-name, campaign-id, whois-registrant-phone, whois-registrant-email, whois-registrant-name, whois-registrant-org, whois-registrar, whois-creation-date, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, dns-soa-email, anonymised, email +
    +
    +
    External analysis
    +
    md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512, filename, filename|md5, filename|sha1, filename|sha256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac-address, mac-eui-64, hostname, domain, domain|ip, url, user-agent, regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, vulnerability, cpe, weakness, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, github-repository, other, cortex, anonymised, community-id +
    +
    +
    Financial fraud
    +
    btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-number, prtn, phone-number, comment, text, other, hex, anonymised +
    +
    +
    Internal reference
    +
    text, link, comment, other, hex, anonymised, git-commit-id +
    +
    +
    Network activity
    +
    ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email, email-dst, email-src, eppn, url, uri, user-agent, http-method, AS, snort, pattern-in-file, filename-pattern, stix2-pattern, pattern-in-traffic, attachment, comment, text, x509-fingerprint-md5, x509-fingerprint-sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek, anonymised, community-id, email-subject, favicon-mmh3, dkim, dkim-signature +
    +
    +
    Other
    +
    comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean, anonymised, pgp-public-key, pgp-private-key +
    +
    +
    Payload delivery
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip-src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email, email-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, filename-pattern, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, other, hostname|port, email-dst-display-name, email-src-display-name, email-header, email-reply-to, email-x-mailer, email-mime-boundary, email-thread-index, email-message-id, mobile-application-id, chrome-extension-id, whois-registrant-email, anonymised +
    +
    +
    Payload installation
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara, sigma, vulnerability, cpe, weakness, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, chrome-extension-id, other, mime-type, anonymised +
    +
    +
    Payload type
    +
    comment, text, other, anonymised +
    +
    +
    Persistence mechanism
    +
    filename, regkey, regkey|value, comment, text, other, hex, anonymised +
    +
    +
    Person
    +
    first-name, middle-name, last-name, full-name, date-of-birth, place-of-birth, gender, passport-number, passport-country, passport-expiration, redress-number, nationality, visa-number, issue-date-of-the-visa, primary-residence, country-of-residence, special-service-request, frequent-flyer-number, travel-details, payment-details, place-port-of-original-embarkation, place-port-of-clearance, place-port-of-onward-foreign-destination, passenger-name-record-locator-number, comment, text, other, phone-number, identity-card-number, anonymised, email, pgp-public-key, pgp-private-key +
    +
    +
    Social network
    +
    github-username, github-repository, github-organisation, jabber-id, twitter-id, email, email-src, email-dst, eppn, comment, text, other, whois-registrant-email, anonymised, pgp-public-key, pgp-private-key +
    +
    +
    Support Tool
    +
    link, text, attachment, comment, other, hex, anonymised +
    +
    +
    Targeting data
    +
    target-user, target-email, target-machine, target-org, target-location, target-external, comment, anonymised +
    +
    - -

    -

    Attributes are based on the usage within their different communities. Attributes can be extended on a regular basis and this reference document is updated accordingly.

    -

    -2.4.2.4. category -

    -

    category represents the intent of what the attribute is describing as selected by the attribute creator, using a list of pre-defined attribute categories.

    -

    category is represented as a JSON string. category MUST be present and it MUST be a valid selection for the chosen type. The list of valid category-type combinations is mentioned above.

    -

    -2.4.2.5. to_ids -

    -

    to_ids represents whether the attribute is meant to be actionable. Actionable defined attributes that can be used in automated processes as a pattern for detection in Local or Network Intrusion Detection System, log analysis tools or even filtering mechanisms.

    -

    to_ids is represented as a JSON boolean. to_ids MUST be present.

    -

    -2.4.2.6. event_id -

    -

    event_id represents a human-readable identifier referencing the Event object that the attribute belongs to. A human-readable identifier MUST be represented as an unsigned integer.

    -

    The event_id SHOULD be updated when the event is imported to reflect the newly created event's id on the instance.

    -

    event_id is represented as a JSON string. event_id MUST be present.

    -

    -2.4.2.7. distribution -

    -

    distribution represents the basic distribution rules of the attribute. The system must adhere to the distribution setting for access control and for dissemination of the attribute.

    -

    distribution is represented by a JSON string. distribution MUST be present and be one of the following options:

    -

    - -
    -
    0
    -
    -
    Your Organisation Only
    -
    1
    -
    -
    This Community Only
    -
    2
    -
    -
    Connected Communities
    -
    3
    -
    -
    All Communities
    -
    4
    -
    -
    Sharing Group
    -
    5
    -
    -
    Inherit Event
    +

    Attributes are based on the usage within their different communities. Attributes can be extended on a regular basis and this reference document is updated accordingly.

    +
    +
    +
    +
    +
    +2.3.2.4. category +
    +

    category represents the intent of what the attribute is describing as selected by the attribute creator, using a list of pre-defined attribute categories.

    +

    category is represented as a JSON string. category MUST be present and it MUST be a valid selection for the chosen type. The list of valid category-type combinations is mentioned above.

    +
    +
    +
    +
    +
    +2.3.2.5. to_ids +
    +

    to_ids represents whether the attribute is meant to be actionable. Actionable defined attributes that can be used in automated processes as a pattern for detection in Local or Network Intrusion Detection System, log analysis tools or even filtering mechanisms.

    +

    to_ids is represented as a JSON boolean. to_ids MUST be present.

    +
    +
    +
    +
    +
    +2.3.2.6. event_id +
    +

    event_id represents a human-readable identifier referencing the Event object that the attribute belongs to. A human-readable identifier MUST be +represented as an unsigned integer.

    +

    The event_id SHOULD be updated when the event is imported to reflect the newly created event's id on the instance.

    +

    event_id is represented as a JSON string. event_id MUST be present.

    +
    +
    +
    +
    +
    +2.3.2.7. distribution +
    +

    distribution represents the basic distribution rules of the attribute. The system must adhere to the distribution setting for access control and for dissemination of the attribute.

    +

    distribution is represented by a JSON string. distribution MUST be present and be one of the following options:

    +
    +
    0
    +
    Your Organisation Only +
    +
    +
    1
    +
    This Community Only +
    +
    +
    2
    +
    Connected Communities +
    +
    +
    3
    +
    All Communities +
    +
    +
    4
    +
    Sharing Group +
    +
    +
    5
    +
    Inherit Event +
    +
    - -

    -

    -2.4.2.8. timestamp -

    -

    timestamp represents a reference time when the attribute was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.

    -

    timestamp is represented as a JSON string. timestamp MUST be present.

    -

    -2.4.2.9. comment -

    -

    comment is a contextual comment field.

    -

    comment is represented by a JSON string. comment MAY be present.

    -

    -2.4.2.10. sharing_group_id -

    -

    sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the attribute, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer.

    -

    sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0".

    -

    -2.4.2.11. deleted -

    -

    deleted represents a setting that allows attributes to be revoked. Revoked attributes are not actionable and exist merely to inform other instances of a revocation.

    -

    deleted is represented by a JSON boolean. deleted MUST be present.

    -

    -2.4.2.12. data -

    -

    data contains the base64 encoded contents of an attachment or a malware sample. For malware samples, the sample MUST be encrypted using a password protected zip archive, with the password being "infected".

    -

    data is represented by a JSON string in base64 encoding. data MUST be set for attributes of type malware-sample and attachment.

    -

    -2.4.2.13. RelatedAttribute -

    -

    RelatedAttribute is an array of attributes correlating with the current attribute. Each element in the array represents an JSON object which contains an Attribute dictionnary with the external attributes who correlate. Each Attribute MUST include the id, org_id, info and a value. Only the correlations found on the local instance are shown in RelatedAttribute.

    -

    RelatedAttribute MAY be present.

    -

    -2.4.2.14. ShadowAttribute -

    -

    ShadowAttribute is an array of shadow attributes that serve as proposals by third parties to alter the containing attribute. The structure of a ShadowAttribute is similar to that of an Attribute, which can be accepted or discarded by the event creator. If accepted, the original attribute containing the shadow attribute is removed and the shadow attribute is converted into an attribute.

    -

    Each shadow attribute that references an attribute MUST contain the containing attribute's ID in the old_id field and the event's ID in the event_id field.

    -

    -2.4.2.15. value -

    -

    value represents the payload of an attribute. The format of the value is dependent on the type of the attribute.

    -

    value is represented by a JSON string. value MUST be present.

    -

    -2.4.2.16. first_seen -

    -

    first_seen represents a reference time when the attribute was first seen. first_seen is expressed as an ISO 8601 datetime up to the micro-second with time zone support.

    -

    first_seen is represented as a JSON string. first_seen MAY be present.

    -

    -2.4.2.17. last_seen -

    -

    last_seen represents a reference time when the attribute was last seen. last_seen is expressed as an ISO 8601 datetime up to the micro-second with time zone support.

    -

    last_seen is represented as a JSON string. last_seen MAY be present.

    -

    -2.5. ShadowAttribute -

    -

    ShadowAttributes are 3rd party created attributes that either propose to add new information to an event or modify existing information. They are not meant to be actionable until the event creator accepts them - at which point they will be converted into attributes or modify an existing attribute.

    -

    They are similar in structure to Attributes but additionally carry a reference to the creator of the ShadowAttribute as well as a revocation flag.

    -

    -2.5.1. Sample Attribute Object -

    -
    -"ShadowAttribute":  {
    +
    +
    +
    +
    +
    +2.3.2.8. timestamp +
    +

    timestamp represents a reference time when the attribute was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.

    +

    timestamp is represented as a JSON string. timestamp MUST be present.

    +
    +
    +
    +
    +
    +2.3.2.9. comment +
    +

    comment is a contextual comment field.

    +

    comment is represented by a JSON string. comment MAY be present.

    +
    +
    +
    +
    +
    +2.3.2.10. sharing_group_id +
    +

    sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the attribute, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer.

    +

    sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0".

    +
    +
    +
    +
    +
    +2.3.2.11. deleted +
    +

    deleted represents a setting that allows attributes to be revoked. Revoked attributes are not actionable and exist merely to inform other instances of a revocation.

    +

    deleted is represented by a JSON boolean. deleted MUST be present.

    +
    +
    +
    +
    +
    +2.3.2.12. data +
    +

    data contains the base64 encoded contents of an attachment or a malware sample. For malware samples, +the sample MUST be encrypted using a password protected zip archive, with the password being "infected".

    +

    data is represented by a JSON string in base64 encoding. data MUST be set for attributes of type malware-sample and attachment.

    +
    +
    +
    +
    +
    +2.3.2.13. RelatedAttribute +
    +

    RelatedAttribute is an array of attributes correlating with the current attribute. Each element in the array represents an JSON object which contains an Attribute dictionnary with the external attributes who correlate. Each Attribute MUST include the id, org_id, info and a value. Only the correlations found on the local instance are shown in RelatedAttribute.

    +

    RelatedAttribute MAY be present.

    +
    +
    +
    +
    +
    +2.3.2.14. ShadowAttribute +
    +

    ShadowAttribute is an array of shadow attributes that serve as proposals by third parties to alter the containing attribute. The structure of a ShadowAttribute is similar to that of an Attribute, +which can be accepted or discarded by the event creator. If accepted, the original attribute containing the shadow attribute is removed and the shadow attribute is converted into an attribute.

    +

    Each shadow attribute that references an attribute MUST contain the containing attribute's ID in the old_id field and the event's ID in the event_id field.

    +
    +
    +
    +
    +
    +2.3.2.15. value +
    +

    value represents the payload of an attribute. The format of the value is dependent on the type of the attribute.

    +

    value is represented by a JSON string. value MUST be present.

    +
    +
    +
    +
    +
    +2.3.2.16. first_seen +
    +

    first_seen represents a reference time when the attribute was first seen. first_seen is expressed as an ISO 8601 datetime up to the micro-second with time zone support.

    +

    first_seen is represented as a JSON string. first_seen MAY be present.

    +
    +
    +
    +
    +
    +2.3.2.17. last_seen +
    +

    last_seen represents a reference time when the attribute was last seen. last_seen is expressed as an ISO 8601 datetime up to the micro-second with time zone support.

    +

    last_seen is represented as a JSON string. last_seen MAY be present.

    +
    +
    +
    +
    +
    +
    +
    +
    +

    +2.4. ShadowAttribute +

    +

    ShadowAttributes are 3rd party created attributes that either propose to add new information to an event or modify existing information. They are not meant to be actionable until the event creator accepts them - at which point they will be converted into attributes or modify an existing attribute.

    +

    They are similar in structure to Attributes but additionally carry a reference to the creator of the ShadowAttribute as well as a revocation flag.

    +
    +
    +

    +2.4.1. Sample Attribute Object +

    +
    +
    "ShadowAttribute":  {
                            "id": "8",
                            "type": "ip-src",
                            "category": "Network activity",
    @@ -997,178 +2086,289 @@
                            "first_seen": "2019-06-02T22:14:28.711954+00:00",
                            "last_seen": null
                        }
    -
    -

    -2.5.2. ShadowAttribute Attributes -

    -

    -2.5.2.1. uuid -

    -

    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.

    -

    uuid is represented as a JSON string. uuid MUST be present.

    -

    -2.5.2.2. id -

    -

    id represents the human-readable identifier associated to the event for a specific MISP instance. human-readable identifier MUST be represented as an unsigned integer. id is represented as a JSON string. id SHALL be present.

    -

    -2.5.2.3. type -

    -

    type represents the means through which an attribute tries to describe the intent of the attribute creator, using a list of pre-defined attribute types.

    -

    type is represented as a JSON string. type MUST be present and it MUST be a valid selection for the chosen category. The list of valid category-type combinations is as follows:

    -

    - -
    -
    Antivirus detection
    -
    -
    link, comment, text, hex, attachment, other, anonymised
    -
    Artifacts dropped
    -
    -
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern, yara, sigma, attachment, malware-sample, named pipe, mutex, windows-scheduled-task, windows-service-name, windows-service-displayname, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene, kusto-query, mime-type, anonymised, pgp-public-key, pgp-private-key
    -
    Attribution
    -
    -
    threat-actor, campaign-name, campaign-id, whois-registrant-phone, whois-registrant-email, whois-registrant-name, whois-registrant-org, whois-registrar, whois-creation-date, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, dns-soa-email, anonymised, email
    -
    External analysis
    -
    -
    md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512, filename, filename|md5, filename|sha1, filename|sha256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac-address, mac-eui-64, hostname, domain, domain|ip, url, user-agent, regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, vulnerability, cpe, weakness, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, github-repository, other, cortex, anonymised, community-id
    -
    Financial fraud
    -
    -
    btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-number, prtn, phone-number, comment, text, other, hex, anonymised
    -
    Internal reference
    -
    -
    text, link, comment, other, hex, anonymised, git-commit-id
    -
    Network activity
    -
    -
    ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email, email-dst, email-src, eppn, url, uri, user-agent, http-method, AS, snort, pattern-in-file, filename-pattern, stix2-pattern, pattern-in-traffic, attachment, comment, text, x509-fingerprint-md5, x509-fingerprint-sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek, anonymised, community-id, email-subject
    -
    Other
    -
    -
    comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean, anonymised, pgp-public-key, pgp-private-key
    -
    Payload delivery
    -
    -
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip-src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email, email-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, filename-pattern, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, other, hostname|port, email-dst-display-name, email-src-display-name, email-header, email-reply-to, email-x-mailer, email-mime-boundary, email-thread-index, email-message-id, mobile-application-id, chrome-extension-id, whois-registrant-email, anonymised
    -
    Payload installation
    -
    -
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara, sigma, vulnerability, cpe, weakness, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, chrome-extension-id, other, mime-type, anonymised
    -
    Payload type
    -
    -
    comment, text, other, anonymised
    -
    Persistence mechanism
    -
    -
    filename, regkey, regkey|value, comment, text, other, hex, anonymised
    -
    Person
    -
    -
    first-name, middle-name, last-name, date-of-birth, place-of-birth, gender, passport-number, passport-country, passport-expiration, redress-number, nationality, visa-number, issue-date-of-the-visa, primary-residence, country-of-residence, special-service-request, frequent-flyer-number, travel-details, payment-details, place-port-of-original-embarkation, place-port-of-clearance, place-port-of-onward-foreign-destination, passenger-name-record-locator-number, comment, text, other, phone-number, identity-card-number, anonymised, email, pgp-public-key, pgp-private-key
    -
    Social network
    -
    -
    github-username, github-repository, github-organisation, jabber-id, twitter-id, email, email-src, email-dst, eppn, comment, text, other, whois-registrant-email, anonymised, pgp-public-key, pgp-private-key
    -
    Support Tool
    -
    -
    link, text, attachment, comment, other, hex, anonymised
    -
    Targeting data
    -
    -
    target-user, target-email, target-machine, target-org, target-location, target-external, comment, anonymised
    + +
    +
    +
    +
    +
    +

    +2.4.2. ShadowAttribute Attributes +

    +
    +
    +
    +2.4.2.1. uuid +
    +

    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.

    +

    uuid is represented as a JSON string. uuid MUST be present.

    +
    +
    +
    +
    +
    +2.4.2.2. id +
    +

    id represents the human-readable identifier associated to the event for a specific MISP instance. human-readable identifier MUST be represented as an unsigned integer. +id is represented as a JSON string. id SHALL be present.

    +
    +
    +
    +
    +
    +2.4.2.3. type +
    +

    type represents the means through which an attribute tries to describe the intent of the attribute creator, using a list of pre-defined attribute types.

    +

    type is represented as a JSON string. type MUST be present and it MUST be a valid selection for the chosen category. The list of valid category-type combinations is as follows:

    +
    +
    Antivirus detection
    +
    link, comment, text, hex, attachment, other, anonymised +
    +
    +
    Artifacts dropped
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern, yara, sigma, attachment, malware-sample, named pipe, mutex, process-state, windows-scheduled-task, windows-service-name, windows-service-displayname, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene, kusto-query, mime-type, anonymised, pgp-public-key, pgp-private-key +
    +
    +
    Attribution
    +
    threat-actor, campaign-name, campaign-id, whois-registrant-phone, whois-registrant-email, whois-registrant-name, whois-registrant-org, whois-registrar, whois-creation-date, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, dns-soa-email, anonymised, email +
    +
    +
    External analysis
    +
    md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512, filename, filename|md5, filename|sha1, filename|sha256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac-address, mac-eui-64, hostname, domain, domain|ip, url, user-agent, regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, vulnerability, cpe, weakness, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, github-repository, other, cortex, anonymised, community-id +
    +
    +
    Financial fraud
    +
    btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-number, prtn, phone-number, comment, text, other, hex, anonymised +
    +
    +
    Internal reference
    +
    text, link, comment, other, hex, anonymised, git-commit-id +
    +
    +
    Network activity
    +
    ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email, email-dst, email-src, eppn, url, uri, user-agent, http-method, AS, snort, pattern-in-file, filename-pattern, stix2-pattern, pattern-in-traffic, attachment, comment, text, x509-fingerprint-md5, x509-fingerprint-sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek, anonymised, community-id, email-subject, favicon-mmh3, dkim, dkim-signature +
    +
    +
    Other
    +
    comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean, anonymised, pgp-public-key, pgp-private-key +
    +
    +
    Payload delivery
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip-src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email, email-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, filename-pattern, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, other, hostname|port, email-dst-display-name, email-src-display-name, email-header, email-reply-to, email-x-mailer, email-mime-boundary, email-thread-index, email-message-id, mobile-application-id, chrome-extension-id, whois-registrant-email, anonymised +
    +
    +
    Payload installation
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara, sigma, vulnerability, cpe, weakness, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, chrome-extension-id, other, mime-type, anonymised +
    +
    +
    Payload type
    +
    comment, text, other, anonymised +
    +
    +
    Persistence mechanism
    +
    filename, regkey, regkey|value, comment, text, other, hex, anonymised +
    +
    +
    Person
    +
    first-name, middle-name, last-name, full-name, date-of-birth, place-of-birth, gender, passport-number, passport-country, passport-expiration, redress-number, nationality, visa-number, issue-date-of-the-visa, primary-residence, country-of-residence, special-service-request, frequent-flyer-number, travel-details, payment-details, place-port-of-original-embarkation, place-port-of-clearance, place-port-of-onward-foreign-destination, passenger-name-record-locator-number, comment, text, other, phone-number, identity-card-number, anonymised, email, pgp-public-key, pgp-private-key +
    +
    +
    Social network
    +
    github-username, github-repository, github-organisation, jabber-id, twitter-id, email, email-src, email-dst, eppn, comment, text, other, whois-registrant-email, anonymised, pgp-public-key, pgp-private-key +
    +
    +
    Support Tool
    +
    link, text, attachment, comment, other, hex, anonymised +
    +
    +
    Targeting data
    +
    target-user, target-email, target-machine, target-org, target-location, target-external, comment, anonymised +
    +
    - -

    -

    Attributes are based on the usage within their different communities. Attributes can be extended on a regular basis and this reference document is updated accordingly.

    -

    -2.5.2.4. category -

    -

    category represents the intent of what the attribute is describing as selected by the attribute creator, using a list of pre-defined attribute categories.

    -

    category is represented as a JSON string. category MUST be present and it MUST be a valid selection for the chosen type. The list of valid category-type combinations is mentioned above.

    -

    -2.5.2.5. to_ids -

    -

    to_ids represents whether the Attribute to be created if the ShadowAttribute is accepted is meant to be actionable. Actionable defined attributes that can be used in automated processes as a pattern for detection in Local or Network Intrusion Detection System, log analysis tools or even filtering mechanisms.

    -

    to_ids is represented as a JSON boolean. to_ids MUST be present.

    -

    -2.5.2.6. event_id -

    -

    event_id represents a human-readable identifier referencing the Event object that the ShadowAttribute belongs to.

    -

    The event_id SHOULD be updated when the event is imported to reflect the newly created event's id on the instance.

    -

    event_id is represented as a JSON string. event_id MUST be present.

    -

    -2.5.2.7. old_id -

    -

    old_id represents a human-readable identifier referencing the Attribute object that the ShadowAttribute belongs to. A ShadowAttribute can this way target an existing Attribute, implying that it is a proposal to modify an existing Attribute, or alternatively it can be a proposal to create a new Attribute for the containing Event.

    -

    The old_id SHOULD be updated when the event is imported to reflect the newly created Attribute's id on the instance. Alternatively, if the ShadowAttribute proposes the creation of a new Attribute, it should be set to 0.

    -

    old_id is represented as a JSON string. old_id MUST be present.

    -

    -2.5.2.8. timestamp -

    -

    timestamp represents a reference time when the attribute was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.

    -

    timestamp is represented as a JSON string. timestamp MUST be present.

    -

    -2.5.2.9. comment -

    -

    comment is a contextual comment field.

    -

    comment is represented by a JSON string. comment MAY be present.

    -

    -2.5.2.10. org_id -

    -

    org_id represents a human-readable identifier referencing the proposal creator's Organisation object. A human-readable identifier MUST be represented as an unsigned integer.

    -

    Whilst attributes can only be created by the event creator organisation, shadow attributes can be created by third parties. org_id tracks the creator organisation.

    -

    org_id is represented by a JSON string and MUST be present.

    -

    -2.5.2.11. proposal_to_delete -

    -

    proposal_to_delete is a boolean flag that sets whether the shadow attribute proposes to alter an attribute, or whether it proposes to remove it completely.

    -

    Accepting a shadow attribute with this flag set will remove the target attribute.

    -

    proposal_to_delete is a JSON boolean and it MUST be present. If proposal_to_delete is set to true, old_id MUST NOT be 0.

    -

    -2.5.2.12. deleted -

    -

    deleted represents a setting that allows shadow attributes to be revoked. Revoked shadow attributes only serve to inform other instances that the shadow attribute is no longer active.

    -

    deleted is represented by a JSON boolean. deleted SHOULD be present.

    -

    -2.5.2.13. data -

    -

    data contains the base64 encoded contents of an attachment or a malware sample. For malware samples, the sample MUST be encrypted using a password protected zip archive, with the password being "infected".

    -

    data is represented by a JSON string in base64 encoding. data MUST be set for shadow attributes of type malware-sample and attachment.

    -

    -2.5.2.14. first_seen -

    -

    first_seen represents a reference time when the attribute was first seen. first_seen as an ISO 8601 datetime up to the micro-second with time zone support.

    -

    first_seen is represented as a JSON string. first_seen MAY be present.

    -

    -2.5.2.15. last_seen -

    -

    last_seen represents a reference time when the attribute was last seen. last_seen as an ISO 8601 datetime up to the micro-second with time zone support.

    -

    last_seen is represented as a JSON string. last_seen MAY be present.

    -

    -2.5.3. Org -

    -

    An Org object is composed of an uuid, name and id.

    -

    The uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the organization. The organization UUID is globally assigned to an organization and SHALL be kept overtime.

    -

    The name is a readable description of the organization and SHOULD be present. The id is a human-readable identifier generated by the instance and used as reference in the event. A human-readable identifier MUST be represented as an unsigned integer.

    -

    uuid, name and id are represented as a JSON string. uuid, name and id MUST be present.

    -

    -2.5.3.1. Sample Org Object -

    -
    -"Org": {
    +

    Attributes are based on the usage within their different communities. Attributes can be extended on a regular basis and this reference document is updated accordingly.

    +
    +
    +
    +
    +
    +2.4.2.4. category +
    +

    category represents the intent of what the attribute is describing as selected by the attribute creator, using a list of pre-defined attribute categories.

    +

    category is represented as a JSON string. category MUST be present and it MUST be a valid selection for the chosen type. The list of valid category-type combinations is mentioned above.

    +
    +
    +
    +
    +
    +2.4.2.5. to_ids +
    +

    to_ids represents whether the Attribute to be created if the ShadowAttribute is accepted is meant to be actionable. Actionable defined attributes that can be used in automated processes as a pattern for detection in Local or Network Intrusion Detection System, log analysis tools or even filtering mechanisms.

    +

    to_ids is represented as a JSON boolean. to_ids MUST be present.

    +
    +
    +
    +
    +
    +2.4.2.6. event_id +
    +

    event_id represents a human-readable identifier referencing the Event object that the ShadowAttribute belongs to.

    +

    The event_id SHOULD be updated when the event is imported to reflect the newly created event's id on the instance.

    +

    event_id is represented as a JSON string. event_id MUST be present.

    +
    +
    +
    +
    +
    +2.4.2.7. old_id +
    +

    old_id represents a human-readable identifier referencing the Attribute object that the ShadowAttribute belongs to. A ShadowAttribute can this way target an existing Attribute, implying that it is a proposal to modify an existing Attribute, or alternatively it can be a proposal to create a new Attribute for the containing Event.

    +

    The old_id SHOULD be updated when the event is imported to reflect the newly created Attribute's id on the instance. Alternatively, if the ShadowAttribute proposes the creation of a new Attribute, it should be set to 0.

    +

    old_id is represented as a JSON string. old_id MUST be present.

    +
    +
    +
    +
    +
    +2.4.2.8. timestamp +
    +

    timestamp represents a reference time when the attribute was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.

    +

    timestamp is represented as a JSON string. timestamp MUST be present.

    +
    +
    +
    +
    +
    +2.4.2.9. comment +
    +

    comment is a contextual comment field.

    +

    comment is represented by a JSON string. comment MAY be present.

    +
    +
    +
    +
    +
    +2.4.2.10. org_id +
    +

    org_id represents a human-readable identifier referencing the proposal creator's Organisation object. A human-readable identifier MUST be represented as an unsigned integer.

    +

    Whilst attributes can only be created by the event creator organisation, shadow attributes can be created by third parties. org_id tracks the creator organisation.

    +

    org_id is represented by a JSON string and MUST be present.

    +
    +
    +
    +
    +
    +2.4.2.11. proposal_to_delete +
    +

    proposal_to_delete is a boolean flag that sets whether the shadow attribute proposes to alter an attribute, or whether it proposes to remove it completely.

    +

    Accepting a shadow attribute with this flag set will remove the target attribute.

    +

    proposal_to_delete is a JSON boolean and it MUST be present. If proposal_to_delete is set to true, old_id MUST NOT be 0.

    +
    +
    +
    +
    +
    +2.4.2.12. deleted +
    +

    deleted represents a setting that allows shadow attributes to be revoked. Revoked shadow attributes only serve to inform other instances that the shadow attribute is no longer active.

    +

    deleted is represented by a JSON boolean. deleted SHOULD be present.

    +
    +
    +
    +
    +
    +2.4.2.13. data +
    +

    data contains the base64 encoded contents of an attachment or a malware sample. For malware samples, +the sample MUST be encrypted using a password protected zip archive, with the password being "infected".

    +

    data is represented by a JSON string in base64 encoding. data MUST be set for shadow attributes of type malware-sample and attachment.

    +
    +
    +
    +
    +
    +2.4.2.14. first_seen +
    +

    first_seen represents a reference time when the attribute was first seen. first_seen as an ISO 8601 datetime up to the micro-second with time zone support.

    +

    first_seen is represented as a JSON string. first_seen MAY be present.

    +
    +
    +
    +
    +
    +2.4.2.15. last_seen +
    +

    last_seen represents a reference time when the attribute was last seen. last_seen as an ISO 8601 datetime up to the micro-second with time zone support.

    +

    last_seen is represented as a JSON string. last_seen MAY be present.

    +
    +
    +
    +
    +
    +2.4.2.16. value +
    +

    value represents the payload of an attribute. The format of the value is dependent on the type of the attribute.

    +

    value is represented by a JSON string. value MUST be present.

    +
    +
    +
    +
    +
    +
    +

    +2.4.3. ShadowAttribute Objects +

    +
    +
    +
    +2.4.3.1. Org +
    +

    An Org object is composed of an uuid, name and id.

    +

    The uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the organization. +The organization UUID is globally assigned to an organization and SHALL be kept overtime.

    +

    The name is a readable description of the organization and SHOULD be present. +The id is a human-readable identifier generated by the instance and used as reference in the event. +A human-readable identifier MUST be represented as an unsigned integer.

    +

    uuid, name and id are represented as a JSON string. uuid, name and id MUST be present.

    +
    +
    +
    +2.4.3.1.1. Sample Org Object +
    +
    +
    "Org": {
             "id": "2",
             "name": "CIRCL",
             "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f"
            }
    -
    -

    -2.5.3.2. value -

    -

    value represents the payload of an attribute. The format of the value is dependent on the type of the attribute.

    -

    value is represented by a JSON string. value MUST be present.

    -

    -2.6. Object -

    -

    Objects serve as a contextual bond between a list of attributes within an event. Their main purpose is to describe more complex structures than can be described by a single attribute Each object is created using an Object Template and carries the meta-data of the template used for its creation within. Objects belong to a meta-category and are defined by a name.

    -

    The schema used is described by the template_uuid and template_version fields.

    -

    A MISP document containing an Object MUST contain a name, a meta-category, a description, a template_uuid and a template_version as described in the "Object Attributes" section.

    -

    -2.6.1. Sample Object -

    -
    -
    -
    -"Object": {
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +2.5. Object +

    +

    Objects serve as a contextual bond between a list of attributes within an event. Their main purpose is to describe more complex structures than can be described by a single attribute +Each object is created using an Object Template and carries the meta-data of the template used for its creation within. Objects belong to a meta-category and are defined by a name.

    +

    The schema used is described by the template_uuid and template_version fields.

    +

    A MISP document containing an Object MUST contain a name, a meta-category, a description, a template_uuid and a template_version as described in the "Object Attributes" section.

    +
    +
    +

    +2.5.1. Sample Object +

    +
    +
    +
    "Object": {
        "id": "588",
        "name": "file",
        "meta-category": "file",
    @@ -1208,121 +2408,206 @@
          "last_seen": null
        ]
     }
    -
    -

    Figure 1

    -

    -2.6.2. Object Attributes -

    -

    -2.6.2.1. uuid -

    -

    uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object. The uuid MUST be preserved for any updates or transfer of the same object. UUID version 4 is RECOMMENDED when assigning it to a new object.

    -

    -2.6.2.2. id -

    -

    id represents the human-readable identifier associated to the object for a specific MISP instance. A human-readable identifier MUST be represented as an unsigned integer.

    -

    id is represented as a JSON string. id SHALL be present.

    -

    -2.6.2.3. name -

    -

    name represents the human-readable name of the object describing the intent of the object package.

    -

    name is represented as a JSON string. name MUST be present

    -

    -2.6.2.4. meta-category -

    -

    meta-category represents the sub-category of objects that the given object belongs to. meta-categories are not tied to a fixed list of options but can be created on the fly.

    -

    meta-category is represented as a JSON string. meta-category MUST be present

    -

    -2.6.2.5. description -

    -

    description is a human-readable description of the given object type, as derived from the template used for creation.

    -

    description is represented as a JSON string. id SHALL be present.

    -

    -2.6.2.6. template_uuid -

    -

    uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the template used to create the object. The uuid MUST be preserved to preserve the object's association with the correct template used for creation. UUID version 4 is RECOMMENDED when assigning it to a new object.

    -

    -2.6.2.7. template_version -

    -

    template_version represents a numeric incrementing version of the template used to create the object. It is used to associate the object to the correct version of the template and together with the template_uuid forms an association to the correct template type and version.

    -

    version is represented as a JSON string. version MUST be present.

    -

    -2.6.2.8. event_id -

    -

    event_id represents the human-readable identifier of the event that the object belongs to on a specific MISP instance. A human-readable identifier MUST be represented as an unsigned integer.

    -

    event_id is represented as a JSON string. event_id SHALL be present.

    -

    -2.6.2.9. timestamp -

    -

    timestamp represents a reference time when the object was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.

    -

    timestamp is represented as a JSON string. timestamp MUST be present.

    -

    -2.6.2.10. distribution -

    -

    distribution represents the basic distribution rules of the object. The system must adhere to the distribution setting for access control and for dissemination of the object.

    -

    distribution is represented by a JSON string. distribution MUST be present and be one of the following options:

    -

    - -
    -
    0
    -
    -
    Your Organisation Only
    -
    1
    -
    -
    This Community Only
    -
    2
    -
    -
    Connected Communities
    -
    3
    -
    -
    All Communities
    -
    4
    -
    -
    Sharing Group
    + +
    +
    +
    +
    +
    +
    +

    +2.5.2. Object Attributes +

    +
    +
    +
    +2.5.2.1. uuid +
    +

    uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object. The uuid MUST be preserved +for any updates or transfer of the same object. UUID version 4 is RECOMMENDED when assigning it to a new object.

    +
    +
    +
    +
    +
    +2.5.2.2. id +
    +

    id represents the human-readable identifier associated to the object for a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer.

    +

    id is represented as a JSON string. id SHALL be present.

    +
    +
    +
    +
    +
    +2.5.2.3. name +
    +

    name represents the human-readable name of the object describing the intent of the object package.

    +

    name is represented as a JSON string. name MUST be present.

    +
    +
    +
    +
    +
    +2.5.2.4. meta-category +
    +

    meta-category represents the sub-category of objects that the given object belongs to. meta-categories are not +tied to a fixed list of options but can be created on the fly.

    +

    meta-category is represented as a JSON string. meta-category MUST be present.

    +
    +
    +
    +
    +
    +2.5.2.5. description +
    +

    description is a human-readable description of the given object type, as derived from the template used for creation.

    +

    description is represented as a JSON string. description SHALL be present.

    +
    +
    +
    +
    +
    +2.5.2.6. template_uuid +
    +

    template_uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the template used to create the object. The uuid MUST be preserved +to preserve the object's association with the correct template used for creation. UUID version 4 is RECOMMENDED when assigning it to a new object.

    +

    template_uuid is represented as a JSON string. template_uuid MUST be present.

    +
    +
    +
    +
    +
    +2.5.2.7. template_version +
    +

    template_version represents a numeric incrementing version of the template used to create the object. It is used to associate the object to the +correct version of the template and together with the template_uuid forms an association to the correct template type and version.

    +

    template_version is represented as a JSON string. template_version MUST be present.

    +
    +
    +
    +
    +
    +2.5.2.8. event_id +
    +

    event_id represents the human-readable identifier of the event that the object belongs to on a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer.

    +

    event_id is represented as a JSON string. event_id SHALL be present.

    +
    +
    +
    +
    +
    +2.5.2.9. timestamp +
    +

    timestamp represents a reference time when the object was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.

    +

    timestamp is represented as a JSON string. timestamp MUST be present.

    +
    +
    +
    +
    +
    +2.5.2.10. distribution +
    +

    distribution represents the basic distribution rules of the object. The system must adhere to the distribution setting for access control and for dissemination of the object.

    +

    distribution is represented by a JSON string. distribution MUST be present and be one of the following options:

    +
    +
    0
    +
    Your Organisation Only +
    +
    +
    1
    +
    This Community Only +
    +
    +
    2
    +
    Connected Communities +
    +
    +
    3
    +
    All Communities +
    +
    +
    4
    +
    Sharing Group +
    +
    - -

    -

    -2.6.2.11. sharing_group_id -

    -

    sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the object, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer.

    -

    sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0".

    -

    -2.6.2.12. comment -

    -

    comment is a contextual comment field.

    -

    comment is represented by a JSON string. comment MAY be present.

    -

    -2.6.2.13. deleted -

    -

    deleted represents a setting that allows attributes to be revoked. Revoked attributes are not actionable and exist merely to inform other instances of a revocation.

    -

    deleted is represented by a JSON boolean. deleted MUST be present.

    -

    -2.6.2.14. Attribute -

    -

    Attribute is an array of attributes that describe the object with data.

    -

    Each attribute in an object MUST contain the parent event's ID in the event_id field and the parent object's ID in the object_id field.

    -

    -2.6.2.15. first_seen -

    -

    first_seen represents a reference time when the object was first seen. first_seen as an ISO 8601 datetime up to the micro-second with time zone support.

    -

    first_seen is represented as a JSON string. first_seen MAY be present.

    -

    -2.6.2.16. last_seen -

    -

    last_seen represents a reference time when the object was last seen. last_seen as an ISO 8601 datetime up to the micro-second with time zone support.

    -

    last_seen is represented as a JSON string. last_seen MAY be present.

    -

    -2.7. Object References -

    -

    Object References serve as a logical link between an Object and another referenced Object or Attribute. The relationship is categorised by an enumerated value from a fixed vocabulary.

    -

    The relationship_type is recommended to be taken from the MISP object relationship list [[MISP-R]] is RECOMMENDED to ensure a coherent naming of the tags

    -

    All Object References MUST contain an object_uuid, a referenced_uuid and a relationship type.

    -

    -2.7.1. Sample ObjectReference object -

    -
    -"ObjectReference": {
    +
    +
    +
    +
    +
    +2.5.2.11. sharing_group_id +
    +

    sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the object, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer.

    +

    sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0".

    +
    +
    +
    +
    +
    +2.5.2.12. comment +
    +

    comment is a contextual comment field.

    +

    comment is represented by a JSON string. comment MAY be present.

    +
    +
    +
    +
    +
    +2.5.2.13. deleted +
    +

    deleted represents a setting that allows objects to be revoked. Revoked objects are not actionable and exist merely to inform other instances of a revocation.

    +

    deleted is represented by a JSON boolean. deleted MUST be present.

    +
    +
    +
    +
    +
    +2.5.2.14. Attribute +
    +

    Attribute is an array of attributes that describe the object with data.

    +

    Each attribute in an object MUST contain the parent event's ID in the event_id field and the parent object's ID in the object_id field.

    +
    +
    +
    +
    +
    +2.5.2.15. first_seen +
    +

    first_seen represents a reference time when the object was first seen. first_seen as an ISO 8601 datetime up to the micro-second with time zone support.

    +

    first_seen is represented as a JSON string. first_seen MAY be present.

    +
    +
    +
    +
    +
    +2.5.2.16. last_seen +
    +

    last_seen represents a reference time when the object was last seen. last_seen as an ISO 8601 datetime up to the micro-second with time zone support.

    +

    last_seen is represented as a JSON string. last_seen MAY be present.

    +
    +
    +
    +
    +
    +
    +
    +
    +

    +2.6. Object References +

    +

    Object References serve as a logical link between an Object and another referenced Object or Attribute. The relationship is categorised by an enumerated value from a fixed vocabulary.

    +

    The relationship_type is recommended to be taken from the MISP object relationship list [[MISP-R]] is RECOMMENDED to ensure a coherent naming of the tags

    +

    All Object References MUST contain an object_uuid, a referenced_uuid and a relationship type.

    +
    +
    +

    +2.6.1. Sample ObjectReference object +

    +
    +
    "ObjectReference": {
                         "id": "195",
                         "uuid": "59c21a2c-c0ac-4083-93b3-363da07724d1",
                         "timestamp": "1505892908",
    @@ -1336,236 +2621,372 @@
                         "object_uuid": "59c1134d-8a40-4c14-ad94-0f7ba07724d1",
                         "referenced_uuid": "59c1133c-9adc-4d06-a34b-0f7ca07724d1",
                        }
    -
    -

    -2.7.2. ObjectReference Attributes -

    -

    -2.7.2.1. uuid -

    -

    uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object reference. The uuid MUST be preserved for any updates or transfer of the same object reference. UUID version 4 is RECOMMENDED when assigning it to a new object reference.

    -

    -2.7.2.2. id -

    -

    id represents the human-readable identifier associated to the object reference for a specific MISP instance.

    -

    id is represented as a JSON string. id SHALL be present.

    -

    -2.7.2.3. timestamp -

    -

    timestamp represents a reference time when the object was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.

    -

    timestamp is represented as a JSON string. timestamp MUST be present.

    -

    -2.7.2.4. object_id -

    -

    object_id represents the human-readable identifier of the object that the object reference belongs to on a specific MISP instance. A human-readable identifier MUST be represented as an unsigned integer.

    -

    event_id is represented as a JSON string. event_id SHALL be present.

    -

    -2.7.2.5. event_id -

    -

    event_id represents the human-readable identifier of the event that the object reference belongs to on a specific MISP instance. A human-readable identifier MUST be represented as an unsigned integer.

    -

    event_id is represented as a JSON string. event_id SHALL be present.

    -

    -2.7.2.6. referenced_id -

    -

    referenced_id represents the human-readable identifier of the object or attribute that the parent object of the object reference points to on a specific MISP instance.

    -

    referenced_id is represented as a JSON string. referenced_id MAY be present.

    -

    -2.7.2.7. referenced_type -

    -

    referenced_type represents the numeric value describing what the object reference points to, "0" representing an attribute and "1" representing an object

    -

    referenced_type is represented as a JSON string. referenced_type MAY be present.

    -

    -2.7.2.8. relationship_type -

    -

    relationship_type represents the human-readable context of the relationship between an object and another object or attribute as described by the object_reference.

    -

    referenced_type is represented as a JSON string. relationship_type MUST be present.

    -

    -2.7.2.9. comment -

    -

    comment is a contextual comment field.

    -

    comment is represented by a JSON string. comment MAY be present.

    -

    -2.7.2.10. deleted -

    -

    deleted represents a setting that allows object references to be revoked. Revoked object references are not actionable and exist merely to inform other instances of a revocation.

    -

    deleted is represented by a JSON boolean. deleted MUST be present.

    -

    -2.7.2.11. object_uuid -

    -

    object_uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object that the given object reference belongs to. The object_uuid MUST be preserved to preserve the object reference's association with the object.

    -

    -2.7.2.12. referenced_uuid -

    -

    referenced_uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object or attribute that is being referenced by the object reference. The referenced_uuid MUST be preserved to preserve the object reference's association with the object or attribute.

    -

    -2.8. EventReport -

    -

    EventReport are used to complement an event with one or more report in Markdown format. The EventReport contains unstructured information which can be linked to Attributes, Objects, Tags or Galaxy with an extension to the Markdown marking language.

    -

    -2.8.1. id -

    -

    id represents the human-readable identifier associated to the EventReport for a specific MISP instance. A human-readable identifier MUST be represented as an unsigned integer.

    -

    id is represented as a JSON string. id SHALL be present.

    -

    -2.8.2. UUID -

    -

    uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the EventReport. The uuid MUST be preserved for any updates or transfer of the same EventReport. UUID version 4 is RECOMMENDED when assigning it to a new EventReport.

    -

    uuid is represented as a JSON string. uuid MUST be present.

    -

    -2.8.3. event_id -

    -

    event_id represents the human-readable identifier associating the EventReport to an event on a specific MISP instance. A human-readable identifier MUST be represented as an unsigned integer.

    -

    event_id is represented as a JSON string. event_id MUST be present.

    -

    -2.8.4. name -

    -

    name represents the information field of the EventReport. name is a free-text value to provide a human-readable summary of the report. name SHOULD NOT be bigger than 256 characters and SHOULD NOT include new-lines.

    -

    name is represented as a JSON string. name MUST be present.

    -

    -2.8.5. content -

    -

    content includes the raw EventReport in Markdown format with or without the specific MISP Markdown markup extension.

    -

    The markdown extension for MISP is composed with a symbol as prefix then between square bracket the scope (attribute, object, tag or galaxymatrix) followed by the UUID in parenthesis.

    -

    content is represented as a JSON string. content MUST be present.

    -

    -2.8.6. distribution -

    -

    distribution represents the basic distribution rules of the EventReport. The system must adhere to the distribution setting for access control and for dissemination of the EventReport.

    -

    distribution is represented by a JSON string. distribution MUST be present and be one of the following options:

    -

    - -
    -
    0
    -
    -
    Your Organisation Only
    -
    1
    -
    -
    This Community Only
    -
    2
    -
    -
    Connected Communities
    -
    3
    -
    -
    All Communities
    -
    4
    -
    -
    Sharing Group
    -
    5
    -
    -
    Inherit Event
    + +
    +
    +
    +
    +
    +

    +2.6.2. ObjectReference Attributes +

    +
    +
    +
    +2.6.2.1. uuid +
    +

    uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object reference. The uuid MUST be preserved +for any updates or transfer of the same object reference. UUID version 4 is RECOMMENDED when assigning it to a new object reference.

    +
    +
    +
    +
    +
    +2.6.2.2. id +
    +

    id represents the human-readable identifier associated to the object reference for a specific MISP instance.

    +

    id is represented as a JSON string. id SHALL be present.

    +
    +
    +
    +
    +
    +2.6.2.3. timestamp +
    +

    timestamp represents a reference time when the object was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.

    +

    timestamp is represented as a JSON string. timestamp MUST be present.

    +
    +
    +
    +
    +
    +2.6.2.4. object_id +
    +

    object_id represents the human-readable identifier of the object that the object reference belongs to on a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer.

    +

    object_id is represented as a JSON string. object_id SHALL be present.

    +
    +
    +
    +
    +
    +2.6.2.5. event_id +
    +

    event_id represents the human-readable identifier of the event that the object reference belongs to on a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer.

    +

    event_id is represented as a JSON string. event_id SHALL be present.

    +
    +
    +
    +
    +
    +2.6.2.6. referenced_id +
    +

    referenced_id represents the human-readable identifier of the object or attribute that the parent object of the object reference points to on a specific MISP instance.

    +

    referenced_id is represented as a JSON string. referenced_id MAY be present.

    +
    +
    +
    +
    +
    +2.6.2.7. referenced_type +
    +

    referenced_type represents the numeric value describing what the object reference points to, "0" representing an attribute and "1" representing an object

    +

    referenced_type is represented as a JSON string. referenced_type MAY be present.

    +
    +
    +
    +
    +
    +2.6.2.8. relationship_type +
    +

    relationship_type represents the human-readable context of the relationship between an object and another object or attribute as described by the object_reference.

    +

    relationship_type is represented as a JSON string. relationship_type MUST be present.

    +
    +
    +
    +
    +
    +2.6.2.9. comment +
    +

    comment is a contextual comment field.

    +

    comment is represented by a JSON string. comment MAY be present.

    +
    +
    +
    +
    +
    +2.6.2.10. deleted +
    +

    deleted represents a setting that allows object references to be revoked. Revoked object references are not actionable and exist merely to inform other instances of a revocation.

    +

    deleted is represented by a JSON boolean. deleted MUST be present.

    +
    +
    +
    +
    +
    +2.6.2.11. object_uuid +
    +

    object_uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object that the given object reference belongs to. The object_uuid MUST be preserved +to preserve the object reference's association with the object.

    +
    +
    +
    +
    +
    +2.6.2.12. referenced_uuid +
    +

    referenced_uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object or attribute that is being referenced by the object reference. The referenced_uuid MUST be preserved +to preserve the object reference's association with the object or attribute.

    +
    +
    +
    +
    +
    +
    +
    +
    +

    +2.7. EventReport +

    +

    EventReport are used to complement an event with one or more report in Markdown format. The EventReport contains unstructured information which can be linked to Attributes, Objects, Tags or Galaxy with +an extension to the Markdown marking language.

    +
    +
    +

    +2.7.1. id +

    +

    id represents the human-readable identifier associated to the EventReport for a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer.

    +

    id is represented as a JSON string. id SHALL be present.

    +
    +
    +
    +
    +

    +2.7.2. UUID +

    +

    uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the EventReport. The uuid MUST be preserved for any updates or transfer of the same EventReport. UUID version 4 is RECOMMENDED when assigning it to a new EventReport.

    +

    uuid is represented as a JSON string. uuid MUST be present.

    +
    +
    +
    +
    +

    +2.7.3. event_id +

    +

    event_id represents the human-readable identifier associating the EventReport to an event on a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer.

    +

    event_id is represented as a JSON string. event_id MUST be present.

    +
    +
    +
    +
    +

    +2.7.4. name +

    +

    name represents the information field of the EventReport. name is a free-text value to provide a human-readable summary +of the report. name SHOULD NOT be bigger than 256 characters and SHOULD NOT include new-lines.

    +

    name is represented as a JSON string. name MUST be present.

    +
    +
    +
    +
    +

    +2.7.5. content +

    +

    content includes the raw EventReport in Markdown format with or without the specific MISP Markdown markup extension.

    +

    The markdown extension for MISP is composed with a symbol as prefix then between square bracket the scope (attribute, object, tag or galaxymatrix) followed by the UUID in parenthesis.

    +

    content is represented as a JSON string. content MUST be present.

    +
    +
    +
    +
    +

    +2.7.6. distribution +

    +

    distribution represents the basic distribution rules of the EventReport. The system must adhere to the distribution setting for access control and for dissemination of the EventReport.

    +

    distribution is represented by a JSON string. distribution MUST be present and be one of the following options:

    +
    +
    0
    +
    Your Organisation Only +
    +
    +
    1
    +
    This Community Only +
    +
    +
    2
    +
    Connected Communities +
    +
    +
    3
    +
    All Communities +
    +
    +
    4
    +
    Sharing Group +
    +
    +
    5
    +
    Inherit Event +
    +
    - -

    -

    -2.8.7. sharing_group_id -

    -

    sharing_group_id represents the local id to the MISP local instance of the Sharing Group associated for the distribution.

    -

    sharing_group_id is represented by a JSON string. sharing_group_id MUST be present and set to "0" if not used.

    -

    -2.8.8. timestamp -

    -

    timestamp represents a reference time when the EventReport was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.

    -

    timestamp is represented as a JSON string. timestamp MUST be present.

    -

    -2.8.9. deleted -

    -

    deleted represents a setting that allows EventReport to be revoked. Revoked EventReport are not actionable and exist merely to inform other instances of a revocation.

    -

    deleted is represented by a JSON boolean. deleted MUST be present.

    -

    -2.9. Tag -

    -

    A tag is a simple method to classify an event with a simple string. The tag name can be freely chosen. The tag name can be also chosen from a fixed machine-tag vocabulary called MISP taxonomies[[MISP-T]]. When an event is distributed outside an organisation, the use of MISP taxonomies[[MISP-T]] is RECOMMENDED to ensure a coherent naming of the tags. A tag is represented as a JSON array where each element describes each tag associated. A tag array SHALL be at event level or attribute level. A tag element is described with a name, id, colour and exportable flag.

    -

    exportable represents a setting if the tag is kept local or exportable to other MISP instances. exportable is represented by a JSON boolean. id is a human-readable identifier that references the tag on the local instance. colour represents an RGB value of the tag.

    -

    name MUST be present. colour, id and exportable SHALL be present.

    -

    -2.9.1. Sample Tag -

    -
    -"Tag": [{
    +
    +
    +
    +
    +

    +2.7.7. sharing_group_id +

    +

    sharing_group_id represents the local id to the MISP local instance of the Sharing Group associated for the distribution.

    +

    sharing_group_id is represented by a JSON string. sharing_group_id MUST be present and set to "0" if not used.

    +
    +
    +
    +
    +

    +2.7.8. timestamp +

    +

    timestamp represents a reference time when the EventReport was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC.

    +

    timestamp is represented as a JSON string. timestamp MUST be present.

    +
    +
    +
    +
    +

    +2.7.9. deleted +

    +

    deleted represents a setting that allows EventReport to be revoked. Revoked EventReport are not actionable and exist merely to inform other instances of a revocation.

    +

    deleted is represented by a JSON boolean. deleted MUST be present.

    +
    +
    +
    +
    +
    +
    +

    +2.8. Tag +

    +

    A tag is a simple method to classify an event with a simple string. The tag name can be freely chosen. The tag name can be also chosen from a fixed machine-tag vocabulary called MISP taxonomies[[MISP-T]]. When an event is distributed outside an organisation, the use of MISP taxonomies[[MISP-T]] is RECOMMENDED to ensure a coherent naming of the tags. A tag is represented as a JSON array where each element describes each tag associated. A tag array SHALL be at event level or attribute level. A tag element is described with a name, id, colour and exportable flag.

    +

    exportable represents a setting if the tag is kept local or exportable to other MISP instances. exportable is represented by a JSON boolean. id is a human-readable identifier that references the tag on the local instance. colour represents an RGB value of the tag.

    +

    name MUST be present. colour, id and exportable SHALL be present.

    +
    +
    +

    +2.8.1. Sample Tag +

    +
    +
    "Tag": [{
             "exportable": true,
             "colour": "#ffffff",
             "name": "tlp:white",
             "id": "2" }]
    -
    -

    -2.10. Sighting -

    -

    A sighting is an ascertainment which describes whether an attribute has been seen under a given set of conditions. The sighting can include the organisation who sighted the attribute or can be anonymised. Sighting is composed of a JSON array in which each element describes one singular instance of a sighting. A sighting element is a JSON object composed of the following values:

    -

    type MUST be present. type describes the type of a sighting. MISP allows 3 default types:

    - - - - - - - - - - - - - - - - - - - -
    Sighting typeDescription
    0denotes an attribute which has been seen
    1denotes an attribute which has been seen and confirmed as false-positive
    2denotes an attribute which will be expired at the time of the sighting
    -

    uuid MUST be present. uuid references the uuid of the sighted attribute.

    -

    date_sighting MUST be present. date_sighting is expressed in seconds (decimal) elapsed since 1st of January 1970 (Unix timestamp). date_sighting represents when the referenced attribute, designated by its uuid, is sighted.

    -

    source MAY be present. source is represented as a JSON string and represents the human-readable version of the sighting source, which can be a given piece of software (e.g. SIEM), device or a specific analytical process.

    -

    id, event_id and attribute_id MAY be present.

    -

    id represents the human-readable identifier of the sighting reference which belongs to a specific MISP instance. event_id represents the human-readable identifier of the event referenced by the sighting and belongs to a specific MISP instance. attribute_id represents the human-readable identifier of the attribute referenced by the sighting and belongs to a specific MISP instance.

    -

    org_id MAY be present along the JSON object describing the organisation. If the org_id is not present, the sighting is considered as anonymised.

    -

    org_id represents the human-readable identifier of the organisation which did the sighting and belongs to a specific MISP instance.

    -

    A human-readable identifier MUST be represented as an unsigned integer.

    -

    -2.10.1. Sample Sighting -

    -
    -"Sighting": [
    -		   {
    -				"id": "13599",
    -				"attribute_id": "1201615",
    -				"event_id": "10164",
    -				"org_id": "2",
    -				"date_sighting": "1517581400",
    -				"uuid": "5a747459-41b4-4826-9b29-42dd950d210f",
    -				"source": "M2M-CIRCL",
    -				"type": "0",
    -				"Organisation": {
    -					"id": "2",
    -					"uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f",
    -					"name": "CIRCL"
    -				}
    -			},
    -			{
    -				"id": "13601",
    -				"attribute_id": "1201615",
    -				"event_id": "10164",
    -				"org_id": "2",
    -				"date_sighting": "1517581401",
    -				"uuid": "5a74745a-a190-4d04-b719-4916950d210f",
    -				"source": "M2M-CIRCL",
    -				"type": "0",
    -				"Organisation": {
    -					"id": "2",
    -					"uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f",
    -					"name": "CIRCL"
    -				}
    -			}
    -		]
    -
    -

    -2.11. Galaxy -

    -

    A galaxy is a simple method to express a large object called cluster that can be attached to MISP events. A cluster can be composed of one or more elements. Elements are expressed as key-values.

    -

    -2.11.1. Sample Galaxy -

    -
    -"Galaxy": [ {
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +2.9. Sighting +

    +

    A sighting is an ascertainment which describes whether an attribute has been seen under a given set of conditions. The sighting can include the organisation who sighted the attribute or can +be anonymised. Sighting is composed of a JSON array in which each element describes one singular instance of a sighting. A sighting element is a JSON object composed of the following values:

    +

    type MUST be present. type describes the type of a sighting. MISP allows 3 default types:

    + + + + + + + + + + + + + + + + + + + + + + +
    Table 1
    Sighting typeDescription
    0denotes an attribute which has been seen
    1denotes an attribute which has been seen and confirmed as false-positive
    2denotes an attribute which will be expired at the time of the sighting
    +

    uuid MUST be present. uuid references the uuid of the sighted attribute.

    +

    date_sighting MUST be present. date_sighting is expressed in seconds (decimal) elapsed since 1st of January 1970 (Unix timestamp). date_sighting represents when the referenced attribute, designated by its uuid, is sighted.

    +

    source MAY be present. source is represented as a JSON string and represents the human-readable version of the sighting source, which can be a given piece of software (e.g. SIEM), device or a specific analytical process.

    +

    id, event_id and attribute_id are represented as a JSON string and MAY be present.

    +

    id represents the human-readable identifier of the sighting reference which belongs to a specific MISP instance. +event_id represents the human-readable identifier of the event referenced by the sighting and belongs to a specific MISP instance. +attribute_id represents the human-readable identifier of the attribute referenced by the sighting and belongs to a specific MISP instance.

    +

    org_id MAY be present along the JSON object describing the organisation. If the org_id is not present, the sighting is considered as anonymised.

    +

    org_id represents the human-readable identifier of the organisation which did the sighting and belongs to a specific MISP instance.

    +

    A human-readable identifier MUST be considered as an unsigned integer.

    +
    +
    +

    +2.9.1. Sample Sighting +

    +
    +
    "Sighting": [
    +                   {
    +                                "id": "13599",
    +                                "attribute_id": "1201615",
    +                                "event_id": "10164",
    +                                "org_id": "2",
    +                                "date_sighting": "1517581400",
    +                                "uuid": "5a747459-41b4-4826-9b29-42dd950d210f",
    +                                "source": "M2M-CIRCL",
    +                                "type": "0",
    +                                "Organisation": {
    +                                        "id": "2",
    +                                        "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f",
    +                                        "name": "CIRCL"
    +                                }
    +                        },
    +                        {
    +                                "id": "13601",
    +                                "attribute_id": "1201615",
    +                                "event_id": "10164",
    +                                "org_id": "2",
    +                                "date_sighting": "1517581401",
    +                                "uuid": "5a74745a-a190-4d04-b719-4916950d210f",
    +                                "source": "M2M-CIRCL",
    +                                "type": "0",
    +                                "Organisation": {
    +                                        "id": "2",
    +                                        "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f",
    +                                        "name": "CIRCL"
    +                                }
    +                        }
    +                ]
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +2.10. Galaxy +

    +

    A galaxy is a simple method to express a large object called cluster that can be attached to MISP events. A cluster can be composed of one or more elements. Elements are expressed as key-values.

    +
    +
    +

    +2.10.1. Sample Galaxy +

    +
    +
    "Galaxy": [ {
                "id": "18",
                "uuid": "698774c7-8022-42c4-917f-8d6e4f06ada3",
                "name": "Threat Actor",
    @@ -1609,13 +3030,24 @@
                     ]
                 }
             ]
    -
    -

    -3. JSON Schema -

    -

    The JSON Schema [JSON-SCHEMA] below defines the structure of the MISP core format as literally described before. The JSON Schema is used to validate MISP events at creation time or parsing.

    -
    -{
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    +3. JSON Schema +

    +

    The JSON Schema [JSON-SCHEMA] below defines the structure of the MISP core format +as literally described before. The JSON Schema is used to validate MISP events at creation time +or parsing.

    +
    +
    {
       "$schema": "http://json-schema.org/draft-04/schema#",
       "title": "Validator for misp events",
       "id": "https://github.com/MISP/MISP/blob/2.4/format/2.4/schema.json",
    @@ -2289,44 +3721,58 @@
         "Event"
       ]
     }
    -
    -

    -4. Manifest -

    -

    MISP events can be shared over an HTTP repository, a file package or USB key. A manifest file is used to provide an index of MISP events allowing to only fetch the recently updated files without the need to parse each json file.

    -

    -4.1. Format -

    -

    A manifest file is a simple JSON file named manifest.json in a directory where the MISP events are located. Each MISP event is a file located in the same directory with the event uuid as filename with the json extension.

    -

    The manifest format is a JSON object composed of a dictionary where the field is the uuid of the event.

    -

    Each uuid is composed of a JSON object with the following fields which came from the original event referenced by the same uuid:

    -

    - -
      -
    • info (MUST)
    • -
    • Orgc object (MUST)
    • -
    • analysis (SHALL)
    • -
    • timestamp (MUST)
    • -
    • date (MUST)
    • -
    • threat_level_id (SHALL)
    • -
    - -

    -

    In addition to the fields originating from the event, the following fields can be added:

    -

    - -
      -
    • integrity:sha256 represents the SHA256 value in hexadecimal representation of the associated MISP event file to ensure integrity of the file. (SHOULD)
    • -
    • integrity:pgp represents a detached PGP signature [RFC4880] of the associated MISP event file to ensure integrity of the file. (SHOULD)
    • -
    - -

    -

    If a detached PGP signature is used for each MISP event, a detached PGP signature is a MUST to ensure integrity of the manifest file. A detached PGP signature for a manifest file is a manifest.json.asc file containing the PGP signature.

    -

    -4.1.1. Sample Manifest -

    -
    -{
    +
    +
    +
    +
    +
    +
    +

    +4. Manifest +

    +

    MISP events can be shared over an HTTP repository, a file package or USB key. A manifest file is used to +provide an index of MISP events allowing to only fetch the recently updated files without the need to parse +each json file.

    +
    +
    +

    +4.1. Format +

    +

    A manifest file is a simple JSON file named manifest.json in a directory where the MISP events are located. +Each MISP event is a file located in the same directory with the event uuid as filename with the json extension.

    +

    The manifest format is a JSON object composed of a dictionary where the field is the uuid of the event.

    +

    Each uuid is composed of a JSON object with the following fields which came from the original event referenced +by the same uuid:

    +
      +
    • info (MUST) +
    • +
    • Orgc object (MUST) +
    • +
    • analysis (SHALL) +
    • +
    • timestamp (MUST) +
    • +
    • date (MUST) +
    • +
    • threat_level_id (SHALL) +
    • +
    +

    In addition to the fields originating from the event, the following fields can be added:

    +
      +
    • integrity:sha256 represents the SHA256 value in hexadecimal representation of the associated MISP event file to ensure integrity of the file. (SHOULD) +
    • +
    • integrity:pgp represents a detached PGP signature [RFC4880] of the associated MISP event file to ensure integrity of the file. (SHOULD) +
    • +
    +

    If a detached PGP signature is used for each MISP event, a detached PGP signature is a MUST to ensure integrity of the manifest file. +A detached PGP signature for a manifest file is a manifest.json.asc file containing the PGP signature.

    +
    +
    +

    +4.1.1. Sample Manifest +

    +
    +
    {
       "57c6ac4c-c60c-4f79-a38f-b666950d210f": {
         "info": "Malspam 2016-08-31 (.wsf in .zip) - campaign: Photo",
         "Orgc": {
    @@ -2375,123 +3821,148 @@
         "threat_level_id": "3"
       }
     }
    -
    -

    -5. Implementation -

    -

    MISP format is implemented by different software including the MISP threat sharing platform and libraries like PyMISP [MISP-P]. Implementations use the format as an export/import mechanism, staging transport format or synchronisation format as used in the MISP core platform. MISP format doesn't impose any restriction on the data representation of the format in data-structure of other implementations.

    -

    -6. Security Considerations -

    -

    MISP events might contain sensitive or confidential information. Adequate access control and encryption measures shall be implemented to ensure the confidentiality of the MISP events.

    -

    Adversaries might include malicious content in MISP events and attributes. Implementation MUST consider the input of malicious inputs beside the standard threat information that might already include malicious intended inputs.

    -

    -7. 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 Nicolas Bareil for the review of the JSON Schema.

    -

    -8. References -

    -

    -9. References

    -

    -9.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.
    [RFC4122] -Leach, P., Mealling, M. and R. Salz, "A Universally Unique IDentifier (UUID) URN Namespace", RFC 4122, DOI 10.17487/RFC4122, July 2005.
    [RFC4880] -Callas, J., Donnerhacke, L., Finney, H., Shaw, D. and R. Thayer, "OpenPGP Message Format", RFC 4880, DOI 10.17487/RFC4880, November 2007.
    [RFC8259] -Bray, T., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, December 2017.
    -

    -9.2. Informative References

    - - - - - - - - - - - - - - - - - -
    [JSON-SCHEMA] -, "JSON Schema: A Media Type for Describing JSON Documents", 2016.
    [MISP-P] -MISP, "MISP Project - Open Source Threat Intelligence Platform and Open Standards For Threat Information Sharing"
    [MISP-R] -MISP, "MISP Object Relationship Types - common vocabulary of relationships"
    [MISP-T] -MISP, "MISP Taxonomies - shared and common vocabularies of tags"
    -

    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 - -
    +
    - +
    +
    +
    +
    +
    +
    +
    +
    +

    +5. Implementation +

    +

    MISP format is implemented by different software including the MISP threat sharing +platform and libraries like PyMISP [MISP-P]. Implementations use the format +as an export/import mechanism, staging transport format or synchronisation format +as used in the MISP core platform. MISP format doesn't impose any restriction on +the data representation of the format in data-structure of other implementations.

    +
    +
    +
    +
    +

    +6. Security Considerations +

    +

    MISP events might contain sensitive or confidential information. Adequate +access control and encryption measures shall be implemented to ensure +the confidentiality of the MISP events.

    +

    Adversaries might include malicious content in MISP events and attributes. +Implementation MUST consider the input of malicious inputs beside the +standard threat information that might already include malicious intended inputs.

    +
    +
    +
    +
    +

    +7. 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 Nicolas Bareil +for the review of the JSON Schema.

    +
    +
    +
    +
    +

    +8. References +

    +
    +
    +
    +

    +9. Normative References +

    +
    +
    [RFC2119]
    +
    +Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://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, , <https://www.rfc-editor.org/info/rfc4122>.
    +
    +
    [RFC4880]
    +
    +Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R. Thayer, "OpenPGP Message Format", RFC 4880, DOI 10.17487/RFC4880, , <https://www.rfc-editor.org/info/rfc4880>.
    +
    +
    [RFC8259]
    +
    +Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, , <https://www.rfc-editor.org/info/rfc8259>.
    +
    +
    +
    +
    +

    +10. Informative References +

    +
    +
    [JSON-SCHEMA]
    +
    +Wright, A., "JSON Schema: A Media Type for Describing JSON Documents", , <https://tools.ietf.org/html/draft-wright-json-schema>.
    +
    +
    [MISP-P]
    +
    +Community, M., "MISP Project - Open Source Threat Intelligence Platform and Open Standards For Threat Information Sharing", <https://github.com/MISP>.
    +
    +
    [MISP-R]
    +
    +Community, M., "MISP Object Relationship Types - common vocabulary of relationships", <https://github.com/MISP/misp-objects/tree/master/relationships>.
    +
    +
    [MISP-T]
    +
    +Community, M., "MISP Taxonomies - shared and common vocabularies of tags", <https://github.com/MISP/misp-taxonomies>.
    +
    +
    +
    +
    +
    +

    +Authors' Addresses +

    +
    +
    Alexandre Dulaunoy
    +
    Computer Incident Response Center Luxembourg
    +
    16, bd d'Avranches
    +
    L-L-1160 Luxembourg +
    +
    Luxembourg
    +
    +Phone: ++352 247 88444 +
    + +
    +
    +
    Andras Iklody
    +
    Computer Incident Response Center Luxembourg
    +
    16, bd d'Avranches
    +
    L-L-1160 Luxembourg +
    +
    Luxembourg
    +
    +Phone: ++352 247 88444 +
    + +
    +
    +
    + diff --git a/misp-core-format/raw.md.txt b/misp-core-format/raw.md.txt index 294a244..5c30a08 100755 --- a/misp-core-format/raw.md.txt +++ b/misp-core-format/raw.md.txt @@ -5,11 +5,11 @@ Network Working Group A. Dulaunoy Internet-Draft A. Iklody Intended status: Informational CIRCL -Expires: April 24, 2021 October 21, 2020 +Expires: 18 August 2022 14 February 2022 MISP core format - draft-dulaunoy-misp-core-format + draft-00 Abstract @@ -37,31 +37,27 @@ Status of This Memo 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 24, 2021. + This Internet-Draft will expire on 18 August 2022. Copyright Notice - Copyright (c) 2020 IETF Trust and the persons identified as the + Copyright (c) 2022 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 - (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 + Provisions Relating to IETF Documents (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. -Dulaunoy & Iklody Expires April 24, 2021 [Page 1] + +Dulaunoy & Iklody Expires 18 August 2022 [Page 1] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 - 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 @@ -69,59 +65,56 @@ Table of Contents 2. Format . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. Event . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 2.2.1. Event Attributes . . . . . . . . . . . . . . . . . . 4 - 2.3. Objects . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 2.3.1. Org . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 2.3.2. Orgc . . . . . . . . . . . . . . . . . . . . . . . . 8 - 2.4. Attribute . . . . . . . . . . . . . . . . . . . . . . . . 8 - 2.4.1. Sample Attribute Object . . . . . . . . . . . . . . . 9 - 2.4.2. Attribute Attributes . . . . . . . . . . . . . . . . 9 - 2.5. ShadowAttribute . . . . . . . . . . . . . . . . . . . . . 16 - 2.5.1. Sample Attribute Object . . . . . . . . . . . . . . . 16 - 2.5.2. ShadowAttribute Attributes . . . . . . . . . . . . . 16 - 2.5.3. Org . . . . . . . . . . . . . . . . . . . . . . . . . 22 - 2.6. Object . . . . . . . . . . . . . . . . . . . . . . . . . 23 - 2.6.1. Sample Object . . . . . . . . . . . . . . . . . . . . 23 - 2.6.2. Object Attributes . . . . . . . . . . . . . . . . . . 24 - 2.7. Object References . . . . . . . . . . . . . . . . . . . . 28 - 2.7.1. Sample ObjectReference object . . . . . . . . . . . . 28 - 2.7.2. ObjectReference Attributes . . . . . . . . . . . . . 28 - 2.8. EventReport . . . . . . . . . . . . . . . . . . . . . . . 30 - 2.8.1. id . . . . . . . . . . . . . . . . . . . . . . . . . 31 - 2.8.2. UUID . . . . . . . . . . . . . . . . . . . . . . . . 31 - 2.8.3. event_id . . . . . . . . . . . . . . . . . . . . . . 31 - 2.8.4. name . . . . . . . . . . . . . . . . . . . . . . . . 31 - 2.8.5. content . . . . . . . . . . . . . . . . . . . . . . . 31 - 2.8.6. distribution . . . . . . . . . . . . . . . . . . . . 32 - 2.8.7. sharing_group_id . . . . . . . . . . . . . . . . . . 32 - 2.8.8. timestamp . . . . . . . . . . . . . . . . . . . . . . 32 - 2.8.9. deleted . . . . . . . . . . . . . . . . . . . . . . . 33 - 2.9. Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 - 2.9.1. Sample Tag . . . . . . . . . . . . . . . . . . . . . 33 - 2.10. Sighting . . . . . . . . . . . . . . . . . . . . . . . . 33 - 2.10.1. Sample Sighting . . . . . . . . . . . . . . . . . . 34 - 2.11. Galaxy . . . . . . . . . . . . . . . . . . . . . . . . . 35 - 2.11.1. Sample Galaxy . . . . . . . . . . . . . . . . . . . 35 - 3. JSON Schema . . . . . . . . . . . . . . . . . . . . . . . . . 37 - 4. Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . 51 - 4.1. Format . . . . . . . . . . . . . . . . . . . . . . . . . 51 - 4.1.1. Sample Manifest . . . . . . . . . . . . . . . . . . . 52 + 2.2.1. Event Attributes . . . . . . . . . . . . . . . . . . 3 + 2.2.2. Event Objects . . . . . . . . . . . . . . . . . . . . 7 + 2.3. Attribute . . . . . . . . . . . . . . . . . . . . . . . . 8 + 2.3.1. Sample Attribute Object . . . . . . . . . . . . . . . 8 + 2.3.2. Attribute Attributes . . . . . . . . . . . . . . . . 8 + 2.4. ShadowAttribute . . . . . . . . . . . . . . . . . . . . . 14 + 2.4.1. Sample Attribute Object . . . . . . . . . . . . . . . 15 + 2.4.2. ShadowAttribute Attributes . . . . . . . . . . . . . 15 + 2.4.3. ShadowAttribute Objects . . . . . . . . . . . . . . . 21 + 2.5. Object . . . . . . . . . . . . . . . . . . . . . . . . . 22 + 2.5.1. Sample Object . . . . . . . . . . . . . . . . . . . . 22 + 2.5.2. Object Attributes . . . . . . . . . . . . . . . . . . 23 + 2.6. Object References . . . . . . . . . . . . . . . . . . . . 27 + 2.6.1. Sample ObjectReference object . . . . . . . . . . . . 27 + 2.6.2. ObjectReference Attributes . . . . . . . . . . . . . 27 + 2.7. EventReport . . . . . . . . . . . . . . . . . . . . . . . 29 + 2.7.1. id . . . . . . . . . . . . . . . . . . . . . . . . . 29 + 2.7.2. UUID . . . . . . . . . . . . . . . . . . . . . . . . 30 + 2.7.3. event_id . . . . . . . . . . . . . . . . . . . . . . 30 + 2.7.4. name . . . . . . . . . . . . . . . . . . . . . . . . 30 + 2.7.5. content . . . . . . . . . . . . . . . . . . . . . . . 30 + 2.7.6. distribution . . . . . . . . . . . . . . . . . . . . 30 + 2.7.7. sharing_group_id . . . . . . . . . . . . . . . . . . 31 + 2.7.8. timestamp . . . . . . . . . . . . . . . . . . . . . . 31 + 2.7.9. deleted . . . . . . . . . . . . . . . . . . . . . . . 31 + 2.8. Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 + 2.8.1. Sample Tag . . . . . . . . . . . . . . . . . . . . . 32 + 2.9. Sighting . . . . . . . . . . . . . . . . . . . . . . . . 32 + 2.9.1. Sample Sighting . . . . . . . . . . . . . . . . . . . 33 + 2.10. Galaxy . . . . . . . . . . . . . . . . . . . . . . . . . 34 + 2.10.1. Sample Galaxy . . . . . . . . . . . . . . . . . . . 34 + 3. JSON Schema . . . . . . . . . . . . . . . . . . . . . . . . . 36 + 4. Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . 50 + 4.1. Format . . . . . . . . . . . . . . . . . . . . . . . . . 50 + 4.1.1. Sample Manifest . . . . . . . . . . . . . . . . . . . 51 + 5. Implementation . . . . . . . . . . . . . . . . . . . . . . . 52 + 6. Security Considerations . . . . . . . . . . . . . . . . . . . 52 + 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 52 + 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 52 + 9. Normative References . . . . . . . . . . . . . . . . . . . . 52 + 10. Informative References . . . . . . . . . . . . . . . . . . . 53 -Dulaunoy & Iklody Expires April 24, 2021 [Page 2] +Dulaunoy & Iklody Expires 18 August 2022 [Page 2] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 - 5. Implementation . . . . . . . . . . . . . . . . . . . . . . . 53 - 6. Security Considerations . . . . . . . . . . . . . . . . . . . 53 - 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 53 - 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 - 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 - 9.1. Normative References . . . . . . . . . . . . . . . . . . 54 - 9.2. Informative References . . . . . . . . . . . . . . . . . 54 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 54 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 53 1. Introduction @@ -161,15 +154,6 @@ Internet-Draft MISP core format October 2020 specific threat actor analysis. The meaning of an event only depends of the information embedded in the event. - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 3] - -Internet-Draft MISP core format October 2020 - - 2.2.1. Event Attributes 2.2.1.1. uuid @@ -179,6 +163,13 @@ Internet-Draft MISP core format October 2020 the same event. UUID version 4 is RECOMMENDED when assigning it to a new event. + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 3] + +Internet-Draft MISP core format February 2022 + + uuid is represented as a JSON string. uuid MUST be present. 2.2.1.2. id @@ -211,25 +202,10 @@ Internet-Draft MISP core format October 2020 threat_level_id represents the threat level. - 4: - Undefined - - 3: - Low - - 2: - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 4] - -Internet-Draft MISP core format October 2020 - - - Medium - - 1: - High + 4: Undefined + 3: Low + 2: Medium + 1: High If a higher granularity is required, a MISP taxonomy applied as a Tag SHOULD be preferred. @@ -241,14 +217,17 @@ Internet-Draft MISP core format October 2020 analysis represents the analysis level. - 0: - Initial + 0: Initial - 1: - Ongoing - 2: - Complete + +Dulaunoy & Iklody Expires 18 August 2022 [Page 4] + +Internet-Draft MISP core format February 2022 + + + 1: Ongoing + 2: Complete If a higher granularity is required, a MISP taxonomy applied as a Tag SHOULD be preferred. @@ -272,16 +251,6 @@ Internet-Draft MISP core format October 2020 timestamp is represented as a JSON string. timestamp MUST be present. - - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 5] - -Internet-Draft MISP core format October 2020 - - 2.2.1.9. publish_timestamp publish_timestamp represents a reference time when the event was @@ -305,6 +274,14 @@ Internet-Draft MISP core format October 2020 The org_id MUST be updated when the event is generated by a new instance. + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 5] + +Internet-Draft MISP core format February 2022 + + org_id is represented as a JSON string. org_id MUST be present. 2.2.1.11. orgc_id @@ -331,30 +308,14 @@ Internet-Draft MISP core format October 2020 The system must adhere to the distribution setting for access control and for dissemination of the event. - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 6] - -Internet-Draft MISP core format October 2020 - - distribution is represented by a JSON string. distribution MUST be present and be one of the following options: - 0 - Your Organisation Only - - 1 - This Community Only - - 2 - Connected Communities - - 3 - All Communities - - 4 - Sharing Group + 0 Your Organisation Only + 1 This Community Only + 2 Connected Communities + 3 All Communities + 4 Sharing Group 2.2.1.14. sharing_group_id @@ -367,6 +328,16 @@ Internet-Draft MISP core format October 2020 present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0". + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 6] + +Internet-Draft MISP core format February 2022 + + 2.2.1.15. extends_uuid extends_uuid represents which event is extended by this event. The @@ -376,9 +347,9 @@ Internet-Draft MISP core format October 2020 extends_uuid is represented as a JSON string. extends_uuid SHOULD be present. -2.3. Objects +2.2.2. Event Objects -2.3.1. Org +2.2.2.1. Org An Org object is composed of an uuid, name and id. @@ -386,14 +357,6 @@ Internet-Draft MISP core format October 2020 [RFC4122] of the organisation. The organisation UUID is globally assigned to an organisation and SHALL be kept overtime. - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 7] - -Internet-Draft MISP core format October 2020 - - The name is a readable description of the organisation and SHOULD be present. The id is a human-readable identifier generated by the instance and used as reference in the event. A human-readable @@ -402,15 +365,15 @@ Internet-Draft MISP core format October 2020 uuid, name and id are represented as a JSON string. uuid, name and id MUST be present. -2.3.1.1. Sample Org Object +2.2.2.1.1. Sample Org Object - "Org": { - "id": "2", - "name": "CIRCL", - "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f" - } + "Org": { + "id": "2", + "name": "CIRCL", + "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f" + } -2.3.2. Orgc +2.2.2.2. Orgc An Orgc object is composed of an uuid, name and id. @@ -424,10 +387,17 @@ Internet-Draft MISP core format October 2020 instance and used as reference in the event. A human-readable identifier MUST be represented as an unsigned integer. + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 7] + +Internet-Draft MISP core format February 2022 + + uuid, name and id are represented as a JSON string. uuid, name and id MUST be present. -2.4. Attribute +2.3. Attribute Attributes are used to describe the indicators and contextual data of an event. The main information contained in an attribute is made up @@ -438,43 +408,31 @@ Internet-Draft MISP core format October 2020 A MISP document MUST at least includes category-type-value triplet described in section "Attribute Attributes". +2.3.1. Sample Attribute Object + "Attribute": { + "id": "346056", + "type": "comment", + "category": "Other", + "to_ids": false, + "uuid": "57f4f6d9-cd20-458b-84fd-109ec0a83869", + "event_id": "3357", + "distribution": "5", + "timestamp": "1475679332", + "comment": "", + "sharing_group_id": "0", + "deleted": false, + "value": "Hello world", + "SharingGroup": [], + "ShadowAttribute": [], + "RelatedAttribute": [], + "first_seen": "2019-06-02T22:14:28.711954+00:00", + "last_seen": null + } +2.3.2. Attribute Attributes - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 8] - -Internet-Draft MISP core format October 2020 - - -2.4.1. Sample Attribute Object - - "Attribute": { - "id": "346056", - "type": "comment", - "category": "Other", - "to_ids": false, - "uuid": "57f4f6d9-cd20-458b-84fd-109ec0a83869", - "event_id": "3357", - "distribution": "5", - "timestamp": "1475679332", - "comment": "", - "sharing_group_id": "0", - "deleted": false, - "value": "Hello world", - "SharingGroup": [], - "ShadowAttribute": [], - "RelatedAttribute": [], - "first_seen": "2019-06-02T22:14:28.711954+00:00", - "last_seen": null - } - -2.4.2. Attribute Attributes - -2.4.2.1. uuid +2.3.2.1. uuid uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the event. The uuid MUST be preserved for any updates or transfer of @@ -483,7 +441,16 @@ Internet-Draft MISP core format October 2020 uuid is represented as a JSON string. uuid MUST be present. -2.4.2.2. id + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 8] + +Internet-Draft MISP core format February 2022 + + +2.3.2.2. id id represents the human-readable identifier associated to the event for a specific MISP instance. A human-readable identifier MUST be @@ -491,104 +458,86 @@ Internet-Draft MISP core format October 2020 id is represented as a JSON string. id SHALL be present. -2.4.2.3. type +2.3.2.3. type type represents the means through which an attribute tries to describe the intent of the attribute creator, using a list of pre- defined attribute types. - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 9] - -Internet-Draft MISP core format October 2020 - - type is represented as a JSON string. type MUST be present and it MUST be a valid selection for the chosen category. The list of valid category-type combinations is as follows: - Antivirus detection - link, comment, text, hex, attachment, other, anonymised - - Artifacts dropped - md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, - sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, - impfuzzy, authentihash, vhash, cdhash, filename, filename|md5, - filename|sha1, filename|sha224, filename|sha256, filename|sha384, - filename|sha512, filename|sha512/224, filename|sha512/256, - filename|sha3-224, filename|sha3-256, filename|sha3-384, - filename|sha3-512, filename|authentihash, filename|vhash, - filename|ssdeep, filename|tlsh, filename|imphash, - filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern- - in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern, - yara, sigma, attachment, malware-sample, named pipe, mutex, + Antivirus detection link, comment, text, hex, attachment, other, + anonymised + Artifacts dropped md5, sha1, sha224, sha256, sha384, sha512, + sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, + ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, cdhash, + filename, filename|md5, filename|sha1, filename|sha224, + filename|sha256, filename|sha384, filename|sha512, + filename|sha512/224, filename|sha512/256, filename|sha3-224, + filename|sha3-256, filename|sha3-384, filename|sha3-512, + filename|authentihash, filename|vhash, filename|ssdeep, + filename|tlsh, filename|imphash, filename|impfuzzy, + filename|pehash, regkey, regkey|value, pattern-in-file, pattern- + in-memory, filename-pattern, pdb, stix2-pattern, yara, sigma, + attachment, malware-sample, named pipe, mutex, process-state, windows-scheduled-task, windows-service-name, windows-service- displayname, comment, text, hex, x509-fingerprint-sha1, x509- fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene, kusto-query, mime-type, anonymised, pgp-public-key, pgp-private- key - - Attribution - threat-actor, campaign-name, campaign-id, whois-registrant-phone, - whois-registrant-email, whois-registrant-name, whois-registrant- - org, whois-registrar, whois-creation-date, comment, text, x509- - fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, - other, dns-soa-email, anonymised, email - - External analysis - md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512, - filename, filename|md5, filename|sha1, filename|sha256, + Attribution threat-actor, campaign-name, campaign-id, whois- + registrant-phone, whois-registrant-email, whois-registrant-name, + whois-registrant-org, whois-registrar, whois-creation-date, + comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509- + fingerprint-sha256, other, dns-soa-email, anonymised, email + External analysis md5, sha1, sha256, sha3-224, sha3-256, sha3-384, + sha3-512, filename, filename|md5, filename|sha1, filename|sha256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac- address, mac-eui-64, hostname, domain, domain|ip, url, user-agent, regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file, + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 9] + +Internet-Draft MISP core format February 2022 + + pattern-in-traffic, pattern-in-memory, filename-pattern, vulnerability, cpe, weakness, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509- - fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver- - md5, github-repository, other, cortex, anonymised, community-id - - Financial fraud - btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc- - number, prtn, phone-number, comment, text, other, hex, anonymised - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 10] - -Internet-Draft MISP core format October 2020 - - - Internal reference - text, link, comment, other, hex, anonymised, git-commit-id - - Network activity - ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, - domain|ip, mac-address, mac-eui-64, email, email-dst, email-src, - eppn, url, uri, user-agent, http-method, AS, snort, pattern-in- - file, filename-pattern, stix2-pattern, pattern-in-traffic, - attachment, comment, text, x509-fingerprint-md5, x509-fingerprint- - sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, - hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek, - anonymised, community-id, email-subject - - Other - comment, text, other, size-in-bytes, counter, datetime, cpe, port, - float, hex, phone-number, boolean, anonymised, pgp-public-key, - pgp-private-key - - Payload delivery - md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, - sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, - impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, - filename|md5, filename|sha1, filename|sha224, filename|sha256, - filename|sha384, filename|sha512, filename|sha512/224, - filename|sha512/256, filename|sha3-224, filename|sha3-256, - filename|sha3-384, filename|sha3-512, filename|authentihash, - filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, + fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh- + md5, hasshserver-md5, github-repository, other, cortex, + anonymised, community-id + Financial fraud btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, + bin, cc-number, prtn, phone-number, comment, text, other, hex, + anonymised + Internal reference text, link, comment, other, hex, anonymised, git- + commit-id + Network activity ip-src, ip-dst, ip-dst|port, ip-src|port, port, + hostname, domain, domain|ip, mac-address, mac-eui-64, email, + email-dst, email-src, eppn, url, uri, user-agent, http-method, AS, + snort, pattern-in-file, filename-pattern, stix2-pattern, pattern- + in-traffic, attachment, comment, text, x509-fingerprint-md5, x509- + fingerprint-sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, + jarm-fingerprint, hassh-md5, hasshserver-md5, other, hex, cookie, + hostname|port, bro, zeek, anonymised, community-id, email-subject, + favicon-mmh3, dkim, dkim-signature + Other comment, text, other, size-in-bytes, counter, datetime, cpe, + port, float, hex, phone-number, boolean, anonymised, pgp-public- + key, pgp-private-key + Payload delivery md5, sha1, sha224, sha256, sha384, sha512, + sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, + ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, + tlsh, cdhash, filename, filename|md5, filename|sha1, + filename|sha224, filename|sha256, filename|sha384, + filename|sha512, filename|sha512/224, filename|sha512/256, + filename|sha3-224, filename|sha3-256, filename|sha3-384, + filename|sha3-512, filename|authentihash, filename|vhash, + filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip- src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email, email-src, email-dst, email-subject, email-attachment, email-body, @@ -597,84 +546,62 @@ Internet-Draft MISP core format October 2020 attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509- fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, - hassh-md5, hasshserver-md5, other, hostname|port, email-dst- - display-name, email-src-display-name, email-header, email-reply- - to, email-x-mailer, email-mime-boundary, email-thread-index, - email-message-id, mobile-application-id, chrome-extension-id, - whois-registrant-email, anonymised - - Payload installation - md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, - sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, - impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, - filename|md5, filename|sha1, filename|sha224, filename|sha256, - filename|sha384, filename|sha512, filename|sha512/224, - filename|sha512/256, filename|sha3-224, filename|sha3-256, + jarm-fingerprint, hassh-md5, hasshserver-md5, other, + hostname|port, email-dst-display-name, email-src-display-name, + email-header, email-reply-to, email-x-mailer, email-mime-boundary, + email-thread-index, email-message-id, mobile-application-id, + chrome-extension-id, whois-registrant-email, anonymised + Payload installation md5, sha1, sha224, sha256, sha384, sha512, -Dulaunoy & Iklody Expires April 24, 2021 [Page 11] + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 10] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 - filename|sha3-384, filename|sha3-512, filename|authentihash, - filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, + sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, + ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, + tlsh, cdhash, filename, filename|md5, filename|sha1, + filename|sha224, filename|sha256, filename|sha384, + filename|sha512, filename|sha512/224, filename|sha512/256, + filename|sha3-224, filename|sha3-256, filename|sha3-384, + filename|sha3-512, filename|authentihash, filename|vhash, + filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in- traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara, sigma, vulnerability, cpe, weakness, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509- fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, chrome-extension-id, other, mime-type, anonymised - - Payload type - comment, text, other, anonymised - - Persistence mechanism - filename, regkey, regkey|value, comment, text, other, hex, - anonymised - - Person - first-name, middle-name, last-name, date-of-birth, place-of-birth, - gender, passport-number, passport-country, passport-expiration, - redress-number, nationality, visa-number, issue-date-of-the-visa, - primary-residence, country-of-residence, special-service-request, - frequent-flyer-number, travel-details, payment-details, place- - port-of-original-embarkation, place-port-of-clearance, place-port- - of-onward-foreign-destination, passenger-name-record-locator- - number, comment, text, other, phone-number, identity-card-number, - anonymised, email, pgp-public-key, pgp-private-key - - Social network - github-username, github-repository, github-organisation, jabber- - id, twitter-id, email, email-src, email-dst, eppn, comment, text, - other, whois-registrant-email, anonymised, pgp-public-key, pgp- + Payload type comment, text, other, anonymised + Persistence mechanism filename, regkey, regkey|value, comment, text, + other, hex, anonymised + Person first-name, middle-name, last-name, full-name, date-of-birth, + place-of-birth, gender, passport-number, passport-country, + passport-expiration, redress-number, nationality, visa-number, + issue-date-of-the-visa, primary-residence, country-of-residence, + special-service-request, frequent-flyer-number, travel-details, + payment-details, place-port-of-original-embarkation, place-port- + of-clearance, place-port-of-onward-foreign-destination, passenger- + name-record-locator-number, comment, text, other, phone-number, + identity-card-number, anonymised, email, pgp-public-key, pgp- private-key - - Support Tool - link, text, attachment, comment, other, hex, anonymised - - Targeting data - target-user, target-email, target-machine, target-org, target- - location, target-external, comment, anonymised + Social network github-username, github-repository, github- + organisation, jabber-id, twitter-id, email, email-src, email-dst, + eppn, comment, text, other, whois-registrant-email, anonymised, + pgp-public-key, pgp-private-key + Support Tool link, text, attachment, comment, other, hex, anonymised + Targeting data target-user, target-email, target-machine, target- + org, target-location, target-external, comment, anonymised Attributes are based on the usage within their different communities. Attributes can be extended on a regular basis and this reference document is updated accordingly. - - - - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 12] - -Internet-Draft MISP core format October 2020 - - -2.4.2.4. category +2.3.2.4. category category represents the intent of what the attribute is describing as selected by the attribute creator, using a list of pre-defined @@ -684,7 +611,14 @@ Internet-Draft MISP core format October 2020 and it MUST be a valid selection for the chosen type. The list of valid category-type combinations is mentioned above. -2.4.2.5. to_ids + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 11] + +Internet-Draft MISP core format February 2022 + + +2.3.2.5. to_ids to_ids represents whether the attribute is meant to be actionable. Actionable defined attributes that can be used in automated processes @@ -693,7 +627,7 @@ Internet-Draft MISP core format October 2020 to_ids is represented as a JSON boolean. to_ids MUST be present. -2.4.2.6. event_id +2.3.2.6. event_id event_id represents a human-readable identifier referencing the Event object that the attribute belongs to. A human-readable identifier @@ -704,7 +638,7 @@ Internet-Draft MISP core format October 2020 event_id is represented as a JSON string. event_id MUST be present. -2.4.2.7. distribution +2.3.2.7. distribution distribution represents the basic distribution rules of the attribute. The system must adhere to the distribution setting for @@ -713,33 +647,14 @@ Internet-Draft MISP core format October 2020 distribution is represented by a JSON string. distribution MUST be present and be one of the following options: - 0 - Your Organisation Only + 0 Your Organisation Only + 1 This Community Only + 2 Connected Communities + 3 All Communities + 4 Sharing Group + 5 Inherit Event - 1 - This Community Only - - 2 - Connected Communities - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 13] - -Internet-Draft MISP core format October 2020 - - - 3 - All Communities - - 4 - Sharing Group - - 5 - Inherit Event - -2.4.2.8. timestamp +2.3.2.8. timestamp timestamp represents a reference time when the attribute was created or last modified. timestamp is expressed in seconds (decimal) since @@ -747,13 +662,21 @@ Internet-Draft MISP core format October 2020 timestamp is represented as a JSON string. timestamp MUST be present. -2.4.2.9. comment +2.3.2.9. comment comment is a contextual comment field. + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 12] + +Internet-Draft MISP core format February 2022 + + comment is represented by a JSON string. comment MAY be present. -2.4.2.10. sharing_group_id +2.3.2.10. sharing_group_id sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the attribute, @@ -764,7 +687,7 @@ Internet-Draft MISP core format October 2020 present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0". -2.4.2.11. deleted +2.3.2.11. deleted deleted represents a setting that allows attributes to be revoked. Revoked attributes are not actionable and exist merely to inform @@ -772,24 +695,17 @@ Internet-Draft MISP core format October 2020 deleted is represented by a JSON boolean. deleted MUST be present. -2.4.2.12. data +2.3.2.12. data data contains the base64 encoded contents of an attachment or a malware sample. For malware samples, the sample MUST be encrypted using a password protected zip archive, with the password being "infected". - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 14] - -Internet-Draft MISP core format October 2020 - - data is represented by a JSON string in base64 encoding. data MUST be set for attributes of type malware-sample and attachment. -2.4.2.13. RelatedAttribute +2.3.2.13. RelatedAttribute RelatedAttribute is an array of attributes correlating with the current attribute. Each element in the array represents an JSON @@ -800,7 +716,21 @@ Internet-Draft MISP core format October 2020 RelatedAttribute MAY be present. -2.4.2.14. ShadowAttribute + + + + + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 13] + +Internet-Draft MISP core format February 2022 + + +2.3.2.14. ShadowAttribute ShadowAttribute is an array of shadow attributes that serve as proposals by third parties to alter the containing attribute. The @@ -813,14 +743,14 @@ Internet-Draft MISP core format October 2020 containing attribute's ID in the old_id field and the event's ID in the event_id field. -2.4.2.15. value +2.3.2.15. value value represents the payload of an attribute. The format of the value is dependent on the type of the attribute. value is represented by a JSON string. value MUST be present. -2.4.2.16. first_seen +2.3.2.16. first_seen first_seen represents a reference time when the attribute was first seen. first_seen is expressed as an ISO 8601 datetime up to the @@ -829,22 +759,15 @@ Internet-Draft MISP core format October 2020 first_seen is represented as a JSON string. first_seen MAY be present. -2.4.2.17. last_seen +2.3.2.17. last_seen last_seen represents a reference time when the attribute was last seen. last_seen is expressed as an ISO 8601 datetime up to the micro- second with time zone support. - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 15] - -Internet-Draft MISP core format October 2020 - - last_seen is represented as a JSON string. last_seen MAY be present. -2.5. ShadowAttribute +2.4. ShadowAttribute ShadowAttributes are 3rd party created attributes that either propose to add new information to an event or modify existing information. @@ -856,7 +779,14 @@ Internet-Draft MISP core format October 2020 reference to the creator of the ShadowAttribute as well as a revocation flag. -2.5.1. Sample Attribute Object + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 14] + +Internet-Draft MISP core format February 2022 + + +2.4.1. Sample Attribute Object "ShadowAttribute": { "id": "8", @@ -881,81 +811,67 @@ Internet-Draft MISP core format October 2020 "last_seen": null } -2.5.2. ShadowAttribute Attributes +2.4.2. ShadowAttribute Attributes -2.5.2.1. uuid +2.4.2.1. uuid 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. - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 16] - -Internet-Draft MISP core format October 2020 - - uuid is represented as a JSON string. uuid MUST be present. -2.5.2.2. id +2.4.2.2. id id represents the human-readable identifier associated to the event for a specific MISP instance. human-readable identifier MUST be - represented as an unsigned integer. id is represented as a JSON + represented as an unsigned integer. id is represented as a JSON string. id SHALL be present. -2.5.2.3. type +2.4.2.3. type type represents the means through which an attribute tries to describe the intent of the attribute creator, using a list of pre- defined attribute types. + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 15] + +Internet-Draft MISP core format February 2022 + + type is represented as a JSON string. type MUST be present and it MUST be a valid selection for the chosen category. The list of valid category-type combinations is as follows: - Antivirus detection - link, comment, text, hex, attachment, other, anonymised - - Artifacts dropped - md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, - sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, - impfuzzy, authentihash, vhash, cdhash, filename, filename|md5, - filename|sha1, filename|sha224, filename|sha256, filename|sha384, - filename|sha512, filename|sha512/224, filename|sha512/256, - filename|sha3-224, filename|sha3-256, filename|sha3-384, - filename|sha3-512, filename|authentihash, filename|vhash, - filename|ssdeep, filename|tlsh, filename|imphash, - filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern- - in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern, - yara, sigma, attachment, malware-sample, named pipe, mutex, + Antivirus detection link, comment, text, hex, attachment, other, + anonymised + Artifacts dropped md5, sha1, sha224, sha256, sha384, sha512, + sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, + ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, cdhash, + filename, filename|md5, filename|sha1, filename|sha224, + filename|sha256, filename|sha384, filename|sha512, + filename|sha512/224, filename|sha512/256, filename|sha3-224, + filename|sha3-256, filename|sha3-384, filename|sha3-512, + filename|authentihash, filename|vhash, filename|ssdeep, + filename|tlsh, filename|imphash, filename|impfuzzy, + filename|pehash, regkey, regkey|value, pattern-in-file, pattern- + in-memory, filename-pattern, pdb, stix2-pattern, yara, sigma, + attachment, malware-sample, named pipe, mutex, process-state, windows-scheduled-task, windows-service-name, windows-service- displayname, comment, text, hex, x509-fingerprint-sha1, x509- fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene, kusto-query, mime-type, anonymised, pgp-public-key, pgp-private- key - - Attribution - threat-actor, campaign-name, campaign-id, whois-registrant-phone, - whois-registrant-email, whois-registrant-name, whois-registrant- - org, whois-registrar, whois-creation-date, comment, text, x509- - fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, - other, dns-soa-email, anonymised, email - - External analysis - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 17] - -Internet-Draft MISP core format October 2020 - - - md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512, - filename, filename|md5, filename|sha1, filename|sha256, + Attribution threat-actor, campaign-name, campaign-id, whois- + registrant-phone, whois-registrant-email, whois-registrant-name, + whois-registrant-org, whois-registrar, whois-creation-date, + comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509- + fingerprint-sha256, other, dns-soa-email, anonymised, email + External analysis md5, sha1, sha256, sha3-224, sha3-256, sha3-384, + sha3-512, filename, filename|md5, filename|sha1, filename|sha256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac- address, mac-eui-64, hostname, domain, domain|ip, url, user-agent, @@ -963,71 +879,67 @@ Internet-Draft MISP core format October 2020 pattern-in-traffic, pattern-in-memory, filename-pattern, vulnerability, cpe, weakness, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509- - fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver- - md5, github-repository, other, cortex, anonymised, community-id + fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh- + md5, hasshserver-md5, github-repository, other, cortex, + anonymised, community-id + Financial fraud btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, + bin, cc-number, prtn, phone-number, comment, text, other, hex, + anonymised + Internal reference text, link, comment, other, hex, anonymised, git- + commit-id + Network activity ip-src, ip-dst, ip-dst|port, ip-src|port, port, - Financial fraud - btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc- - number, prtn, phone-number, comment, text, other, hex, anonymised - Internal reference - text, link, comment, other, hex, anonymised, git-commit-id - Network activity - ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, - domain|ip, mac-address, mac-eui-64, email, email-dst, email-src, - eppn, url, uri, user-agent, http-method, AS, snort, pattern-in- - file, filename-pattern, stix2-pattern, pattern-in-traffic, - attachment, comment, text, x509-fingerprint-md5, x509-fingerprint- - sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, - hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek, - anonymised, community-id, email-subject - Other - comment, text, other, size-in-bytes, counter, datetime, cpe, port, - float, hex, phone-number, boolean, anonymised, pgp-public-key, - pgp-private-key - Payload delivery - md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, - sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, - impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, - filename|md5, filename|sha1, filename|sha224, filename|sha256, - filename|sha384, filename|sha512, filename|sha512/224, - filename|sha512/256, filename|sha3-224, filename|sha3-256, - filename|sha3-384, filename|sha3-512, filename|authentihash, - filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, +Dulaunoy & Iklody Expires 18 August 2022 [Page 16] + +Internet-Draft MISP core format February 2022 + + + hostname, domain, domain|ip, mac-address, mac-eui-64, email, + email-dst, email-src, eppn, url, uri, user-agent, http-method, AS, + snort, pattern-in-file, filename-pattern, stix2-pattern, pattern- + in-traffic, attachment, comment, text, x509-fingerprint-md5, x509- + fingerprint-sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, + jarm-fingerprint, hassh-md5, hasshserver-md5, other, hex, cookie, + hostname|port, bro, zeek, anonymised, community-id, email-subject, + favicon-mmh3, dkim, dkim-signature + Other comment, text, other, size-in-bytes, counter, datetime, cpe, + port, float, hex, phone-number, boolean, anonymised, pgp-public- + key, pgp-private-key + Payload delivery md5, sha1, sha224, sha256, sha384, sha512, + sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, + ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, + tlsh, cdhash, filename, filename|md5, filename|sha1, + filename|sha224, filename|sha256, filename|sha384, + filename|sha512, filename|sha512/224, filename|sha512/256, + filename|sha3-224, filename|sha3-256, filename|sha3-384, + filename|sha3-512, filename|authentihash, filename|vhash, + filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip- src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email, email-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, filename-pattern, stix2-pattern, yara, sigma, mime-type, - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 18] - -Internet-Draft MISP core format October 2020 - - attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509- fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, - hassh-md5, hasshserver-md5, other, hostname|port, email-dst- - display-name, email-src-display-name, email-header, email-reply- - to, email-x-mailer, email-mime-boundary, email-thread-index, - email-message-id, mobile-application-id, chrome-extension-id, - whois-registrant-email, anonymised - - Payload installation - md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, - sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, - impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, - filename|md5, filename|sha1, filename|sha224, filename|sha256, - filename|sha384, filename|sha512, filename|sha512/224, - filename|sha512/256, filename|sha3-224, filename|sha3-256, - filename|sha3-384, filename|sha3-512, filename|authentihash, - filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, + jarm-fingerprint, hassh-md5, hasshserver-md5, other, + hostname|port, email-dst-display-name, email-src-display-name, + email-header, email-reply-to, email-x-mailer, email-mime-boundary, + email-thread-index, email-message-id, mobile-application-id, + chrome-extension-id, whois-registrant-email, anonymised + Payload installation md5, sha1, sha224, sha256, sha384, sha512, + sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, + ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, + tlsh, cdhash, filename, filename|md5, filename|sha1, + filename|sha224, filename|sha256, filename|sha384, + filename|sha512, filename|sha512/224, filename|sha512/256, + filename|sha3-224, filename|sha3-256, filename|sha3-384, + filename|sha3-512, filename|authentihash, filename|vhash, + filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in- traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara, sigma, vulnerability, cpe, weakness, attachment, malware-sample, @@ -1035,49 +947,39 @@ Internet-Draft MISP core format October 2020 fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, chrome-extension-id, other, mime-type, anonymised - Payload type - comment, text, other, anonymised - - Persistence mechanism - filename, regkey, regkey|value, comment, text, other, hex, - anonymised - - Person - first-name, middle-name, last-name, date-of-birth, place-of-birth, - gender, passport-number, passport-country, passport-expiration, - redress-number, nationality, visa-number, issue-date-of-the-visa, - primary-residence, country-of-residence, special-service-request, - frequent-flyer-number, travel-details, payment-details, place- - port-of-original-embarkation, place-port-of-clearance, place-port- - of-onward-foreign-destination, passenger-name-record-locator- - number, comment, text, other, phone-number, identity-card-number, - anonymised, email, pgp-public-key, pgp-private-key - - Social network - github-username, github-repository, github-organisation, jabber- - id, twitter-id, email, email-src, email-dst, eppn, comment, text, - other, whois-registrant-email, anonymised, pgp-public-key, pgp- - private-key - -Dulaunoy & Iklody Expires April 24, 2021 [Page 19] +Dulaunoy & Iklody Expires 18 August 2022 [Page 17] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 - Support Tool - link, text, attachment, comment, other, hex, anonymised - - Targeting data - target-user, target-email, target-machine, target-org, target- - location, target-external, comment, anonymised + Payload type comment, text, other, anonymised + Persistence mechanism filename, regkey, regkey|value, comment, text, + other, hex, anonymised + Person first-name, middle-name, last-name, full-name, date-of-birth, + place-of-birth, gender, passport-number, passport-country, + passport-expiration, redress-number, nationality, visa-number, + issue-date-of-the-visa, primary-residence, country-of-residence, + special-service-request, frequent-flyer-number, travel-details, + payment-details, place-port-of-original-embarkation, place-port- + of-clearance, place-port-of-onward-foreign-destination, passenger- + name-record-locator-number, comment, text, other, phone-number, + identity-card-number, anonymised, email, pgp-public-key, pgp- + private-key + Social network github-username, github-repository, github- + organisation, jabber-id, twitter-id, email, email-src, email-dst, + eppn, comment, text, other, whois-registrant-email, anonymised, + pgp-public-key, pgp-private-key + Support Tool link, text, attachment, comment, other, hex, anonymised + Targeting data target-user, target-email, target-machine, target- + org, target-location, target-external, comment, anonymised Attributes are based on the usage within their different communities. Attributes can be extended on a regular basis and this reference document is updated accordingly. -2.5.2.4. category +2.4.2.4. category category represents the intent of what the attribute is describing as selected by the attribute creator, using a list of pre-defined @@ -1087,7 +989,7 @@ Internet-Draft MISP core format October 2020 and it MUST be a valid selection for the chosen type. The list of valid category-type combinations is mentioned above. -2.5.2.5. to_ids +2.4.2.5. to_ids to_ids represents whether the Attribute to be created if the ShadowAttribute is accepted is meant to be actionable. Actionable @@ -1097,7 +999,18 @@ Internet-Draft MISP core format October 2020 to_ids is represented as a JSON boolean. to_ids MUST be present. -2.5.2.6. event_id + + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 18] + +Internet-Draft MISP core format February 2022 + + +2.4.2.6. event_id event_id represents a human-readable identifier referencing the Event object that the ShadowAttribute belongs to. @@ -1107,21 +1020,12 @@ Internet-Draft MISP core format October 2020 event_id is represented as a JSON string. event_id MUST be present. -2.5.2.7. old_id +2.4.2.7. old_id old_id represents a human-readable identifier referencing the Attribute object that the ShadowAttribute belongs to. A ShadowAttribute can this way target an existing Attribute, implying that it is a proposal to modify an existing Attribute, or - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 20] - -Internet-Draft MISP core format October 2020 - - alternatively it can be a proposal to create a new Attribute for the containing Event. @@ -1132,7 +1036,7 @@ Internet-Draft MISP core format October 2020 old_id is represented as a JSON string. old_id MUST be present. -2.5.2.8. timestamp +2.4.2.8. timestamp timestamp represents a reference time when the attribute was created or last modified. timestamp is expressed in seconds (decimal) since @@ -1140,25 +1044,35 @@ Internet-Draft MISP core format October 2020 timestamp is represented as a JSON string. timestamp MUST be present. -2.5.2.9. comment +2.4.2.9. comment comment is a contextual comment field. comment is represented by a JSON string. comment MAY be present. -2.5.2.10. org_id +2.4.2.10. org_id org_id represents a human-readable identifier referencing the proposal creator's Organisation object. A human-readable identifier MUST be represented as an unsigned integer. + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 19] + +Internet-Draft MISP core format February 2022 + + Whilst attributes can only be created by the event creator organisation, shadow attributes can be created by third parties. org_id tracks the creator organisation. org_id is represented by a JSON string and MUST be present. -2.5.2.11. proposal_to_delete +2.4.2.11. proposal_to_delete proposal_to_delete is a boolean flag that sets whether the shadow attribute proposes to alter an attribute, or whether it proposes to @@ -1170,15 +1084,7 @@ Internet-Draft MISP core format October 2020 proposal_to_delete is a JSON boolean and it MUST be present. If proposal_to_delete is set to true, old_id MUST NOT be 0. - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 21] - -Internet-Draft MISP core format October 2020 - - -2.5.2.12. deleted +2.4.2.12. deleted deleted represents a setting that allows shadow attributes to be revoked. Revoked shadow attributes only serve to inform other @@ -1186,7 +1092,7 @@ Internet-Draft MISP core format October 2020 deleted is represented by a JSON boolean. deleted SHOULD be present. -2.5.2.13. data +2.4.2.13. data data contains the base64 encoded contents of an attachment or a malware sample. For malware samples, the sample MUST be encrypted @@ -1196,7 +1102,7 @@ Internet-Draft MISP core format October 2020 data is represented by a JSON string in base64 encoding. data MUST be set for shadow attributes of type malware-sample and attachment. -2.5.2.14. first_seen +2.4.2.14. first_seen first_seen represents a reference time when the attribute was first seen. first_seen as an ISO 8601 datetime up to the micro-second with @@ -1205,7 +1111,18 @@ Internet-Draft MISP core format October 2020 first_seen is represented as a JSON string. first_seen MAY be present. -2.5.2.15. last_seen + + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 20] + +Internet-Draft MISP core format February 2022 + + +2.4.2.15. last_seen last_seen represents a reference time when the attribute was last seen. last_seen as an ISO 8601 datetime up to the micro-second with @@ -1213,7 +1130,16 @@ Internet-Draft MISP core format October 2020 last_seen is represented as a JSON string. last_seen MAY be present. -2.5.3. Org +2.4.2.16. value + + value represents the payload of an attribute. The format of the + value is dependent on the type of the attribute. + + value is represented by a JSON string. value MUST be present. + +2.4.3. ShadowAttribute Objects + +2.4.3.1. Org An Org object is composed of an uuid, name and id. @@ -1226,33 +1152,33 @@ Internet-Draft MISP core format October 2020 instance and used as reference in the event. A human-readable identifier MUST be represented as an unsigned integer. - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 22] - -Internet-Draft MISP core format October 2020 - - uuid, name and id are represented as a JSON string. uuid, name and id MUST be present. -2.5.3.1. Sample Org Object +2.4.3.1.1. Sample Org Object - "Org": { - "id": "2", - "name": "CIRCL", - "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f" - } + "Org": { + "id": "2", + "name": "CIRCL", + "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f" + } -2.5.3.2. value - value represents the payload of an attribute. The format of the - value is dependent on the type of the attribute. - value is represented by a JSON string. value MUST be present. -2.6. Object + + + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 21] + +Internet-Draft MISP core format February 2022 + + +2.5. Object Objects serve as a contextual bond between a list of attributes within an event. Their main purpose is to describe more complex @@ -1268,7 +1194,7 @@ Internet-Draft MISP core format October 2020 category, a description, a template_uuid and a template_version as described in the "Object Attributes" section. -2.6.1. Sample Object +2.5.1. Sample Object @@ -1285,9 +1211,27 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 23] + + + + + + + + + + + + + + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 22] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "Object": { @@ -1331,9 +1275,7 @@ Internet-Draft MISP core format October 2020 ] } - Figure 1 - -2.6.2. Object Attributes +2.5.2. Object Attributes @@ -1341,19 +1283,21 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 24] + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 23] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 -2.6.2.1. uuid +2.5.2.1. uuid uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object. The uuid MUST be preserved for any updates or transfer of the same object. UUID version 4 is RECOMMENDED when assigning it to a new object. -2.6.2.2. id +2.5.2.2. id id represents the human-readable identifier associated to the object for a specific MISP instance. A human-readable identifier MUST be @@ -1361,48 +1305,51 @@ Internet-Draft MISP core format October 2020 id is represented as a JSON string. id SHALL be present. -2.6.2.3. name +2.5.2.3. name name represents the human-readable name of the object describing the intent of the object package. - name is represented as a JSON string. name MUST be present + name is represented as a JSON string. name MUST be present. -2.6.2.4. meta-category +2.5.2.4. meta-category meta-category represents the sub-category of objects that the given object belongs to. meta-categories are not tied to a fixed list of options but can be created on the fly. meta-category is represented as a JSON string. meta-category MUST be - present + present. -2.6.2.5. description +2.5.2.5. description description is a human-readable description of the given object type, as derived from the template used for creation. - description is represented as a JSON string. id SHALL be present. + description is represented as a JSON string. description SHALL be + present. -2.6.2.6. template_uuid +2.5.2.6. template_uuid - uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of - the template used to create the object. The uuid MUST be preserved - to preserve the object's association with the correct template used - for creation. UUID version 4 is RECOMMENDED when assigning it to a - new object. + template_uuid represents the Universally Unique IDentifier (UUID) + [RFC4122] of the template used to create the object. The uuid MUST + be preserved to preserve the object's association with the correct + template used for creation. UUID version 4 is RECOMMENDED when + assigning it to a new object. - -Dulaunoy & Iklody Expires April 24, 2021 [Page 25] +Dulaunoy & Iklody Expires 18 August 2022 [Page 24] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 -2.6.2.7. template_version + template_uuid is represented as a JSON string. template_uuid MUST be + present. + +2.5.2.7. template_version template_version represents a numeric incrementing version of the template used to create the object. It is used to associate the @@ -1410,9 +1357,10 @@ Internet-Draft MISP core format October 2020 template_uuid forms an association to the correct template type and version. - version is represented as a JSON string. version MUST be present. + template_version is represented as a JSON string. template_version + MUST be present. -2.6.2.8. event_id +2.5.2.8. event_id event_id represents the human-readable identifier of the event that the object belongs to on a specific MISP instance. A human-readable @@ -1420,7 +1368,7 @@ Internet-Draft MISP core format October 2020 event_id is represented as a JSON string. event_id SHALL be present. -2.6.2.9. timestamp +2.5.2.9. timestamp timestamp represents a reference time when the object was created or last modified. timestamp is expressed in seconds (decimal) since 1st @@ -1428,7 +1376,7 @@ Internet-Draft MISP core format October 2020 timestamp is represented as a JSON string. timestamp MUST be present. -2.6.2.10. distribution +2.5.2.10. distribution distribution represents the basic distribution rules of the object. The system must adhere to the distribution setting for access control @@ -1437,30 +1385,24 @@ Internet-Draft MISP core format October 2020 distribution is represented by a JSON string. distribution MUST be present and be one of the following options: - 0 - Your Organisation Only - - 1 - This Community Only - - 2 - Connected Communities - - 3 - All Communities - - 4 + 0 Your Organisation Only + 1 This Community Only + 2 Connected Communities + 3 All Communities + 4 Sharing Group -Dulaunoy & Iklody Expires April 24, 2021 [Page 26] + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 25] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 - Sharing Group - -2.6.2.11. sharing_group_id +2.5.2.11. sharing_group_id sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the object, if @@ -1471,21 +1413,21 @@ Internet-Draft MISP core format October 2020 present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0". -2.6.2.12. comment +2.5.2.12. comment comment is a contextual comment field. comment is represented by a JSON string. comment MAY be present. -2.6.2.13. deleted +2.5.2.13. deleted - deleted represents a setting that allows attributes to be revoked. - Revoked attributes are not actionable and exist merely to inform - other instances of a revocation. + deleted represents a setting that allows objects to be revoked. + Revoked objects are not actionable and exist merely to inform other + instances of a revocation. deleted is represented by a JSON boolean. deleted MUST be present. -2.6.2.14. Attribute +2.5.2.14. Attribute Attribute is an array of attributes that describe the object with data. @@ -1493,7 +1435,7 @@ Internet-Draft MISP core format October 2020 Each attribute in an object MUST contain the parent event's ID in the event_id field and the parent object's ID in the object_id field. -2.6.2.15. first_seen +2.5.2.15. first_seen first_seen represents a reference time when the object was first seen. first_seen as an ISO 8601 datetime up to the micro-second with @@ -1502,27 +1444,23 @@ Internet-Draft MISP core format October 2020 first_seen is represented as a JSON string. first_seen MAY be present. - - - - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 27] - -Internet-Draft MISP core format October 2020 - - -2.6.2.16. last_seen +2.5.2.16. last_seen last_seen represents a reference time when the object was last seen. last_seen as an ISO 8601 datetime up to the micro-second with time zone support. + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 26] + +Internet-Draft MISP core format February 2022 + + last_seen is represented as a JSON string. last_seen MAY be present. -2.7. Object References +2.6. Object References Object References serve as a logical link between an Object and another referenced Object or Attribute. The relationship is @@ -1535,7 +1473,7 @@ Internet-Draft MISP core format October 2020 All Object References MUST contain an object_uuid, a referenced_uuid and a relationship type. -2.7.1. Sample ObjectReference object +2.6.1. Sample ObjectReference object "ObjectReference": { "id": "195", @@ -1552,32 +1490,31 @@ Internet-Draft MISP core format October 2020 "referenced_uuid": "59c1133c-9adc-4d06-a34b-0f7ca07724d1", } -2.7.2. ObjectReference Attributes +2.6.2. ObjectReference Attributes -2.7.2.1. uuid +2.6.2.1. uuid uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object reference. The uuid MUST be preserved for any updates or transfer of the same object reference. UUID version 4 is RECOMMENDED when assigning it to a new object reference. - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 28] - -Internet-Draft MISP core format October 2020 - - -2.7.2.2. id +2.6.2.2. id id represents the human-readable identifier associated to the object reference for a specific MISP instance. id is represented as a JSON string. id SHALL be present. -2.7.2.3. timestamp + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 27] + +Internet-Draft MISP core format February 2022 + + +2.6.2.3. timestamp timestamp represents a reference time when the object was created or last modified. timestamp is expressed in seconds (decimal) since 1st @@ -1585,15 +1522,16 @@ Internet-Draft MISP core format October 2020 timestamp is represented as a JSON string. timestamp MUST be present. -2.7.2.4. object_id +2.6.2.4. object_id object_id represents the human-readable identifier of the object that the object reference belongs to on a specific MISP instance. A human-readable identifier MUST be represented as an unsigned integer. - event_id is represented as a JSON string. event_id SHALL be present. + object_id is represented as a JSON string. object_id SHALL be + present. -2.7.2.5. event_id +2.6.2.5. event_id event_id represents the human-readable identifier of the event that the object reference belongs to on a specific MISP instance. A @@ -1601,7 +1539,7 @@ Internet-Draft MISP core format October 2020 event_id is represented as a JSON string. event_id SHALL be present. -2.7.2.6. referenced_id +2.6.2.6. referenced_id referenced_id represents the human-readable identifier of the object or attribute that the parent object of the object reference points to @@ -1610,7 +1548,7 @@ Internet-Draft MISP core format October 2020 referenced_id is represented as a JSON string. referenced_id MAY be present. -2.7.2.7. referenced_type +2.6.2.7. referenced_type referenced_type represents the numeric value describing what the object reference points to, "0" representing an attribute and "1" @@ -1619,29 +1557,29 @@ Internet-Draft MISP core format October 2020 referenced_type is represented as a JSON string. referenced_type MAY be present. - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 29] - -Internet-Draft MISP core format October 2020 - - -2.7.2.8. relationship_type +2.6.2.8. relationship_type relationship_type represents the human-readable context of the relationship between an object and another object or attribute as described by the object_reference. - referenced_type is represented as a JSON string. relationship_type + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 28] + +Internet-Draft MISP core format February 2022 + + + relationship_type is represented as a JSON string. relationship_type MUST be present. -2.7.2.9. comment +2.6.2.9. comment comment is a contextual comment field. comment is represented by a JSON string. comment MAY be present. -2.7.2.10. deleted +2.6.2.10. deleted deleted represents a setting that allows object references to be revoked. Revoked object references are not actionable and exist @@ -1649,40 +1587,28 @@ Internet-Draft MISP core format October 2020 deleted is represented by a JSON boolean. deleted MUST be present. -2.7.2.11. object_uuid +2.6.2.11. object_uuid object_uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object that the given object reference belongs to. The object_uuid MUST be preserved to preserve the object reference's association with the object. -2.7.2.12. referenced_uuid +2.6.2.12. referenced_uuid referenced_uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the object or attribute that is being referenced by the object reference. The referenced_uuid MUST be preserved to preserve the object reference's association with the object or attribute. -2.8. EventReport +2.7. EventReport EventReport are used to complement an event with one or more report in Markdown format. The EventReport contains unstructured information which can be linked to Attributes, Objects, Tags or Galaxy with an extension to the Markdown marking language. - - - - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 30] - -Internet-Draft MISP core format October 2020 - - -2.8.1. id +2.7.1. id id represents the human-readable identifier associated to the EventReport for a specific MISP instance. A human-readable @@ -1690,7 +1616,17 @@ Internet-Draft MISP core format October 2020 id is represented as a JSON string. id SHALL be present. -2.8.2. UUID + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 29] + +Internet-Draft MISP core format February 2022 + + +2.7.2. UUID uuid represents the Universally Unique IDentifier (UUID) [RFC4122] of the EventReport. The uuid MUST be preserved for any updates or @@ -1699,7 +1635,7 @@ Internet-Draft MISP core format October 2020 uuid is represented as a JSON string. uuid MUST be present. -2.8.3. event_id +2.7.3. event_id event_id represents the human-readable identifier associating the EventReport to an event on a specific MISP instance. A human- @@ -1707,7 +1643,7 @@ Internet-Draft MISP core format October 2020 event_id is represented as a JSON string. event_id MUST be present. -2.8.4. name +2.7.4. name name represents the information field of the EventReport. name is a free-text value to provide a human-readable summary of the report. @@ -1716,7 +1652,7 @@ Internet-Draft MISP core format October 2020 name is represented as a JSON string. name MUST be present. -2.8.5. content +2.7.5. content content includes the raw EventReport in Markdown format with or without the specific MISP Markdown markup extension. @@ -1727,18 +1663,7 @@ Internet-Draft MISP core format October 2020 content is represented as a JSON string. content MUST be present. - - - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 31] - -Internet-Draft MISP core format October 2020 - - -2.8.6. distribution +2.7.6. distribution distribution represents the basic distribution rules of the EventReport. The system must adhere to the distribution setting for @@ -1747,25 +1672,22 @@ Internet-Draft MISP core format October 2020 distribution is represented by a JSON string. distribution MUST be present and be one of the following options: - 0 - Your Organisation Only + 0 Your Organisation Only + 1 This Community Only - 1 - This Community Only - 2 - Connected Communities - 3 - All Communities +Dulaunoy & Iklody Expires 18 August 2022 [Page 30] + +Internet-Draft MISP core format February 2022 - 4 - Sharing Group - 5 - Inherit Event + 2 Connected Communities + 3 All Communities + 4 Sharing Group + 5 Inherit Event -2.8.7. sharing_group_id +2.7.7. sharing_group_id sharing_group_id represents the local id to the MISP local instance of the Sharing Group associated for the distribution. @@ -1773,7 +1695,7 @@ Internet-Draft MISP core format October 2020 sharing_group_id is represented by a JSON string. sharing_group_id MUST be present and set to "0" if not used. -2.8.8. timestamp +2.7.8. timestamp timestamp represents a reference time when the EventReport was created or last modified. timestamp is expressed in seconds (decimal) @@ -1782,19 +1704,7 @@ Internet-Draft MISP core format October 2020 timestamp is represented as a JSON string. timestamp MUST be present. - - - - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 32] - -Internet-Draft MISP core format October 2020 - - -2.8.9. deleted +2.7.9. deleted deleted represents a setting that allows EventReport to be revoked. Revoked EventReport are not actionable and exist merely to inform @@ -1802,7 +1712,7 @@ Internet-Draft MISP core format October 2020 deleted is represented by a JSON boolean. deleted MUST be present. -2.9. Tag +2.8. Tag A tag is a simple method to classify an event with a simple string. The tag name can be freely chosen. The tag name can be also chosen @@ -1821,15 +1731,22 @@ Internet-Draft MISP core format October 2020 name MUST be present. colour, id and exportable SHALL be present. -2.9.1. Sample Tag - "Tag": [{ - "exportable": true, - "colour": "#ffffff", - "name": "tlp:white", - "id": "2" }] -2.10. Sighting +Dulaunoy & Iklody Expires 18 August 2022 [Page 31] + +Internet-Draft MISP core format February 2022 + + +2.8.1. Sample Tag + + "Tag": [{ + "exportable": true, + "colour": "#ffffff", + "name": "tlp:white", + "id": "2" }] + +2.9. Sighting A sighting is an ascertainment which describes whether an attribute has been seen under a given set of conditions. The sighting can @@ -1841,25 +1758,19 @@ Internet-Draft MISP core format October 2020 type MUST be present. type describes the type of a sighting. MISP allows 3 default types: + +===============+==========================================+ + | Sighting type | Description | + +===============+==========================================+ + | 0 | denotes an attribute which has been seen | + +---------------+------------------------------------------+ + | 1 | denotes an attribute which has been seen | + | | and confirmed as false-positive | + +---------------+------------------------------------------+ + | 2 | denotes an attribute which will be | + | | expired at the time of the sighting | + +---------------+------------------------------------------+ - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 33] - -Internet-Draft MISP core format October 2020 - - - +------------+------------------------------------------------------+ - | Sighting | Description | - | type | | - +------------+------------------------------------------------------+ - | 0 | denotes an attribute which has been seen | - | 1 | denotes an attribute which has been seen and | - | | confirmed as false-positive | - | 2 | denotes an attribute which will be expired at the | - | | time of the sighting | - +------------+------------------------------------------------------+ + Table 1 uuid MUST be present. uuid references the uuid of the sighted attribute. @@ -1874,12 +1785,22 @@ Internet-Draft MISP core format October 2020 can be a given piece of software (e.g. SIEM), device or a specific analytical process. - id, event_id and attribute_id MAY be present. + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 32] + +Internet-Draft MISP core format February 2022 + + + id, event_id and attribute_id are represented as a JSON string and + MAY be present. id represents the human-readable identifier of the sighting reference - which belongs to a specific MISP instance. event_id represents the + which belongs to a specific MISP instance. event_id represents the human-readable identifier of the event referenced by the sighting and - belongs to a specific MISP instance. attribute_id represents the + belongs to a specific MISP instance. attribute_id represents the human-readable identifier of the attribute referenced by the sighting and belongs to a specific MISP instance. @@ -1890,10 +1811,10 @@ Internet-Draft MISP core format October 2020 org_id represents the human-readable identifier of the organisation which did the sighting and belongs to a specific MISP instance. - A human-readable identifier MUST be represented as an unsigned + A human-readable identifier MUST be considered as an unsigned integer. -2.10.1. Sample Sighting +2.9.1. Sample Sighting @@ -1901,9 +1822,32 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 34] + + + + + + + + + + + + + + + + + + + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 33] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "Sighting": [ @@ -1939,13 +1883,13 @@ Internet-Draft MISP core format October 2020 } ] -2.11. Galaxy +2.10. Galaxy A galaxy is a simple method to express a large object called cluster that can be attached to MISP events. A cluster can be composed of one or more elements. Elements are expressed as key-values. -2.11.1. Sample Galaxy +2.10.1. Sample Galaxy @@ -1957,9 +1901,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 35] +Dulaunoy & Iklody Expires 18 August 2022 [Page 34] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "Galaxy": [ { @@ -2013,9 +1957,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 36] +Dulaunoy & Iklody Expires 18 August 2022 [Page 35] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 3. JSON Schema @@ -2069,9 +2013,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 37] +Dulaunoy & Iklody Expires 18 August 2022 [Page 36] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "type": "object", @@ -2125,9 +2069,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 38] +Dulaunoy & Iklody Expires 18 August 2022 [Page 37] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "items": { @@ -2181,9 +2125,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 39] +Dulaunoy & Iklody Expires 18 August 2022 [Page 38] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "type": "string" @@ -2237,9 +2181,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 40] +Dulaunoy & Iklody Expires 18 August 2022 [Page 39] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "type": "string" @@ -2293,9 +2237,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 41] +Dulaunoy & Iklody Expires 18 August 2022 [Page 40] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "properties": { @@ -2349,9 +2293,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 42] +Dulaunoy & Iklody Expires 18 August 2022 [Page 41] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "properties": { @@ -2405,9 +2349,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 43] +Dulaunoy & Iklody Expires 18 August 2022 [Page 42] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "properties": { @@ -2461,9 +2405,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 44] +Dulaunoy & Iklody Expires 18 August 2022 [Page 43] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 }, @@ -2517,9 +2461,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 45] +Dulaunoy & Iklody Expires 18 August 2022 [Page 44] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 }, @@ -2573,9 +2517,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 46] +Dulaunoy & Iklody Expires 18 August 2022 [Page 45] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "type": "string" @@ -2629,9 +2573,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 47] +Dulaunoy & Iklody Expires 18 August 2022 [Page 46] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "uniqueItems": true, @@ -2685,9 +2629,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 48] +Dulaunoy & Iklody Expires 18 August 2022 [Page 47] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "type": "boolean" @@ -2741,9 +2685,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 49] +Dulaunoy & Iklody Expires 18 August 2022 [Page 48] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "type": "object", @@ -2797,9 +2741,9 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 50] +Dulaunoy & Iklody Expires 18 August 2022 [Page 49] -Internet-Draft MISP core format October 2020 +Internet-Draft MISP core format February 2022 "Event": { @@ -2831,37 +2775,33 @@ Internet-Draft MISP core format October 2020 Each uuid is composed of a JSON object with the following fields which came from the original event referenced by the same uuid: - o info (MUST) - - o Orgc object (MUST) - - o analysis (SHALL) - - o timestamp (MUST) - - o date (MUST) - - o threat_level_id (SHALL) + * info (MUST) + * Orgc object (MUST) + * analysis (SHALL) + * timestamp (MUST) + * date (MUST) + * threat_level_id (SHALL) In addition to the fields originating from the event, the following fields can be added: - o integrity:sha256 represents the SHA256 value in hexadecimal + * integrity:sha256 represents the SHA256 value in hexadecimal representation of the associated MISP event file to ensure integrity of the file. (SHOULD) - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 51] - -Internet-Draft MISP core format October 2020 - - - o integrity:pgp represents a detached PGP signature [RFC4880] of the + * integrity:pgp represents a detached PGP signature [RFC4880] of the associated MISP event file to ensure integrity of the file. (SHOULD) + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 50] + +Internet-Draft MISP core format February 2022 + + If a detached PGP signature is used for each MISP event, a detached PGP signature is a MUST to ensure integrity of the manifest file. A detached PGP signature for a manifest file is a manifest.json.asc @@ -2906,18 +2846,18 @@ Internet-Draft MISP core format October 2020 }, { "colour": "#3d7a00", - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 52] - -Internet-Draft MISP core format October 2020 - - "name": "circl:incident-classification=\"malware\"" }, { "colour": "#2c4f00", + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 51] + +Internet-Draft MISP core format February 2022 + + "name": "malware_classification:malware-category=\"Ransomware\"" } ], @@ -2956,27 +2896,24 @@ Internet-Draft MISP core format October 2020 8. References -9. References - - - - - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 53] - -Internet-Draft MISP core format October 2020 - - -9.1. Normative References +9. 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, . + + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 52] + +Internet-Draft MISP core format February 2022 + + [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally Unique IDentifier (UUID) URN Namespace", RFC 4122, DOI 10.17487/RFC4122, July 2005, @@ -2992,54 +2929,51 @@ Internet-Draft MISP core format October 2020 DOI 10.17487/RFC8259, December 2017, . -9.2. Informative References +10. Informative References [JSON-SCHEMA] - "JSON Schema: A Media Type for Describing JSON Documents", - 2016, + Wright, A., "JSON Schema: A Media Type for Describing JSON + Documents", 2016, . - [MISP-P] MISP, "MISP Project - Open Source Threat Intelligence - Platform and Open Standards For Threat Information - Sharing", . + [MISP-P] Community, M., "MISP Project - Open Source Threat + Intelligence Platform and Open Standards For Threat + Information Sharing", . - [MISP-R] MISP, "MISP Object Relationship Types - common vocabulary - of relationships", . + [MISP-R] Community, M., "MISP Object Relationship Types - common + vocabulary of relationships", . - [MISP-T] MISP, "MISP Taxonomies - shared and common vocabularies of - tags", . + [MISP-T] Community, M., "MISP Taxonomies - shared and common + vocabularies of tags", + . Authors' Addresses - - - - - - - - - -Dulaunoy & Iklody Expires April 24, 2021 [Page 54] - -Internet-Draft MISP core format October 2020 - - Alexandre Dulaunoy Computer Incident Response Center Luxembourg 16, bd d'Avranches - Luxembourg L-1160 + L-L-1160 Luxembourg Luxembourg Phone: +352 247 88444 Email: alexandre.dulaunoy@circl.lu + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 53] + +Internet-Draft MISP core format February 2022 + + Andras Iklody Computer Incident Response Center Luxembourg 16, bd d'Avranches - Luxembourg L-1160 + L-L-1160 Luxembourg Luxembourg Phone: +352 247 88444 @@ -3077,4 +3011,14 @@ Internet-Draft MISP core format October 2020 -Dulaunoy & Iklody Expires April 24, 2021 [Page 55] + + + + + + + + + + +Dulaunoy & Iklody Expires 18 August 2022 [Page 54] diff --git a/misp-core-format/raw.md.xml b/misp-core-format/raw.md.xml index faf276f..9009948 100755 --- a/misp-core-format/raw.md.xml +++ b/misp-core-format/raw.md.xml @@ -1,2184 +1,1865 @@ - - - - - - - - - - - + + + + -MISP core format - - -Computer Incident Response Center Luxembourg -
    - -16, bd d'Avranches +MISP core format +Computer Incident Response Center Luxembourg
    16, bd d'Avranches Luxembourg L-1160 Luxembourg - - -+352 247 88444 ++352 247 88444 alexandre.dulaunoy@circl.lu - -
    -
    - -Computer Incident Response Center Luxembourg -
    - -16, bd d'Avranches +
    Computer Incident Response Center Luxembourg
    16, bd d'Avranches Luxembourg L-1160 Luxembourg - - -+352 247 88444 ++352 247 88444 andras.iklody@circl.lu - -
    -
    - - +
    Security - This document describes the MISP core format used to exchange indicators and threat information between MISP (Open Source Threat Intelligence Sharing Platform formerly known as Malware Information 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 software and other Threat Intelligence Platforms. - +format and ensuring an interoperability with existing MISP software and other Threat Intelligence Platforms. -
    -
    +
    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 2011 and +or even detailed information about a threat actor. MISP 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 aim of this document -is to describe the specification and the MISP core format. - +is to describe the specification and the MISP core format. -
    -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 . - +
    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 .
    -
    +
    Format -
    -The MISP core format is in the JSON format. In MISP, an event is composed of a single JSON object. - +
    Overview +The MISP core format is in the JSON format. In MISP, an event is composed of a single JSON object. A capitalized key (like Event, Org) represent a data model and a non-capitalised key is just an attribute. This nomenclature -can support an implementation to represent the MISP format in another data structure. - +can support an implementation to represent the MISP format in another data structure.
    -
    +
    Event 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. - +analysis. The meaning of an event only depends of the information embedded in the event. -
    +
    Event Attributes -
    -uuid represents the Universally Unique IDentifier (UUID) 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. - -uuid is represented as a JSON string. uuid MUST be present. - +
    uuid +uuid represents the Universally Unique IDentifier (UUID) 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. +uuid is represented as a JSON string. uuid MUST be present.
    -
    -id represents the human-readable identifier associated to the event for a specific MISP instance. A human-readable identifier MUST be -represented as an unsigned integer. - -id is represented as a JSON string. id SHALL be present. - +
    id +id represents the human-readable identifier associated to the event for a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer. +id is represented as a JSON string. id SHALL be present.
    -
    -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. - +
    published +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.
    -
    +
    info info represents the information field of the event. info is a free-text value to provide a human-readable summary -of the event. info SHOULD NOT be bigger than 256 characters and SHOULD NOT include new-lines. - -info is represented as a JSON string. info MUST be present. - +of the event. info SHOULD NOT be bigger than 256 characters and SHOULD NOT include new-lines. +info is represented as a JSON string. info MUST be present.
    -
    -threat_level_id represents the threat level. - - - - - -Undefined - - -Low - - -Medium - - -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. - +
    threat_level_id +threat_level_id represents the threat level. + +
    +
    4:
    +
    Undefined
    +
    3:
    +
    Low
    +
    2:
    +
    Medium
    +
    1:
    +
    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.
    -
    -analysis represents the analysis level. - - - - - -Initial - - -Ongoing - - -Complete - - -If a higher granularity is required, a MISP taxonomy applied as a Tag SHOULD be preferred. - -analysis is represented as a JSON string. analysis SHALL be present. - +
    analysis +analysis represents the analysis level. + +
    +
    0:
    +
    Initial
    +
    1:
    +
    Ongoing
    +
    2:
    +
    Complete
    +
    +If a higher granularity is required, a MISP taxonomy applied as a Tag SHOULD be preferred. +analysis is represented as a JSON string. analysis SHALL be present.
    -
    -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 occurred, which may be in the past. - -date is represented as a JSON string. date MUST be present. - +
    date +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 occurred, which may be in the past. +date is represented as a JSON string. date MUST be present.
    -
    -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. - -timestamp is represented as a JSON string. timestamp MUST be present. - +
    timestamp +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. +timestamp is represented as a JSON string. timestamp MUST be present.
    -
    -publish_timestamp represents a reference time when the event was 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. If the published_timestamp is present and the published flag is set to false, the publish_timestamp represents the previous publication timestamp. If the event was never published, the published_timestamp MUST be set to 0. - -publish_timestamp is represented as a JSON string. publish_timestamp MUST be present. - +
    publish_timestamp +publish_timestamp represents a reference time when the event was 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. If the published_timestamp is present and the published flag is set to false, the publish_timestamp represents the previous publication timestamp. If the event was never published, the published_timestamp MUST be set to 0. +publish_timestamp is represented as a JSON string. publish_timestamp MUST be present.
    -
    -org_id represents a human-readable identifier referencing an Org object of the organisation which generated the event. A human-readable identifier MUST be -represented as an unsigned integer. - -The org_id MUST be updated when the event is generated by a new instance. - -org_id is represented as a JSON string. org_id MUST be present. - +
    org_id +org_id represents a human-readable identifier referencing an Org object of the organisation which generated the event. A human-readable identifier MUST be +represented as an unsigned integer. +The org_id MUST be updated when the event is generated by a new instance. +org_id is represented as a JSON string. org_id MUST be present.
    -
    -orgc_id represents a human-readable identifier referencing an Orgc object of the organisation which created the event. - -The orgc_id and Org object MUST be preserved for any updates or transfer of the same event. - -orgc_id is represented as a JSON string. orgc_id MUST be present. - +
    orgc_id +orgc_id represents a human-readable identifier referencing an Orgc object of the organisation which created the event. +The orgc_id and Org object MUST be preserved for any updates or transfer of the same event. +orgc_id is represented as a JSON string. orgc_id MUST be present.
    -
    -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. - +
    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.
    -
    -distribution represents the basic distribution rules of the event. The system must adhere to the distribution setting for access control and for dissemination of the event. - -distribution is represented by a JSON string. distribution MUST be present and be one of the following options: - - - - - -Your Organisation Only - - -This Community Only - - -Connected Communities - - -All Communities - - -Sharing Group - - +
    distribution +distribution represents the basic distribution rules of the event. The system must adhere to the distribution setting for access control and for dissemination of the event. +distribution is represented by a JSON string. distribution MUST be present and be one of the following options: + +
    +
    0
    +
    Your Organisation Only
    +
    1
    +
    This Community Only
    +
    2
    +
    Connected Communities
    +
    3
    +
    All Communities
    +
    4
    +
    Sharing Group
    +
    -
    -sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the event, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer. - -sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0". - +
    sharing_group_id +sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the event, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer. +sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0".
    -
    -extends_uuid represents which event is extended by this event. The extends_uuid is described as a Universally Unique IDentifier (UUID) with the UUID of the extended event. - -extends_uuid is represented as a JSON string. extends_uuid SHOULD be present. - -
    +
    extends_uuid +extends_uuid represents which event is extended by this event. The extends_uuid is described as a Universally Unique IDentifier (UUID) with the UUID of the extended event. +extends_uuid is represented as a JSON string. extends_uuid SHOULD be present.
    -
    +
    Event Objects -
    -An Org object is composed of an uuid, name and id. - -The uuid represents the Universally Unique IDentifier (UUID) of the organisation. -The organisation UUID is globally assigned to an organisation and SHALL be kept overtime. - -The name is a readable description of the organisation and SHOULD be present. +
    Org +An Org object is composed of an uuid, name and id. +The uuid represents the Universally Unique IDentifier (UUID) of the organisation. +The organisation UUID is globally assigned to an organisation and SHALL be kept overtime. +The name is a readable description of the organisation and SHOULD be present. The id is a human-readable identifier generated by the instance and used as reference in the event. -A human-readable identifier MUST be represented as an unsigned integer. - -uuid, name and id are represented as a JSON string. uuid, name and id MUST be present. - +A human-readable identifier MUST be represented as an unsigned integer. +uuid, name and id are represented as a JSON string. uuid, name and id MUST be present. -
    +
    Sample Org Object -
    -"Org": { - "id": "2", - "name": "CIRCL", - "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f" +"Org": { + "id": "2", + "name": "CIRCL", + "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f" } -
    +
    -
    -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 event. -The organisation UUID is globally assigned to an organisation and SHALL be kept overtime. - -The name is a readable description of the organisation and SHOULD be present. +
    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 event. +The organisation UUID is globally assigned to an organisation and SHALL be kept overtime. +The name is a readable description of the organisation and SHOULD be present. The id is a human-readable identifier generated by the instance and used as reference in the event. -A human-readable identifier MUST be represented as an unsigned integer. - -uuid, name and id are represented as a JSON string. uuid, name and id MUST be present. - +A human-readable identifier MUST be represented as an unsigned integer. +uuid, name and id are represented as a JSON string. uuid, name and id MUST be present. +
    -
    +
    Attribute Attributes are used to describe the indicators and contextual data of an event. The main information contained in an attribute is made up of a category-type-value triplet, -where the category and type give meaning and context to the value. Through the various category-type combinations a wide range of information can be conveyed. - -A MISP document MUST at least includes category-type-value triplet described in section "Attribute Attributes". - +where the category and type give meaning and context to the value. Through the various category-type combinations a wide range of information can be conveyed. +A MISP document MUST at least includes category-type-value triplet described in section "Attribute Attributes". -
    +
    Sample Attribute Object -
    -"Attribute": { - "id": "346056", - "type": "comment", - "category": "Other", - "to_ids": false, - "uuid": "57f4f6d9-cd20-458b-84fd-109ec0a83869", - "event_id": "3357", - "distribution": "5", - "timestamp": "1475679332", - "comment": "", - "sharing_group_id": "0", - "deleted": false, - "value": "Hello world", - "SharingGroup": [], - "ShadowAttribute": [], - "RelatedAttribute": [], - "first_seen": "2019-06-02T22:14:28.711954+00:00", - "last_seen": null +"Attribute": { + "id": "346056", + "type": "comment", + "category": "Other", + "to_ids": false, + "uuid": "57f4f6d9-cd20-458b-84fd-109ec0a83869", + "event_id": "3357", + "distribution": "5", + "timestamp": "1475679332", + "comment": "", + "sharing_group_id": "0", + "deleted": false, + "value": "Hello world", + "SharingGroup": [], + "ShadowAttribute": [], + "RelatedAttribute": [], + "first_seen": "2019-06-02T22:14:28.711954+00:00", + "last_seen": null } -
    +
    -
    +
    Attribute Attributes -
    -uuid represents the Universally Unique IDentifier (UUID) 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. - -uuid is represented as a JSON string. uuid MUST be present. - +
    uuid +uuid represents the Universally Unique IDentifier (UUID) 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. +uuid is represented as a JSON string. uuid MUST be present.
    -
    -id represents the human-readable identifier associated to the event for a specific MISP instance. A human-readable identifier MUST be -represented as an unsigned integer. - -id is represented as a JSON string. id SHALL be present. - +
    id +id represents the human-readable identifier associated to the event for a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer. +id is represented as a JSON string. id SHALL be present.
    -
    -type represents the means through which an attribute tries to describe the intent of the attribute creator, using a list of pre-defined attribute types. - -type is represented as a JSON string. type MUST be present and it MUST be a valid selection for the chosen category. The list of valid category-type combinations is as follows: - - - - - -link, comment, text, hex, attachment, other, anonymised - - -md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern, yara, sigma, attachment, malware-sample, named pipe, mutex, windows-scheduled-task, windows-service-name, windows-service-displayname, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene, kusto-query, mime-type, anonymised, pgp-public-key, pgp-private-key - - -threat-actor, campaign-name, campaign-id, whois-registrant-phone, whois-registrant-email, whois-registrant-name, whois-registrant-org, whois-registrar, whois-creation-date, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, dns-soa-email, anonymised, email - - -md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512, filename, filename|md5, filename|sha1, filename|sha256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac-address, mac-eui-64, hostname, domain, domain|ip, url, user-agent, regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, vulnerability, cpe, weakness, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, github-repository, other, cortex, anonymised, community-id - - -btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-number, prtn, phone-number, comment, text, other, hex, anonymised - - -text, link, comment, other, hex, anonymised, git-commit-id - - -ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email, email-dst, email-src, eppn, url, uri, user-agent, http-method, AS, snort, pattern-in-file, filename-pattern, stix2-pattern, pattern-in-traffic, attachment, comment, text, x509-fingerprint-md5, x509-fingerprint-sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek, anonymised, community-id, email-subject - - -comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean, anonymised, pgp-public-key, pgp-private-key - - -md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip-src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email, email-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, filename-pattern, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, other, hostname|port, email-dst-display-name, email-src-display-name, email-header, email-reply-to, email-x-mailer, email-mime-boundary, email-thread-index, email-message-id, mobile-application-id, chrome-extension-id, whois-registrant-email, anonymised - - -md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara, sigma, vulnerability, cpe, weakness, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, chrome-extension-id, other, mime-type, anonymised - - -comment, text, other, anonymised - - -filename, regkey, regkey|value, comment, text, other, hex, anonymised - - -first-name, middle-name, last-name, date-of-birth, place-of-birth, gender, passport-number, passport-country, passport-expiration, redress-number, nationality, visa-number, issue-date-of-the-visa, primary-residence, country-of-residence, special-service-request, frequent-flyer-number, travel-details, payment-details, place-port-of-original-embarkation, place-port-of-clearance, place-port-of-onward-foreign-destination, passenger-name-record-locator-number, comment, text, other, phone-number, identity-card-number, anonymised, email, pgp-public-key, pgp-private-key - - -github-username, github-repository, github-organisation, jabber-id, twitter-id, email, email-src, email-dst, eppn, comment, text, other, whois-registrant-email, anonymised, pgp-public-key, pgp-private-key - - -link, text, attachment, comment, other, hex, anonymised - - -target-user, target-email, target-machine, target-org, target-location, target-external, comment, anonymised - - -Attributes are based on the usage within their different communities. Attributes can be extended on a regular basis and this reference document is updated accordingly. - +
    type +type represents the means through which an attribute tries to describe the intent of the attribute creator, using a list of pre-defined attribute types. +type is represented as a JSON string. type MUST be present and it MUST be a valid selection for the chosen category. The list of valid category-type combinations is as follows: + +
    +
    Antivirus detection
    +
    link, comment, text, hex, attachment, other, anonymised
    +
    Artifacts dropped
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern, yara, sigma, attachment, malware-sample, named pipe, mutex, process-state, windows-scheduled-task, windows-service-name, windows-service-displayname, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene, kusto-query, mime-type, anonymised, pgp-public-key, pgp-private-key
    +
    Attribution
    +
    threat-actor, campaign-name, campaign-id, whois-registrant-phone, whois-registrant-email, whois-registrant-name, whois-registrant-org, whois-registrar, whois-creation-date, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, dns-soa-email, anonymised, email
    +
    External analysis
    +
    md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512, filename, filename|md5, filename|sha1, filename|sha256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac-address, mac-eui-64, hostname, domain, domain|ip, url, user-agent, regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, vulnerability, cpe, weakness, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, github-repository, other, cortex, anonymised, community-id
    +
    Financial fraud
    +
    btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-number, prtn, phone-number, comment, text, other, hex, anonymised
    +
    Internal reference
    +
    text, link, comment, other, hex, anonymised, git-commit-id
    +
    Network activity
    +
    ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email, email-dst, email-src, eppn, url, uri, user-agent, http-method, AS, snort, pattern-in-file, filename-pattern, stix2-pattern, pattern-in-traffic, attachment, comment, text, x509-fingerprint-md5, x509-fingerprint-sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek, anonymised, community-id, email-subject, favicon-mmh3, dkim, dkim-signature
    +
    Other
    +
    comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean, anonymised, pgp-public-key, pgp-private-key
    +
    Payload delivery
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip-src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email, email-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, filename-pattern, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, other, hostname|port, email-dst-display-name, email-src-display-name, email-header, email-reply-to, email-x-mailer, email-mime-boundary, email-thread-index, email-message-id, mobile-application-id, chrome-extension-id, whois-registrant-email, anonymised
    +
    Payload installation
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara, sigma, vulnerability, cpe, weakness, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, chrome-extension-id, other, mime-type, anonymised
    +
    Payload type
    +
    comment, text, other, anonymised
    +
    Persistence mechanism
    +
    filename, regkey, regkey|value, comment, text, other, hex, anonymised
    +
    Person
    +
    first-name, middle-name, last-name, full-name, date-of-birth, place-of-birth, gender, passport-number, passport-country, passport-expiration, redress-number, nationality, visa-number, issue-date-of-the-visa, primary-residence, country-of-residence, special-service-request, frequent-flyer-number, travel-details, payment-details, place-port-of-original-embarkation, place-port-of-clearance, place-port-of-onward-foreign-destination, passenger-name-record-locator-number, comment, text, other, phone-number, identity-card-number, anonymised, email, pgp-public-key, pgp-private-key
    +
    Social network
    +
    github-username, github-repository, github-organisation, jabber-id, twitter-id, email, email-src, email-dst, eppn, comment, text, other, whois-registrant-email, anonymised, pgp-public-key, pgp-private-key
    +
    Support Tool
    +
    link, text, attachment, comment, other, hex, anonymised
    +
    Targeting data
    +
    target-user, target-email, target-machine, target-org, target-location, target-external, comment, anonymised
    +
    +Attributes are based on the usage within their different communities. Attributes can be extended on a regular basis and this reference document is updated accordingly.
    -
    -category represents the intent of what the attribute is describing as selected by the attribute creator, using a list of pre-defined attribute categories. - -category is represented as a JSON string. category MUST be present and it MUST be a valid selection for the chosen type. The list of valid category-type combinations is mentioned above. - +
    category +category represents the intent of what the attribute is describing as selected by the attribute creator, using a list of pre-defined attribute categories. +category is represented as a JSON string. category MUST be present and it MUST be a valid selection for the chosen type. The list of valid category-type combinations is mentioned above.
    -
    -to_ids represents whether the attribute is meant to be actionable. Actionable defined attributes that can be used in automated processes as a pattern for detection in Local or Network Intrusion Detection System, log analysis tools or even filtering mechanisms. - -to_ids is represented as a JSON boolean. to_ids MUST be present. - +
    to_ids +to_ids represents whether the attribute is meant to be actionable. Actionable defined attributes that can be used in automated processes as a pattern for detection in Local or Network Intrusion Detection System, log analysis tools or even filtering mechanisms. +to_ids is represented as a JSON boolean. to_ids MUST be present.
    -
    -event_id represents a human-readable identifier referencing the Event object that the attribute belongs to. A human-readable identifier MUST be -represented as an unsigned integer. - -The event_id SHOULD be updated when the event is imported to reflect the newly created event's id on the instance. - -event_id is represented as a JSON string. event_id MUST be present. - +
    event_id +event_id represents a human-readable identifier referencing the Event object that the attribute belongs to. A human-readable identifier MUST be +represented as an unsigned integer. +The event_id SHOULD be updated when the event is imported to reflect the newly created event's id on the instance. +event_id is represented as a JSON string. event_id MUST be present.
    -
    -distribution represents the basic distribution rules of the attribute. The system must adhere to the distribution setting for access control and for dissemination of the attribute. - -distribution is represented by a JSON string. distribution MUST be present and be one of the following options: - - - - - -Your Organisation Only - - -This Community Only - - -Connected Communities - - -All Communities - - -Sharing Group - - -Inherit Event - - +
    distribution +distribution represents the basic distribution rules of the attribute. The system must adhere to the distribution setting for access control and for dissemination of the attribute. +distribution is represented by a JSON string. distribution MUST be present and be one of the following options: + +
    +
    0
    +
    Your Organisation Only
    +
    1
    +
    This Community Only
    +
    2
    +
    Connected Communities
    +
    3
    +
    All Communities
    +
    4
    +
    Sharing Group
    +
    5
    +
    Inherit Event
    +
    -
    -timestamp represents a reference time when the attribute was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. - -timestamp is represented as a JSON string. timestamp MUST be present. - +
    timestamp +timestamp represents a reference time when the attribute was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. +timestamp is represented as a JSON string. timestamp MUST be present.
    -
    -comment is a contextual comment field. - -comment is represented by a JSON string. comment MAY be present. - +
    comment +comment is a contextual comment field. +comment is represented by a JSON string. comment MAY be present.
    -
    -sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the attribute, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer. - -sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0". - +
    sharing_group_id +sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the attribute, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer. +sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0".
    -
    -deleted represents a setting that allows attributes to be revoked. Revoked attributes are not actionable and exist merely to inform other instances of a revocation. - -deleted is represented by a JSON boolean. deleted MUST be present. - +
    deleted +deleted represents a setting that allows attributes to be revoked. Revoked attributes are not actionable and exist merely to inform other instances of a revocation. +deleted is represented by a JSON boolean. deleted MUST be present.
    -
    +
    data data contains the base64 encoded contents of an attachment or a malware sample. For malware samples, -the sample MUST be encrypted using a password protected zip archive, with the password being "infected". - -data is represented by a JSON string in base64 encoding. data MUST be set for attributes of type malware-sample and attachment. - +the sample MUST be encrypted using a password protected zip archive, with the password being "infected". +data is represented by a JSON string in base64 encoding. data MUST be set for attributes of type malware-sample and attachment.
    -
    -RelatedAttribute is an array of attributes correlating with the current attribute. Each element in the array represents an JSON object which contains an Attribute dictionnary with the external attributes who correlate. Each Attribute MUST include the id, org_id, info and a value. Only the correlations found on the local instance are shown in RelatedAttribute. - -RelatedAttribute MAY be present. - +
    RelatedAttribute +RelatedAttribute is an array of attributes correlating with the current attribute. Each element in the array represents an JSON object which contains an Attribute dictionnary with the external attributes who correlate. Each Attribute MUST include the id, org_id, info and a value. Only the correlations found on the local instance are shown in RelatedAttribute. +RelatedAttribute MAY be present.
    -
    +
    ShadowAttribute ShadowAttribute is an array of shadow attributes that serve as proposals by third parties to alter the containing attribute. The structure of a ShadowAttribute is similar to that of an Attribute, -which can be accepted or discarded by the event creator. If accepted, the original attribute containing the shadow attribute is removed and the shadow attribute is converted into an attribute. - -Each shadow attribute that references an attribute MUST contain the containing attribute's ID in the old_id field and the event's ID in the event_id field. - +which can be accepted or discarded by the event creator. If accepted, the original attribute containing the shadow attribute is removed and the shadow attribute is converted into an attribute. +Each shadow attribute that references an attribute MUST contain the containing attribute's ID in the old_id field and the event's ID in the event_id field.
    -
    -value represents the payload of an attribute. The format of the value is dependent on the type of the attribute. - -value is represented by a JSON string. value MUST be present. - +
    value +value represents the payload of an attribute. The format of the value is dependent on the type of the attribute. +value is represented by a JSON string. value MUST be present.
    -
    -first_seen represents a reference time when the attribute was first seen. first_seen is expressed as an ISO 8601 datetime up to the micro-second with time zone support. - -first_seen is represented as a JSON string. first_seen MAY be present. - +
    first_seen +first_seen represents a reference time when the attribute was first seen. first_seen is expressed as an ISO 8601 datetime up to the micro-second with time zone support. +first_seen is represented as a JSON string. first_seen MAY be present.
    -
    -last_seen represents a reference time when the attribute was last seen. last_seen is expressed as an ISO 8601 datetime up to the micro-second with time zone support. - -last_seen is represented as a JSON string. last_seen MAY be present. - +
    last_seen +last_seen represents a reference time when the attribute was last seen. last_seen is expressed as an ISO 8601 datetime up to the micro-second with time zone support. +last_seen is represented as a JSON string. last_seen MAY be present.
    -
    -ShadowAttributes are 3rd party created attributes that either propose to add new information to an event or modify existing information. They are not meant to be actionable until the event creator accepts them - at which point they will be converted into attributes or modify an existing attribute. - -They are similar in structure to Attributes but additionally carry a reference to the creator of the ShadowAttribute as well as a revocation flag. - +
    ShadowAttribute +ShadowAttributes are 3rd party created attributes that either propose to add new information to an event or modify existing information. They are not meant to be actionable until the event creator accepts them - at which point they will be converted into attributes or modify an existing attribute. +They are similar in structure to Attributes but additionally carry a reference to the creator of the ShadowAttribute as well as a revocation flag. -
    +
    Sample Attribute Object -
    -"ShadowAttribute": { - "id": "8", - "type": "ip-src", - "category": "Network activity", - "to_ids": false, - "uuid": "57d475f1-da78-4569-89de-1458c0a83869", - "event_uuid": "57d475e6-41c4-41ca-b450-145ec0a83869", - "event_id": "9", - "old_id": "319", - "comment": "", - "org_id": "1", - "proposal_to_delete": false, - "value": "5.5.5.5", - "deleted": false, - "Org": { - "id": "1", - "name": "MISP", - "uuid": "568cce5a-0c80-412b-8fdf-1ffac0a83869" +"ShadowAttribute": { + "id": "8", + "type": "ip-src", + "category": "Network activity", + "to_ids": false, + "uuid": "57d475f1-da78-4569-89de-1458c0a83869", + "event_uuid": "57d475e6-41c4-41ca-b450-145ec0a83869", + "event_id": "9", + "old_id": "319", + "comment": "", + "org_id": "1", + "proposal_to_delete": false, + "value": "5.5.5.5", + "deleted": false, + "Org": { + "id": "1", + "name": "MISP", + "uuid": "568cce5a-0c80-412b-8fdf-1ffac0a83869" }, - "first_seen": "2019-06-02T22:14:28.711954+00:00", - "last_seen": null + "first_seen": "2019-06-02T22:14:28.711954+00:00", + "last_seen": null } -
    +
    -
    +
    ShadowAttribute Attributes -
    -uuid represents the Universally Unique IDentifier (UUID) 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. - -uuid is represented as a JSON string. uuid MUST be present. - +
    uuid +uuid represents the Universally Unique IDentifier (UUID) 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. +uuid is represented as a JSON string. uuid MUST be present.
    -
    -id represents the human-readable identifier associated to the event for a specific MISP instance. human-readable identifier MUST be represented as an unsigned integer. -id is represented as a JSON string. id SHALL be present. - +
    id +id represents the human-readable identifier associated to the event for a specific MISP instance. human-readable identifier MUST be represented as an unsigned integer. +id is represented as a JSON string. id SHALL be present.
    -
    -type represents the means through which an attribute tries to describe the intent of the attribute creator, using a list of pre-defined attribute types. - -type is represented as a JSON string. type MUST be present and it MUST be a valid selection for the chosen category. The list of valid category-type combinations is as follows: - - - - - -link, comment, text, hex, attachment, other, anonymised - - -md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern, yara, sigma, attachment, malware-sample, named pipe, mutex, windows-scheduled-task, windows-service-name, windows-service-displayname, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene, kusto-query, mime-type, anonymised, pgp-public-key, pgp-private-key - - -threat-actor, campaign-name, campaign-id, whois-registrant-phone, whois-registrant-email, whois-registrant-name, whois-registrant-org, whois-registrar, whois-creation-date, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, dns-soa-email, anonymised, email - - -md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512, filename, filename|md5, filename|sha1, filename|sha256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac-address, mac-eui-64, hostname, domain, domain|ip, url, user-agent, regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, vulnerability, cpe, weakness, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, github-repository, other, cortex, anonymised, community-id - - -btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-number, prtn, phone-number, comment, text, other, hex, anonymised - - -text, link, comment, other, hex, anonymised, git-commit-id - - -ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email, email-dst, email-src, eppn, url, uri, user-agent, http-method, AS, snort, pattern-in-file, filename-pattern, stix2-pattern, pattern-in-traffic, attachment, comment, text, x509-fingerprint-md5, x509-fingerprint-sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek, anonymised, community-id, email-subject - - -comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean, anonymised, pgp-public-key, pgp-private-key - - -md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip-src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email, email-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, filename-pattern, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, hassh-md5, hasshserver-md5, other, hostname|port, email-dst-display-name, email-src-display-name, email-header, email-reply-to, email-x-mailer, email-mime-boundary, email-thread-index, email-message-id, mobile-application-id, chrome-extension-id, whois-registrant-email, anonymised - - -md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara, sigma, vulnerability, cpe, weakness, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, chrome-extension-id, other, mime-type, anonymised - - -comment, text, other, anonymised - - -filename, regkey, regkey|value, comment, text, other, hex, anonymised - - -first-name, middle-name, last-name, date-of-birth, place-of-birth, gender, passport-number, passport-country, passport-expiration, redress-number, nationality, visa-number, issue-date-of-the-visa, primary-residence, country-of-residence, special-service-request, frequent-flyer-number, travel-details, payment-details, place-port-of-original-embarkation, place-port-of-clearance, place-port-of-onward-foreign-destination, passenger-name-record-locator-number, comment, text, other, phone-number, identity-card-number, anonymised, email, pgp-public-key, pgp-private-key - - -github-username, github-repository, github-organisation, jabber-id, twitter-id, email, email-src, email-dst, eppn, comment, text, other, whois-registrant-email, anonymised, pgp-public-key, pgp-private-key - - -link, text, attachment, comment, other, hex, anonymised - - -target-user, target-email, target-machine, target-org, target-location, target-external, comment, anonymised - - -Attributes are based on the usage within their different communities. Attributes can be extended on a regular basis and this reference document is updated accordingly. - +
    type +type represents the means through which an attribute tries to describe the intent of the attribute creator, using a list of pre-defined attribute types. +type is represented as a JSON string. type MUST be present and it MUST be a valid selection for the chosen category. The list of valid category-type combinations is as follows: + +
    +
    Antivirus detection
    +
    link, comment, text, hex, attachment, other, anonymised
    +
    Artifacts dropped
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, filename-pattern, pdb, stix2-pattern, yara, sigma, attachment, malware-sample, named pipe, mutex, process-state, windows-scheduled-task, windows-service-name, windows-service-displayname, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, cookie, gene, kusto-query, mime-type, anonymised, pgp-public-key, pgp-private-key
    +
    Attribution
    +
    threat-actor, campaign-name, campaign-id, whois-registrant-phone, whois-registrant-email, whois-registrant-name, whois-registrant-org, whois-registrar, whois-creation-date, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, other, dns-soa-email, anonymised, email
    +
    External analysis
    +
    md5, sha1, sha256, sha3-224, sha3-256, sha3-384, sha3-512, filename, filename|md5, filename|sha1, filename|sha256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, ip-src, ip-dst, ip-dst|port, ip-src|port, mac-address, mac-eui-64, hostname, domain, domain|ip, url, user-agent, regkey, regkey|value, AS, snort, bro, zeek, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, vulnerability, cpe, weakness, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, github-repository, other, cortex, anonymised, community-id
    +
    Financial fraud
    +
    btc, dash, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-number, prtn, phone-number, comment, text, other, hex, anonymised
    +
    Internal reference
    +
    text, link, comment, other, hex, anonymised, git-commit-id
    +
    Network activity
    +
    ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email, email-dst, email-src, eppn, url, uri, user-agent, http-method, AS, snort, pattern-in-file, filename-pattern, stix2-pattern, pattern-in-traffic, attachment, comment, text, x509-fingerprint-md5, x509-fingerprint-sha1, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, other, hex, cookie, hostname|port, bro, zeek, anonymised, community-id, email-subject, favicon-mmh3, dkim, dkim-signature
    +
    Other
    +
    comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean, anonymised, pgp-public-key, pgp-private-key
    +
    Payload delivery
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, mac-address, mac-eui-64, ip-src, ip-dst, ip-dst|port, ip-src|port, hostname, domain, email, email-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, filename-pattern, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, cpe, weakness, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, ja3-fingerprint-md5, jarm-fingerprint, hassh-md5, hasshserver-md5, other, hostname|port, email-dst-display-name, email-src-display-name, email-header, email-reply-to, email-x-mailer, email-mime-boundary, email-thread-index, email-message-id, mobile-application-id, chrome-extension-id, whois-registrant-email, anonymised
    +
    Payload installation
    +
    md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, sha3-224, sha3-256, sha3-384, sha3-512, ssdeep, imphash, telfhash, impfuzzy, authentihash, vhash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|sha3-224, filename|sha3-256, filename|sha3-384, filename|sha3-512, filename|authentihash, filename|vhash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, filename-pattern, stix2-pattern, yara, sigma, vulnerability, cpe, weakness, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, chrome-extension-id, other, mime-type, anonymised
    +
    Payload type
    +
    comment, text, other, anonymised
    +
    Persistence mechanism
    +
    filename, regkey, regkey|value, comment, text, other, hex, anonymised
    +
    Person
    +
    first-name, middle-name, last-name, full-name, date-of-birth, place-of-birth, gender, passport-number, passport-country, passport-expiration, redress-number, nationality, visa-number, issue-date-of-the-visa, primary-residence, country-of-residence, special-service-request, frequent-flyer-number, travel-details, payment-details, place-port-of-original-embarkation, place-port-of-clearance, place-port-of-onward-foreign-destination, passenger-name-record-locator-number, comment, text, other, phone-number, identity-card-number, anonymised, email, pgp-public-key, pgp-private-key
    +
    Social network
    +
    github-username, github-repository, github-organisation, jabber-id, twitter-id, email, email-src, email-dst, eppn, comment, text, other, whois-registrant-email, anonymised, pgp-public-key, pgp-private-key
    +
    Support Tool
    +
    link, text, attachment, comment, other, hex, anonymised
    +
    Targeting data
    +
    target-user, target-email, target-machine, target-org, target-location, target-external, comment, anonymised
    +
    +Attributes are based on the usage within their different communities. Attributes can be extended on a regular basis and this reference document is updated accordingly.
    -
    -category represents the intent of what the attribute is describing as selected by the attribute creator, using a list of pre-defined attribute categories. - -category is represented as a JSON string. category MUST be present and it MUST be a valid selection for the chosen type. The list of valid category-type combinations is mentioned above. - +
    category +category represents the intent of what the attribute is describing as selected by the attribute creator, using a list of pre-defined attribute categories. +category is represented as a JSON string. category MUST be present and it MUST be a valid selection for the chosen type. The list of valid category-type combinations is mentioned above.
    -
    -to_ids represents whether the Attribute to be created if the ShadowAttribute is accepted is meant to be actionable. Actionable defined attributes that can be used in automated processes as a pattern for detection in Local or Network Intrusion Detection System, log analysis tools or even filtering mechanisms. - -to_ids is represented as a JSON boolean. to_ids MUST be present. - +
    to_ids +to_ids represents whether the Attribute to be created if the ShadowAttribute is accepted is meant to be actionable. Actionable defined attributes that can be used in automated processes as a pattern for detection in Local or Network Intrusion Detection System, log analysis tools or even filtering mechanisms. +to_ids is represented as a JSON boolean. to_ids MUST be present.
    -
    -event_id represents a human-readable identifier referencing the Event object that the ShadowAttribute belongs to. - -The event_id SHOULD be updated when the event is imported to reflect the newly created event's id on the instance. - -event_id is represented as a JSON string. event_id MUST be present. - +
    event_id +event_id represents a human-readable identifier referencing the Event object that the ShadowAttribute belongs to. +The event_id SHOULD be updated when the event is imported to reflect the newly created event's id on the instance. +event_id is represented as a JSON string. event_id MUST be present.
    -
    -old_id represents a human-readable identifier referencing the Attribute object that the ShadowAttribute belongs to. A ShadowAttribute can this way target an existing Attribute, implying that it is a proposal to modify an existing Attribute, or alternatively it can be a proposal to create a new Attribute for the containing Event. - -The old_id SHOULD be updated when the event is imported to reflect the newly created Attribute's id on the instance. Alternatively, if the ShadowAttribute proposes the creation of a new Attribute, it should be set to 0. - -old_id is represented as a JSON string. old_id MUST be present. - +
    old_id +old_id represents a human-readable identifier referencing the Attribute object that the ShadowAttribute belongs to. A ShadowAttribute can this way target an existing Attribute, implying that it is a proposal to modify an existing Attribute, or alternatively it can be a proposal to create a new Attribute for the containing Event. +The old_id SHOULD be updated when the event is imported to reflect the newly created Attribute's id on the instance. Alternatively, if the ShadowAttribute proposes the creation of a new Attribute, it should be set to 0. +old_id is represented as a JSON string. old_id MUST be present.
    -
    -timestamp represents a reference time when the attribute was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. - -timestamp is represented as a JSON string. timestamp MUST be present. - +
    timestamp +timestamp represents a reference time when the attribute was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. +timestamp is represented as a JSON string. timestamp MUST be present.
    -
    -comment is a contextual comment field. - -comment is represented by a JSON string. comment MAY be present. - +
    comment +comment is a contextual comment field. +comment is represented by a JSON string. comment MAY be present.
    -
    -org_id represents a human-readable identifier referencing the proposal creator's Organisation object. A human-readable identifier MUST be represented as an unsigned integer. - -Whilst attributes can only be created by the event creator organisation, shadow attributes can be created by third parties. org_id tracks the creator organisation. - -org_id is represented by a JSON string and MUST be present. - +
    org_id +org_id represents a human-readable identifier referencing the proposal creator's Organisation object. A human-readable identifier MUST be represented as an unsigned integer. +Whilst attributes can only be created by the event creator organisation, shadow attributes can be created by third parties. org_id tracks the creator organisation. +org_id is represented by a JSON string and MUST be present.
    -
    -proposal_to_delete is a boolean flag that sets whether the shadow attribute proposes to alter an attribute, or whether it proposes to remove it completely. - -Accepting a shadow attribute with this flag set will remove the target attribute. - -proposal_to_delete is a JSON boolean and it MUST be present. If proposal_to_delete is set to true, old_id MUST NOT be 0. - +
    proposal_to_delete +proposal_to_delete is a boolean flag that sets whether the shadow attribute proposes to alter an attribute, or whether it proposes to remove it completely. +Accepting a shadow attribute with this flag set will remove the target attribute. +proposal_to_delete is a JSON boolean and it MUST be present. If proposal_to_delete is set to true, old_id MUST NOT be 0.
    -
    -deleted represents a setting that allows shadow attributes to be revoked. Revoked shadow attributes only serve to inform other instances that the shadow attribute is no longer active. - -deleted is represented by a JSON boolean. deleted SHOULD be present. - +
    deleted +deleted represents a setting that allows shadow attributes to be revoked. Revoked shadow attributes only serve to inform other instances that the shadow attribute is no longer active. +deleted is represented by a JSON boolean. deleted SHOULD be present.
    -
    +
    data data contains the base64 encoded contents of an attachment or a malware sample. For malware samples, -the sample MUST be encrypted using a password protected zip archive, with the password being "infected". - -data is represented by a JSON string in base64 encoding. data MUST be set for shadow attributes of type malware-sample and attachment. - +the sample MUST be encrypted using a password protected zip archive, with the password being "infected". +data is represented by a JSON string in base64 encoding. data MUST be set for shadow attributes of type malware-sample and attachment.
    -
    -first_seen represents a reference time when the attribute was first seen. first_seen as an ISO 8601 datetime up to the micro-second with time zone support. - -first_seen is represented as a JSON string. first_seen MAY be present. - +
    first_seen +first_seen represents a reference time when the attribute was first seen. first_seen as an ISO 8601 datetime up to the micro-second with time zone support. +first_seen is represented as a JSON string. first_seen MAY be present.
    -
    -last_seen represents a reference time when the attribute was last seen. last_seen as an ISO 8601 datetime up to the micro-second with time zone support. - -last_seen is represented as a JSON string. last_seen MAY be present. - +
    last_seen +last_seen represents a reference time when the attribute was last seen. last_seen as an ISO 8601 datetime up to the micro-second with time zone support. +last_seen is represented as a JSON string. last_seen MAY be present. +
    + +
    value +value represents the payload of an attribute. The format of the value is dependent on the type of the attribute. +value is represented by a JSON string. value MUST be present.
    -
    -An Org object is composed of an uuid, name and id. - -The uuid represents the Universally Unique IDentifier (UUID) of the organization. -The organization UUID is globally assigned to an organization and SHALL be kept overtime. - -The name is a readable description of the organization and SHOULD be present. +
    ShadowAttribute Objects + +
    Org +An Org object is composed of an uuid, name and id. +The uuid represents the Universally Unique IDentifier (UUID) of the organization. +The organization UUID is globally assigned to an organization and SHALL be kept overtime. +The name is a readable description of the organization and SHOULD be present. The id is a human-readable identifier generated by the instance and used as reference in the event. -A human-readable identifier MUST be represented as an unsigned integer. - -uuid, name and id are represented as a JSON string. uuid, name and id MUST be present. - +A human-readable identifier MUST be represented as an unsigned integer. +uuid, name and id are represented as a JSON string. uuid, name and id MUST be present. -
    +
    Sample Org Object -
    -"Org": { - "id": "2", - "name": "CIRCL", - "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f" +"Org": { + "id": "2", + "name": "CIRCL", + "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f" } -
    +
    - -
    -value represents the payload of an attribute. The format of the value is dependent on the type of the attribute. - -value is represented by a JSON string. value MUST be present. -
    -
    +
    Object Objects serve as a contextual bond between a list of attributes within an event. Their main purpose is to describe more complex structures than can be described by a single attribute -Each object is created using an Object Template and carries the meta-data of the template used for its creation within. Objects belong to a meta-category and are defined by a name. - -The schema used is described by the template_uuid and template_version fields. - -A MISP document containing an Object MUST contain a name, a meta-category, a description, a template_uuid and a template_version as described in the "Object Attributes" section. - +Each object is created using an Object Template and carries the meta-data of the template used for its creation within. Objects belong to a meta-category and are defined by a name. +The schema used is described by the template_uuid and template_version fields. +A MISP document containing an Object MUST contain a name, a meta-category, a description, a template_uuid and a template_version as described in the "Object Attributes" section. -
    +
    Sample Object -
    -"Object": { - "id": "588", - "name": "file", - "meta-category": "file", - "description": "File object describing a file with meta-information", - "template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215", - "template_version": "3", - "event_id": "56", - "uuid": "398b0094-0384-4c48-9bf0-22b3dff9c4d3", - "timestamp": "1505747965", - "distribution": "5", - "sharing_group_id": "0", - "comment": "", - "deleted": false, - "ObjectReference": [], - "Attribute": [ +"Object": { + "id": "588", + "name": "file", + "meta-category": "file", + "description": "File object describing a file with meta-information", + "template_uuid": "688c46fb-5edb-40a3-8273-1af7923e2215", + "template_version": "3", + "event_id": "56", + "uuid": "398b0094-0384-4c48-9bf0-22b3dff9c4d3", + "timestamp": "1505747965", + "distribution": "5", + "sharing_group_id": "0", + "comment": "", + "deleted": false, + "ObjectReference": [], + "Attribute": [ { - "id": "7822", - "type": "filename", - "category": "Payload delivery", - "to_ids": true, - "uuid": "59bfe3fb-bde0-4dfe-b5b1-2b10a07724d1", - "event_id": "56", - "distribution": "0", - "timestamp": "1505747963", - "comment": "", - "sharing_group_id": "0", - "deleted": false, - "disable_correlation": false, - "object_id": "588", - "object_relation": "filename", - "value": "StarCraft.exe", - "ShadowAttribute": [], - "first_seen": null, - "last_seen": null + "id": "7822", + "type": "filename", + "category": "Payload delivery", + "to_ids": true, + "uuid": "59bfe3fb-bde0-4dfe-b5b1-2b10a07724d1", + "event_id": "56", + "distribution": "0", + "timestamp": "1505747963", + "comment": "", + "sharing_group_id": "0", + "deleted": false, + "disable_correlation": false, + "object_id": "588", + "object_relation": "filename", + "value": "StarCraft.exe", + "ShadowAttribute": [], + "first_seen": null, + "last_seen": null }, - "first_seen": "2019-06-02T22:14:28.711954+00:00", - "last_seen": null + "first_seen": "2019-06-02T22:14:28.711954+00:00", + "last_seen": null ] } -
    +
    -
    +
    Object Attributes -
    -uuid represents the Universally Unique IDentifier (UUID) of the object. The uuid MUST be preserved -for any updates or transfer of the same object. UUID version 4 is RECOMMENDED when assigning it to a new object. - +
    uuid +uuid represents the Universally Unique IDentifier (UUID) of the object. The uuid MUST be preserved +for any updates or transfer of the same object. UUID version 4 is RECOMMENDED when assigning it to a new object.
    -
    -id represents the human-readable identifier associated to the object for a specific MISP instance. A human-readable identifier MUST be -represented as an unsigned integer. - -id is represented as a JSON string. id SHALL be present. - +
    id +id represents the human-readable identifier associated to the object for a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer. +id is represented as a JSON string. id SHALL be present.
    -
    -name represents the human-readable name of the object describing the intent of the object package. - -name is represented as a JSON string. name MUST be present - +
    name +name represents the human-readable name of the object describing the intent of the object package. +name is represented as a JSON string. name MUST be present.
    -
    +
    meta-category meta-category represents the sub-category of objects that the given object belongs to. meta-categories are not -tied to a fixed list of options but can be created on the fly. - -meta-category is represented as a JSON string. meta-category MUST be present - +tied to a fixed list of options but can be created on the fly. +meta-category is represented as a JSON string. meta-category MUST be present.
    -
    -description is a human-readable description of the given object type, as derived from the template used for creation. - -description is represented as a JSON string. id SHALL be present. - +
    description +description is a human-readable description of the given object type, as derived from the template used for creation. +description is represented as a JSON string. description SHALL be present.
    -
    -uuid represents the Universally Unique IDentifier (UUID) of the template used to create the object. The uuid MUST be preserved -to preserve the object's association with the correct template used for creation. UUID version 4 is RECOMMENDED when assigning it to a new object. - +
    template_uuid +template_uuid represents the Universally Unique IDentifier (UUID) of the template used to create the object. The uuid MUST be preserved +to preserve the object's association with the correct template used for creation. UUID version 4 is RECOMMENDED when assigning it to a new object. +template_uuid is represented as a JSON string. template_uuid MUST be present.
    -
    +
    template_version template_version represents a numeric incrementing version of the template used to create the object. It is used to associate the object to the -correct version of the template and together with the template_uuid forms an association to the correct template type and version. - -version is represented as a JSON string. version MUST be present. - +correct version of the template and together with the template_uuid forms an association to the correct template type and version. +template_version is represented as a JSON string. template_version MUST be present.
    -
    -event_id represents the human-readable identifier of the event that the object belongs to on a specific MISP instance. A human-readable identifier MUST be -represented as an unsigned integer. - -event_id is represented as a JSON string. event_id SHALL be present. - +
    event_id +event_id represents the human-readable identifier of the event that the object belongs to on a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer. +event_id is represented as a JSON string. event_id SHALL be present.
    -
    -timestamp represents a reference time when the object was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. - -timestamp is represented as a JSON string. timestamp MUST be present. - +
    timestamp +timestamp represents a reference time when the object was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. +timestamp is represented as a JSON string. timestamp MUST be present.
    -
    -distribution represents the basic distribution rules of the object. The system must adhere to the distribution setting for access control and for dissemination of the object. - -distribution is represented by a JSON string. distribution MUST be present and be one of the following options: - - - - - -Your Organisation Only - - -This Community Only - - -Connected Communities - - -All Communities - - -Sharing Group - - +
    distribution +distribution represents the basic distribution rules of the object. The system must adhere to the distribution setting for access control and for dissemination of the object. +distribution is represented by a JSON string. distribution MUST be present and be one of the following options: + +
    +
    0
    +
    Your Organisation Only
    +
    1
    +
    This Community Only
    +
    2
    +
    Connected Communities
    +
    3
    +
    All Communities
    +
    4
    +
    Sharing Group
    +
    -
    -sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the object, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer. - -sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0". - +
    sharing_group_id +sharing_group_id represents a human-readable identifier referencing a Sharing Group object that defines the distribution of the object, if distribution level "4" is set. A human-readable identifier MUST be represented as an unsigned integer. +sharing_group_id is represented by a JSON string and SHOULD be present. If a distribution level other than "4" is chosen the sharing_group_id MUST be set to "0".
    -
    -comment is a contextual comment field. - -comment is represented by a JSON string. comment MAY be present. - +
    comment +comment is a contextual comment field. +comment is represented by a JSON string. comment MAY be present.
    -
    -deleted represents a setting that allows attributes to be revoked. Revoked attributes are not actionable and exist merely to inform other instances of a revocation. - -deleted is represented by a JSON boolean. deleted MUST be present. - +
    deleted +deleted represents a setting that allows objects to be revoked. Revoked objects are not actionable and exist merely to inform other instances of a revocation. +deleted is represented by a JSON boolean. deleted MUST be present.
    -
    -Attribute is an array of attributes that describe the object with data. - -Each attribute in an object MUST contain the parent event's ID in the event_id field and the parent object's ID in the object_id field. - +
    Attribute +Attribute is an array of attributes that describe the object with data. +Each attribute in an object MUST contain the parent event's ID in the event_id field and the parent object's ID in the object_id field.
    -
    -first_seen represents a reference time when the object was first seen. first_seen as an ISO 8601 datetime up to the micro-second with time zone support. - -first_seen is represented as a JSON string. first_seen MAY be present. - +
    first_seen +first_seen represents a reference time when the object was first seen. first_seen as an ISO 8601 datetime up to the micro-second with time zone support. +first_seen is represented as a JSON string. first_seen MAY be present.
    -
    -last_seen represents a reference time when the object was last seen. last_seen as an ISO 8601 datetime up to the micro-second with time zone support. - -last_seen is represented as a JSON string. last_seen MAY be present. - +
    last_seen +last_seen represents a reference time when the object was last seen. last_seen as an ISO 8601 datetime up to the micro-second with time zone support. +last_seen is represented as a JSON string. last_seen MAY be present.
    -
    -Object References serve as a logical link between an Object and another referenced Object or Attribute. The relationship is categorised by an enumerated value from a fixed vocabulary. - -The relationship_type is recommended to be taken from the MISP object relationship list [] is RECOMMENDED to ensure a coherent naming of the tags - -All Object References MUST contain an object_uuid, a referenced_uuid and a relationship type. - +
    Object References +Object References serve as a logical link between an Object and another referenced Object or Attribute. The relationship is categorised by an enumerated value from a fixed vocabulary. +The relationship_type is recommended to be taken from the MISP object relationship list [] is RECOMMENDED to ensure a coherent naming of the tags +All Object References MUST contain an object_uuid, a referenced_uuid and a relationship type. -
    +
    Sample ObjectReference object -
    -"ObjectReference": { - "id": "195", - "uuid": "59c21a2c-c0ac-4083-93b3-363da07724d1", - "timestamp": "1505892908", - "object_id": "591", - "event_id": "113", - "referenced_id": "590", - "referenced_type": "1", - "relationship_type": "derived-from", - "comment": "", - "deleted": false, - "object_uuid": "59c1134d-8a40-4c14-ad94-0f7ba07724d1", - "referenced_uuid": "59c1133c-9adc-4d06-a34b-0f7ca07724d1", +"ObjectReference": { + "id": "195", + "uuid": "59c21a2c-c0ac-4083-93b3-363da07724d1", + "timestamp": "1505892908", + "object_id": "591", + "event_id": "113", + "referenced_id": "590", + "referenced_type": "1", + "relationship_type": "derived-from", + "comment": "", + "deleted": false, + "object_uuid": "59c1134d-8a40-4c14-ad94-0f7ba07724d1", + "referenced_uuid": "59c1133c-9adc-4d06-a34b-0f7ca07724d1", } -
    +
    -
    +
    ObjectReference Attributes -
    -uuid represents the Universally Unique IDentifier (UUID) of the object reference. The uuid MUST be preserved -for any updates or transfer of the same object reference. UUID version 4 is RECOMMENDED when assigning it to a new object reference. - +
    uuid +uuid represents the Universally Unique IDentifier (UUID) of the object reference. The uuid MUST be preserved +for any updates or transfer of the same object reference. UUID version 4 is RECOMMENDED when assigning it to a new object reference.
    -
    -id represents the human-readable identifier associated to the object reference for a specific MISP instance. - -id is represented as a JSON string. id SHALL be present. - +
    id +id represents the human-readable identifier associated to the object reference for a specific MISP instance. +id is represented as a JSON string. id SHALL be present.
    -
    -timestamp represents a reference time when the object was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. - -timestamp is represented as a JSON string. timestamp MUST be present. - +
    timestamp +timestamp represents a reference time when the object was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. +timestamp is represented as a JSON string. timestamp MUST be present.
    -
    -object_id represents the human-readable identifier of the object that the object reference belongs to on a specific MISP instance. A human-readable identifier MUST be -represented as an unsigned integer. - -event_id is represented as a JSON string. event_id SHALL be present. - +
    object_id +object_id represents the human-readable identifier of the object that the object reference belongs to on a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer. +object_id is represented as a JSON string. object_id SHALL be present.
    -
    -event_id represents the human-readable identifier of the event that the object reference belongs to on a specific MISP instance. A human-readable identifier MUST be -represented as an unsigned integer. - -event_id is represented as a JSON string. event_id SHALL be present. - +
    event_id +event_id represents the human-readable identifier of the event that the object reference belongs to on a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer. +event_id is represented as a JSON string. event_id SHALL be present.
    -
    -referenced_id represents the human-readable identifier of the object or attribute that the parent object of the object reference points to on a specific MISP instance. - -referenced_id is represented as a JSON string. referenced_id MAY be present. - +
    referenced_id +referenced_id represents the human-readable identifier of the object or attribute that the parent object of the object reference points to on a specific MISP instance. +referenced_id is represented as a JSON string. referenced_id MAY be present.
    -
    -referenced_type represents the numeric value describing what the object reference points to, "0" representing an attribute and "1" representing an object - -referenced_type is represented as a JSON string. referenced_type MAY be present. - +
    referenced_type +referenced_type represents the numeric value describing what the object reference points to, "0" representing an attribute and "1" representing an object +referenced_type is represented as a JSON string. referenced_type MAY be present.
    -
    -relationship_type represents the human-readable context of the relationship between an object and another object or attribute as described by the object_reference. - -referenced_type is represented as a JSON string. relationship_type MUST be present. - +
    relationship_type +relationship_type represents the human-readable context of the relationship between an object and another object or attribute as described by the object_reference. +relationship_type is represented as a JSON string. relationship_type MUST be present.
    -
    -comment is a contextual comment field. - -comment is represented by a JSON string. comment MAY be present. - +
    comment +comment is a contextual comment field. +comment is represented by a JSON string. comment MAY be present.
    -
    -deleted represents a setting that allows object references to be revoked. Revoked object references are not actionable and exist merely to inform other instances of a revocation. - -deleted is represented by a JSON boolean. deleted MUST be present. - +
    deleted +deleted represents a setting that allows object references to be revoked. Revoked object references are not actionable and exist merely to inform other instances of a revocation. +deleted is represented by a JSON boolean. deleted MUST be present.
    -
    -object_uuid represents the Universally Unique IDentifier (UUID) of the object that the given object reference belongs to. The object_uuid MUST be preserved -to preserve the object reference's association with the object. - +
    object_uuid +object_uuid represents the Universally Unique IDentifier (UUID) of the object that the given object reference belongs to. The object_uuid MUST be preserved +to preserve the object reference's association with the object.
    -
    -referenced_uuid represents the Universally Unique IDentifier (UUID) of the object or attribute that is being referenced by the object reference. The referenced_uuid MUST be preserved -to preserve the object reference's association with the object or attribute. - +
    referenced_uuid +referenced_uuid represents the Universally Unique IDentifier (UUID) of the object or attribute that is being referenced by the object reference. The referenced_uuid MUST be preserved +to preserve the object reference's association with the object or attribute.
    -
    +
    EventReport EventReport are used to complement an event with one or more report in Markdown format. The EventReport contains unstructured information which can be linked to Attributes, Objects, Tags or Galaxy with -an extension to the Markdown marking language. - +an extension to the Markdown marking language. -
    -id represents the human-readable identifier associated to the EventReport for a specific MISP instance. A human-readable identifier MUST be -represented as an unsigned integer. - -id is represented as a JSON string. id SHALL be present. - +
    id +id represents the human-readable identifier associated to the EventReport for a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer. +id is represented as a JSON string. id SHALL be present.
    -
    -uuid represents the Universally Unique IDentifier (UUID) of the EventReport. The uuid MUST be preserved for any updates or transfer of the same EventReport. UUID version 4 is RECOMMENDED when assigning it to a new EventReport. - -uuid is represented as a JSON string. uuid MUST be present. - +
    UUID +uuid represents the Universally Unique IDentifier (UUID) of the EventReport. The uuid MUST be preserved for any updates or transfer of the same EventReport. UUID version 4 is RECOMMENDED when assigning it to a new EventReport. +uuid is represented as a JSON string. uuid MUST be present.
    -
    -event_id represents the human-readable identifier associating the EventReport to an event on a specific MISP instance. A human-readable identifier MUST be -represented as an unsigned integer. - -event_id is represented as a JSON string. event_id MUST be present. - +
    event_id +event_id represents the human-readable identifier associating the EventReport to an event on a specific MISP instance. A human-readable identifier MUST be +represented as an unsigned integer. +event_id is represented as a JSON string. event_id MUST be present.
    -
    +
    name name represents the information field of the EventReport. name is a free-text value to provide a human-readable summary -of the report. name SHOULD NOT be bigger than 256 characters and SHOULD NOT include new-lines. - -name is represented as a JSON string. name MUST be present. - +of the report. name SHOULD NOT be bigger than 256 characters and SHOULD NOT include new-lines. +name is represented as a JSON string. name MUST be present.
    -
    -content includes the raw EventReport in Markdown format with or without the specific MISP Markdown markup extension. - -The markdown extension for MISP is composed with a symbol as prefix then between square bracket the scope (attribute, object, tag or galaxymatrix) followed by the UUID in parenthesis. - -content is represented as a JSON string. content MUST be present. - +
    content +content includes the raw EventReport in Markdown format with or without the specific MISP Markdown markup extension. +The markdown extension for MISP is composed with a symbol as prefix then between square bracket the scope (attribute, object, tag or galaxymatrix) followed by the UUID in parenthesis. +content is represented as a JSON string. content MUST be present.
    -
    -distribution represents the basic distribution rules of the EventReport. The system must adhere to the distribution setting for access control and for dissemination of the EventReport. - -distribution is represented by a JSON string. distribution MUST be present and be one of the following options: - - - - - -Your Organisation Only - - -This Community Only - - -Connected Communities - - -All Communities - - -Sharing Group - - -Inherit Event - - +
    distribution +distribution represents the basic distribution rules of the EventReport. The system must adhere to the distribution setting for access control and for dissemination of the EventReport. +distribution is represented by a JSON string. distribution MUST be present and be one of the following options: + +
    +
    0
    +
    Your Organisation Only
    +
    1
    +
    This Community Only
    +
    2
    +
    Connected Communities
    +
    3
    +
    All Communities
    +
    4
    +
    Sharing Group
    +
    5
    +
    Inherit Event
    +
    -
    -sharing_group_id represents the local id to the MISP local instance of the Sharing Group associated for the distribution. - -sharing_group_id is represented by a JSON string. sharing_group_id MUST be present and set to "0" if not used. - +
    sharing_group_id +sharing_group_id represents the local id to the MISP local instance of the Sharing Group associated for the distribution. +sharing_group_id is represented by a JSON string. sharing_group_id MUST be present and set to "0" if not used.
    -
    -timestamp represents a reference time when the EventReport was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. - -timestamp is represented as a JSON string. timestamp MUST be present. - +
    timestamp +timestamp represents a reference time when the EventReport was created or last modified. timestamp is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. +timestamp is represented as a JSON string. timestamp MUST be present.
    -
    -deleted represents a setting that allows EventReport to be revoked. Revoked EventReport are not actionable and exist merely to inform other instances of a revocation. - -deleted is represented by a JSON boolean. deleted MUST be present. - +
    deleted +deleted represents a setting that allows EventReport to be revoked. Revoked EventReport are not actionable and exist merely to inform other instances of a revocation. +deleted is represented by a JSON boolean. deleted MUST be present.
    -
    -A tag is a simple method to classify an event with a simple string. The tag name can be freely chosen. The tag name can be also chosen from a fixed machine-tag vocabulary called MISP taxonomies[]. When an event is distributed outside an organisation, the use of MISP taxonomies[] is RECOMMENDED to ensure a coherent naming of the tags. A tag is represented as a JSON array where each element describes each tag associated. A tag array SHALL be at event level or attribute level. A tag element is described with a name, id, colour and exportable flag. - -exportable represents a setting if the tag is kept local or exportable to other MISP instances. exportable is represented by a JSON boolean. id is a human-readable identifier that references the tag on the local instance. colour represents an RGB value of the tag. - -name MUST be present. colour, id and exportable SHALL be present. - +
    Tag +A tag is a simple method to classify an event with a simple string. The tag name can be freely chosen. The tag name can be also chosen from a fixed machine-tag vocabulary called MISP taxonomies[]. When an event is distributed outside an organisation, the use of MISP taxonomies[] is RECOMMENDED to ensure a coherent naming of the tags. A tag is represented as a JSON array where each element describes each tag associated. A tag array SHALL be at event level or attribute level. A tag element is described with a name, id, colour and exportable flag. +exportable represents a setting if the tag is kept local or exportable to other MISP instances. exportable is represented by a JSON boolean. id is a human-readable identifier that references the tag on the local instance. colour represents an RGB value of the tag. +name MUST be present. colour, id and exportable SHALL be present. -
    +
    Sample Tag -
    -"Tag": [{ - "exportable": true, - "colour": "#ffffff", - "name": "tlp:white", - "id": "2" }] -
    +"Tag": [{ + "exportable": true, + "colour": "#ffffff", + "name": "tlp:white", + "id": "2" }] +
    -
    +
    Sighting A sighting is an ascertainment which describes whether an attribute has been seen under a given set of conditions. The sighting can include the organisation who sighted the attribute or can -be anonymised. Sighting is composed of a JSON array in which each element describes one singular instance of a sighting. A sighting element is a JSON object composed of the following values: - -type MUST be present. type describes the type of a sighting. MISP allows 3 default types: - - -Sighting type -Description +be anonymised. Sighting is composed of a JSON array in which each element describes one singular instance of a sighting. A sighting element is a JSON object composed of the following values: +type MUST be present. type describes the type of a sighting. MISP allows 3 default types: + + + + + + + -0denotes an attribute which has been seen -1denotes an attribute which has been seen and confirmed as false-positive -2denotes an attribute which will be expired at the time of the sighting - -uuid MUST be present. uuid references the uuid of the sighted attribute. - -date_sighting MUST be present. date_sighting is expressed in seconds (decimal) elapsed since 1st of January 1970 (Unix timestamp). date_sighting represents when the referenced attribute, designated by its uuid, is sighted. - -source MAY be present. source is represented as a JSON string and represents the human-readable version of the sighting source, which can be a given piece of software (e.g. SIEM), device or a specific analytical process. - -id, event_id and attribute_id MAY be present. - + + + + + + + + + + + + + + + + +
    Sighting typeDescription
    0denotes an attribute which has been seen
    1denotes an attribute which has been seen and confirmed as false-positive
    2denotes an attribute which will be expired at the time of the sighting
    uuid MUST be present. uuid references the uuid of the sighted attribute. +date_sighting MUST be present. date_sighting is expressed in seconds (decimal) elapsed since 1st of January 1970 (Unix timestamp). date_sighting represents when the referenced attribute, designated by its uuid, is sighted. +source MAY be present. source is represented as a JSON string and represents the human-readable version of the sighting source, which can be a given piece of software (e.g. SIEM), device or a specific analytical process. +id, event_id and attribute_id are represented as a JSON string and MAY be present. id represents the human-readable identifier of the sighting reference which belongs to a specific MISP instance. event_id represents the human-readable identifier of the event referenced by the sighting and belongs to a specific MISP instance. -attribute_id represents the human-readable identifier of the attribute referenced by the sighting and belongs to a specific MISP instance. - -org_id MAY be present along the JSON object describing the organisation. If the org_id is not present, the sighting is considered as anonymised. - -org_id represents the human-readable identifier of the organisation which did the sighting and belongs to a specific MISP instance. - -A human-readable identifier MUST be represented as an unsigned integer. - +attribute_id represents the human-readable identifier of the attribute referenced by the sighting and belongs to a specific MISP instance. +org_id MAY be present along the JSON object describing the organisation. If the org_id is not present, the sighting is considered as anonymised. +org_id represents the human-readable identifier of the organisation which did the sighting and belongs to a specific MISP instance. +A human-readable identifier MUST be considered as an unsigned integer. -
    +
    Sample Sighting -
    -"Sighting": [ +"Sighting": [ { - "id": "13599", - "attribute_id": "1201615", - "event_id": "10164", - "org_id": "2", - "date_sighting": "1517581400", - "uuid": "5a747459-41b4-4826-9b29-42dd950d210f", - "source": "M2M-CIRCL", - "type": "0", - "Organisation": { - "id": "2", - "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f", - "name": "CIRCL" + "id": "13599", + "attribute_id": "1201615", + "event_id": "10164", + "org_id": "2", + "date_sighting": "1517581400", + "uuid": "5a747459-41b4-4826-9b29-42dd950d210f", + "source": "M2M-CIRCL", + "type": "0", + "Organisation": { + "id": "2", + "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f", + "name": "CIRCL" } }, { - "id": "13601", - "attribute_id": "1201615", - "event_id": "10164", - "org_id": "2", - "date_sighting": "1517581401", - "uuid": "5a74745a-a190-4d04-b719-4916950d210f", - "source": "M2M-CIRCL", - "type": "0", - "Organisation": { - "id": "2", - "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f", - "name": "CIRCL" + "id": "13601", + "attribute_id": "1201615", + "event_id": "10164", + "org_id": "2", + "date_sighting": "1517581401", + "uuid": "5a74745a-a190-4d04-b719-4916950d210f", + "source": "M2M-CIRCL", + "type": "0", + "Organisation": { + "id": "2", + "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f", + "name": "CIRCL" } } ] -
    +
    -
    -A galaxy is a simple method to express a large object called cluster that can be attached to MISP events. A cluster can be composed of one or more elements. Elements are expressed as key-values. - +
    Galaxy +A galaxy is a simple method to express a large object called cluster that can be attached to MISP events. A cluster can be composed of one or more elements. Elements are expressed as key-values. -
    +
    Sample Galaxy -
    -"Galaxy": [ { - "id": "18", - "uuid": "698774c7-8022-42c4-917f-8d6e4f06ada3", - "name": "Threat Actor", - "type": "threat-actor", - "description": "Threat actors are characteristics of malicious actors +"Galaxy": [ { + "id": "18", + "uuid": "698774c7-8022-42c4-917f-8d6e4f06ada3", + "name": "Threat Actor", + "type": "threat-actor", + "description": "Threat actors are characteristics of malicious actors (or adversaries) representing a cyber attack threat - including presumed intent and historically observed behaviour.", - "version": "1", - "GalaxyCluster": [ + including presumed intent and historically observed behaviour.", + "version": "1", + "GalaxyCluster": [ { - "id": "1699", - "uuid": "7cdff317-a673-4474-84ec-4f1754947823", - "type": "threat-actor", - "value": "Anunak", - "tag_name": "misp-galaxy:threat-actor=\"Anunak\"", - "description": "Groups targeting financial organizations - or people with significant financial assets.", - "galaxy_id": "18", - "source": "MISP Project", - "authors": [ - "Alexandre Dulaunoy", - "Florian Roth", - "Thomas Schreck", - "Timo Steffens", - "Various" + "id": "1699", + "uuid": "7cdff317-a673-4474-84ec-4f1754947823", + "type": "threat-actor", + "value": "Anunak", + "tag_name": "misp-galaxy:threat-actor=\"Anunak\"", + "description": "Groups targeting financial organizations + or people with significant financial assets.", + "galaxy_id": "18", + "source": "MISP Project", + "authors": [ + "Alexandre Dulaunoy", + "Florian Roth", + "Thomas Schreck", + "Timo Steffens", + "Various" ], - "tag_id": "111", - "meta": { - "synonyms": [ - "Carbanak", - "Carbon Spider" + "tag_id": "111", + "meta": { + "synonyms": [ + "Carbanak", + "Carbon Spider" ], - "country": [ - "RU" + "country": [ + "RU" ], - "motive": [ - "Cybercrime" + "motive": [ + "Cybercrime" ] } } ] } ] -
    +
    -
    -The JSON Schema below defines the structure of the MISP core format +
    JSON Schema +The JSON Schema below defines the structure of the MISP core format as literally described before. The JSON Schema is used to validate MISP events at creation time -or parsing. - +or parsing. -
    -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Validator for misp events", - "id": "https://github.com/MISP/MISP/blob/2.4/format/2.4/schema.json", - "defs": { - "org": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Validator for misp events", + "id": "https://github.com/MISP/MISP/blob/2.4/format/2.4/schema.json", + "defs": { + "org": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "name": { - "type": "string" + "name": { + "type": "string" }, - "uuid": { - "type": "string" + "uuid": { + "type": "string" } }, - "required": [ - "uuid" + "required": [ + "uuid" ] }, - "orgc": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "orgc": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "name": { - "type": "string" + "name": { + "type": "string" }, - "uuid": { - "type": "string" + "uuid": { + "type": "string" } }, - "required": [ - "uuid" + "required": [ + "uuid" ] }, - "sharing_group": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "sharing_group": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "name": { - "type": "string" + "name": { + "type": "string" }, - "releasability": { - "type": "string" + "releasability": { + "type": "string" }, - "description": { - "type": "string" + "description": { + "type": "string" }, - "uuid": { - "type": "string" + "uuid": { + "type": "string" }, - "organisation_uuid": { - "type": "string" + "organisation_uuid": { + "type": "string" }, - "org_id": { - "type": "string" + "org_id": { + "type": "string" }, - "sync_user_id": { - "type": "string" + "sync_user_id": { + "type": "string" }, - "active": { - "type": "boolean" + "active": { + "type": "boolean" }, - "created": { - "type": "string" + "created": { + "type": "string" }, - "modified": { - "type": "string" + "modified": { + "type": "string" }, - "local": { - "type": "boolean" + "local": { + "type": "boolean" }, - "roaming": { - "type": "boolean" + "roaming": { + "type": "boolean" }, - "Organisation": { - "$ref": "#/defs/org" + "Organisation": { + "$ref": "#/defs/org" }, - "SharingGroupOrg": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/sharing_group_org" + "SharingGroupOrg": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/sharing_group_org" } }, - "SharingGroupServer": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/sharing_group_server" + "SharingGroupServer": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/sharing_group_server" } }, - "required": [ - "uuid" + "required": [ + "uuid" ] }, - "required": [ - "uuid" + "required": [ + "uuid" ] }, - "sharing_group_org": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "sharing_group_org": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "sharing_group_id": { - "type": "string" + "sharing_group_id": { + "type": "string" }, - "org_id": { - "type": "string" + "org_id": { + "type": "string" }, - "extend": { - "type": "boolean" + "extend": { + "type": "boolean" }, - "Organisation": { - "$ref": "#/defs/org" + "Organisation": { + "$ref": "#/defs/org" } } }, - "sharing_group_server": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "sharing_group_server": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "sharing_group_id": { - "type": "string" + "sharing_group_id": { + "type": "string" }, - "server_id": { - "type": "string" + "server_id": { + "type": "string" }, - "all_orgs": { - "type": "boolean" + "all_orgs": { + "type": "boolean" }, - "Server": { - "$ref": "#/defs/server" + "Server": { + "$ref": "#/defs/server" } } }, - "server": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "server": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "url": { - "type": "string" + "url": { + "type": "string" }, - "name": { - "type": "string" + "name": { + "type": "string" } } }, - "object": { - "type": "object", - "additionalProperties": false, - "properties": { - "uuid": { - "type": "string" + "object": { + "type": "object", + "additionalProperties": false, + "properties": { + "uuid": { + "type": "string" }, - "name": { - "type": "string" + "name": { + "type": "string" }, - "event_id": { - "type": "string" + "event_id": { + "type": "string" }, - "description": { - "type": "string" + "description": { + "type": "string" }, - "template_uuid": { - "type": "string" + "template_uuid": { + "type": "string" }, - "template_version": { - "type": "string" + "template_version": { + "type": "string" }, - "id": { - "type": "string" + "id": { + "type": "string" }, - "meta-category": { - "type": "string" + "meta-category": { + "type": "string" }, - "deleted": { - "type": "boolean" + "deleted": { + "type": "boolean" }, - "timestamp": { - "type": "string" + "timestamp": { + "type": "string" }, - "first_seen": { - "type": "string" + "first_seen": { + "type": "string" }, - "last_seen": { - "type": "string" + "last_seen": { + "type": "string" }, - "distribution": { - "type": "string" + "distribution": { + "type": "string" }, - "sharing_group_id": { - "type": "string" + "sharing_group_id": { + "type": "string" }, - "comment": { - "type": "string" + "comment": { + "type": "string" }, - "ObjectReference": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/objectreference" + "ObjectReference": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/objectreference" } }, - "Attribute": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/attribute" + "Attribute": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/attribute" } } } }, - "sighthing": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "sighthing": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "attribute_id": { - "type": "string" + "attribute_id": { + "type": "string" }, - "event_id": { - "type": "string" + "event_id": { + "type": "string" }, - "source": { - "type": "string" + "source": { + "type": "string" }, - "type": { - "type": "string" + "type": { + "type": "string" }, - "org_id": { - "type": "string" + "org_id": { + "type": "string" }, - "date_sighting": { - "type": "string" + "date_sighting": { + "type": "string" }, - "uuid": { - "type": "string" + "uuid": { + "type": "string" }, - "Organisation": { - "$ref": "#/defs/organisation" + "Organisation": { + "$ref": "#/defs/organisation" } } }, - "organisation": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "organisation": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "uuid": { - "type": "string" + "uuid": { + "type": "string" }, - "name": { - "type": "string" + "name": { + "type": "string" } } }, - "objectreference": { - "type": "object", - "additionalProperties": false, - "properties": { - "deleted": { - "type": "boolean" + "objectreference": { + "type": "object", + "additionalProperties": false, + "properties": { + "deleted": { + "type": "boolean" }, - "object_id": { - "type": "string" + "object_id": { + "type": "string" }, - "event_id": { - "type": "string" + "event_id": { + "type": "string" }, - "timestamp": { - "type": "string" + "timestamp": { + "type": "string" }, - "id": { - "type": "string" + "id": { + "type": "string" }, - "uuid": { - "type": "string" + "uuid": { + "type": "string" }, - "type": { - "type": "string" + "type": { + "type": "string" }, - "referenced_id": { - "type": "string" + "referenced_id": { + "type": "string" }, - "referenced_uuid": { - "type": "string" + "referenced_uuid": { + "type": "string" }, - "referenced_type": { - "type": "string" + "referenced_type": { + "type": "string" }, - "relationship_type": { - "type": "string" + "relationship_type": { + "type": "string" }, - "object_uuid": { - "type": "string" + "object_uuid": { + "type": "string" }, - "comment": { - "type": "string" + "comment": { + "type": "string" }, - "Object": { - "$ref": "#/defs/object" + "Object": { + "$ref": "#/defs/object" } } }, - "attribute": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "attribute": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "old_id": { - "type": "string" + "old_id": { + "type": "string" }, - "type": { - "type": "string" + "type": { + "type": "string" }, - "category": { - "type": "string" + "category": { + "type": "string" }, - "to_ids": { - "type": "boolean" + "to_ids": { + "type": "boolean" }, - "uuid": { - "type": "string" + "uuid": { + "type": "string" }, - "event_id": { - "type": "string" + "event_id": { + "type": "string" }, - "event_uuid": { - "type": "string" + "event_uuid": { + "type": "string" }, - "proposal_to_delete": { - "type": "boolean" + "proposal_to_delete": { + "type": "boolean" }, - "validationIssue": { - "type": "boolean" + "validationIssue": { + "type": "boolean" }, - "Org": { - "$ref": "#/defs/organisation" + "Org": { + "$ref": "#/defs/organisation" }, - "org_id": { - "type": "string" + "org_id": { + "type": "string" }, - "distribution": { - "type": "string" + "distribution": { + "type": "string" }, - "timestamp": { - "type": "string" + "timestamp": { + "type": "string" }, - "first_seen": { - "type": "string" + "first_seen": { + "type": "string" }, - "last_seen": { - "type": "string" + "last_seen": { + "type": "string" }, - "comment": { - "type": "string" + "comment": { + "type": "string" }, - "sharing_group_id": { - "type": "string" + "sharing_group_id": { + "type": "string" }, - "deleted": { - "type": "boolean" + "deleted": { + "type": "boolean" }, - "disable_correlation": { - "type": "boolean" + "disable_correlation": { + "type": "boolean" }, - "value": { - "type": "string" + "value": { + "type": "string" }, - "data": { - "type": "string" + "data": { + "type": "string" }, - "object_relation": { - "type": ["string", "null"] + "object_relation": { + "type": ["string", "null"] }, - "object_id": { - "type": "string" + "object_id": { + "type": "string" }, - "SharingGroup": { - "$ref": "#/defs/sharing_group" + "SharingGroup": { + "$ref": "#/defs/sharing_group" }, - "ShadowAttribute": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/attribute" + "ShadowAttribute": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/attribute" } }, - "Sighting": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/sighthing" + "Sighting": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/sighthing" } }, - "Galaxy": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/galaxy" + "Galaxy": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/galaxy" } }, - "Tag": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/defs/tag" + "Tag": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/defs/tag" } } } }, - "event": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "event": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "orgc_id": { - "type": "string" + "orgc_id": { + "type": "string" }, - "org_id": { - "type": "string" + "org_id": { + "type": "string" }, - "date": { - "type": "string" + "date": { + "type": "string" }, - "extends_uuid": { - "type": "string" + "extends_uuid": { + "type": "string" }, - "threat_level_id": { - "type": "string" + "threat_level_id": { + "type": "string" }, - "info": { - "type": "string" + "info": { + "type": "string" }, - "published": { - "type": "boolean" + "published": { + "type": "boolean" }, - "uuid": { - "type": "string" + "uuid": { + "type": "string" }, - "attribute_count": { - "type": "string" + "attribute_count": { + "type": "string" }, - "analysis": { - "type": "string" + "analysis": { + "type": "string" }, - "timestamp": { - "type": "string" + "timestamp": { + "type": "string" }, - "distribution": { - "type": "string" + "distribution": { + "type": "string" }, - "proposal_email_lock": { - "type": "boolean" + "proposal_email_lock": { + "type": "boolean" }, - "locked": { - "type": "boolean" + "locked": { + "type": "boolean" }, - "publish_timestamp": { - "type": "string" + "publish_timestamp": { + "type": "string" }, - "sharing_group_id": { - "type": "string" + "sharing_group_id": { + "type": "string" }, - "disable_correlation": { - "type": "boolean" + "disable_correlation": { + "type": "boolean" }, - "event_creator_email": { - "type": "string" + "event_creator_email": { + "type": "string" }, - "Org": { - "$ref": "#/defs/org" + "Org": { + "$ref": "#/defs/org" }, - "Orgc": { - "$ref": "#/defs/org" + "Orgc": { + "$ref": "#/defs/org" }, - "SharingGroup": { - "$ref": "#/defs/sharing_group" + "SharingGroup": { + "$ref": "#/defs/sharing_group" }, - "Attribute": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/attribute" + "Attribute": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/attribute" } }, - "ShadowAttribute": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/attribute" + "ShadowAttribute": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/attribute" } }, - "RelatedEvent": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "object", - "additionalProperties": false, - "properties": { - "Event":{ - "$ref": "#/defs/event" + "RelatedEvent": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "Event":{ + "$ref": "#/defs/event" } } } }, - "Galaxy": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/galaxy" + "Galaxy": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/galaxy" } }, - "Object": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/object" + "Object": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/object" } }, - "Tag": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/tag" + "Tag": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/tag" } } } }, - "tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "name": { - "type": "string" + "name": { + "type": "string" }, - "colour": { - "type": "string" + "colour": { + "type": "string" }, - "exportable": { - "type": "boolean" + "exportable": { + "type": "boolean" }, - "hide_tag": { - "type": "boolean" + "hide_tag": { + "type": "boolean" }, - "user_id": { - "type": "string" + "user_id": { + "type": "string" } } }, - "galaxy": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "galaxy": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "uuid": { - "type": "string" + "uuid": { + "type": "string" }, - "name": { - "type": "string" + "name": { + "type": "string" }, - "type": { - "type": "string" + "type": { + "type": "string" }, - "description": { - "type": "string" + "description": { + "type": "string" }, - "version": { - "type": "string" + "version": { + "type": "string" }, - "icon": { - "type": "string" + "icon": { + "type": "string" }, - "namespace": { - "type": "string" + "namespace": { + "type": "string" }, - "GalaxyCluster": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/defs/galaxy_cluster" + "GalaxyCluster": { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/defs/galaxy_cluster" } } } }, - "galaxy_cluster": { - "type": "object", - "additionalProperties": false, - "properties": { - "id": { - "type": "string" + "galaxy_cluster": { + "type": "object", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" }, - "uuid": { - "type": "string" + "uuid": { + "type": "string" }, - "type": { - "type": "string" + "type": { + "type": "string" }, - "value": { - "type": "string" + "value": { + "type": "string" }, - "tag_name": { - "type": "string" + "tag_name": { + "type": "string" }, - "description": { - "type": "string" + "description": { + "type": "string" }, - "galaxy_id": { - "type": "string" + "galaxy_id": { + "type": "string" }, - "version": { - "type": "string" + "version": { + "type": "string" }, - "source": { - "type": "string" + "source": { + "type": "string" }, - "authors": { - "type": "array", - "uniqueItems": true, - "items": { - "type": "string" + "authors": { + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" } }, - "tag_id": { - "type": "string" + "tag_id": { + "type": "string" }, - "meta": { - "type": "object" + "meta": { + "type": "object" } } } }, - "type": "object", - "properties": { - "Event": { - "$ref": "#/defs/event" + "type": "object", + "properties": { + "Event": { + "$ref": "#/defs/event" } }, - "required": [ - "Event" + "required": [ + "Event" ] } -
    +
    -
    +
    Manifest MISP events can be shared over an HTTP repository, a file package or USB key. A manifest file is used to provide an index of MISP events allowing to only fetch the recently updated files without the need to parse -each json file. - +each json file. -
    +
    Format A manifest file is a simple JSON file named manifest.json in a directory where the MISP events are located. -Each MISP event is a file located in the same directory with the event uuid as filename with the json extension. - -The manifest format is a JSON object composed of a dictionary where the field is the uuid of the event. - +Each MISP event is a file located in the same directory with the event uuid as filename with the json extension. +The manifest format is a JSON object composed of a dictionary where the field is the uuid of the event. Each uuid is composed of a JSON object with the following fields which came from the original event referenced -by the same uuid: - - - -info (MUST) -Orgc object (MUST) -analysis (SHALL) -timestamp (MUST) -date (MUST) -threat_level_id (SHALL) - - -In addition to the fields originating from the event, the following fields can be added: - - - -integrity:sha256 represents the SHA256 value in hexadecimal representation of the associated MISP event file to ensure integrity of the file. (SHOULD) -integrity:pgp represents a detached PGP signature of the associated MISP event file to ensure integrity of the file. (SHOULD) - - -If a detached PGP signature is used for each MISP event, a detached PGP signature is a MUST to ensure integrity of the manifest file. -A detached PGP signature for a manifest file is a manifest.json.asc file containing the PGP signature. - +by the same uuid: -
    +
      +
    • info (MUST)
    • +
    • Orgc object (MUST)
    • +
    • analysis (SHALL)
    • +
    • timestamp (MUST)
    • +
    • date (MUST)
    • +
    • threat_level_id (SHALL)
    • +
    +In addition to the fields originating from the event, the following fields can be added: -
    -{ - "57c6ac4c-c60c-4f79-a38f-b666950d210f": { - "info": "Malspam 2016-08-31 (.wsf in .zip) - campaign: Photo", - "Orgc": { - "id": "2", - "name": "CIRCL", - "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f" +
      +
    • integrity:sha256 represents the SHA256 value in hexadecimal representation of the associated MISP event file to ensure integrity of the file. (SHOULD)
    • +
    • integrity:pgp represents a detached PGP signature of the associated MISP event file to ensure integrity of the file. (SHOULD)
    • +
    +If a detached PGP signature is used for each MISP event, a detached PGP signature is a MUST to ensure integrity of the manifest file. +A detached PGP signature for a manifest file is a manifest.json.asc file containing the PGP signature. + +
    Sample Manifest + +{ + "57c6ac4c-c60c-4f79-a38f-b666950d210f": { + "info": "Malspam 2016-08-31 (.wsf in .zip) - campaign: Photo", + "Orgc": { + "id": "2", + "name": "CIRCL", + "uuid": "55f6ea5e-2c60-40e5-964f-47a8950d210f" }, - "analysis": "0", - "Tag": [ + "analysis": "0", + "Tag": [ { - "colour": "#3d7a00", - "name": "circl:incident-classification=\"malware\"" + "colour": "#3d7a00", + "name": "circl:incident-classification=\"malware\"" }, { - "colour": "#ffffff", - "name": "tlp:white" + "colour": "#ffffff", + "name": "tlp:white" } ], - "timestamp": "1472638251", - "date": "2016-08-31", - "threat_level_id": "3" + "timestamp": "1472638251", + "date": "2016-08-31", + "threat_level_id": "3" }, - "5720accd-dd28-45f8-80e5-4605950d210f": { - "info": "Malspam 2016-04-27 - Locky", - "Orgc": { - "id": "2", - "name": "CIRCL" + "5720accd-dd28-45f8-80e5-4605950d210f": { + "info": "Malspam 2016-04-27 - Locky", + "Orgc": { + "id": "2", + "name": "CIRCL" }, - "analysis": "2", - "Tag": [ + "analysis": "2", + "Tag": [ { - "colour": "#ffffff", - "name": "tlp:white" + "colour": "#ffffff", + "name": "tlp:white" }, { - "colour": "#3d7a00", - "name": "circl:incident-classification=\"malware\"" + "colour": "#3d7a00", + "name": "circl:incident-classification=\"malware\"" }, { - "colour": "#2c4f00", - "name": "malware_classification:malware-category=\"Ransomware\"" + "colour": "#2c4f00", + "name": "malware_classification:malware-category=\"Ransomware\"" } ], - "timestamp": "1461764231", - "date": "2016-04-27", - "threat_level_id": "3" + "timestamp": "1461764231", + "date": "2016-04-27", + "threat_level_id": "3" } } -
    +
    -
    +
    Implementation MISP format is implemented by different software including the MISP threat sharing -platform and libraries like PyMISP . Implementations use the format +platform and libraries like PyMISP . Implementations use the format as an export/import mechanism, staging transport format or synchronisation format as used in the MISP core platform. MISP format doesn't impose any restriction on -the data representation of the format in data-structure of other implementations. - +the data representation of the format in data-structure of other implementations.
    -
    +
    Security Considerations MISP events might contain sensitive or confidential information. Adequate access control and encryption measures shall be implemented to ensure -the confidentiality of the MISP events. - +the confidentiality of the MISP events. Adversaries might include malicious content in MISP events and attributes. -Implementation MUST consider the input of malicious inputs beside the -standard threat information that might already include malicious intended inputs. - +Implementation MUST consider the input of malicious inputs beside the +standard threat information that might already include malicious intended inputs.
    -
    +
    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 Nicolas Bareil -for the review of the JSON Schema. - +for the review of the JSON Schema.
    -
    +
    References
    + - - - - - +Normative References + + + + - - +Informative References + JSON Schema: A Media Type for Describing JSON Documents - + - + - MISP Project - Open Source Threat Intelligence Platform and Open Standards For Threat Information Sharing - - + MISP Project - Open Source Threat Intelligence Platform and Open Standards For Threat Information Sharing + + - + - MISP Object Relationship Types - common vocabulary of relationships - - + MISP Object Relationship Types - common vocabulary of relationships + + - + - MISP Taxonomies - shared and common vocabularies of tags - - + MISP Taxonomies - shared and common vocabularies of tags + + +