idnits 2.17.1 draft-dulaunoy-misp-galaxy-format-06.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** There are 8 instances of too long lines in the document, the longest one being 615 characters in excess of 72. ** The abstract seems to contain references ([MISP-G], [MISP-G-DOC]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 31, 2019) is 1853 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 4627 (Obsoleted by RFC 7158, RFC 7159) Summary: 5 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group A. Dulaunoy 3 Internet-Draft A. Iklody 4 Intended status: Informational D. Servili 5 Expires: October 2, 2019 CIRCL 6 March 31, 2019 8 MISP galaxy format 9 draft-dulaunoy-misp-galaxy-format-06 11 Abstract 13 This document describes the MISP galaxy format which describes a 14 simple JSON format to represent galaxies and clusters that can be 15 attached to MISP events or attributes. A public directory of MISP 16 galaxies is available and relies on the MISP galaxy format. MISP 17 galaxies are used to add further informations on a MISP event. MISP 18 galaxy is a public repository [MISP-G] [MISP-G-DOC] of known malware, 19 threats actors and various other collections of data that can be used 20 to mark, classify or label data in threat information sharing. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at https://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on October 2, 2019. 39 Copyright Notice 41 Copyright (c) 2019 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (https://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 57 1.1. Conventions and Terminology . . . . . . . . . . . . . . . 2 58 2. Format . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 59 2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2.2. values . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 2.3. related . . . . . . . . . . . . . . . . . . . . . . . . . 3 62 2.4. meta . . . . . . . . . . . . . . . . . . . . . . . . . . 4 63 3. JSON Schema . . . . . . . . . . . . . . . . . . . . . . . . . 8 64 3.1. MISP galaxy format - galaxy . . . . . . . . . . . . . . . 9 65 3.2. MISP galaxy format - clusters . . . . . . . . . . . . . . 9 66 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 67 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 68 5.1. Normative References . . . . . . . . . . . . . . . . . . 13 69 5.2. Informative References . . . . . . . . . . . . . . . . . 13 70 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 72 1. Introduction 74 Sharing threat information became a fundamental requirements on the 75 Internet, security and intelligence community at large. Threat 76 information can include indicators of compromise, malicious file 77 indicators, financial fraud indicators or even detailed information 78 about a threat actor. Some of these informations, such as malware or 79 threat actors are common to several security events. MISP galaxy is 80 a public repository [MISP-G] of known malware, threats actors and 81 various other collections of data that can be used to mark, classify 82 or label data in threat information sharing. 84 In the MISP galaxy context, clusters help analysts to give more 85 informations about their cybersecurity events, indicators or threats. 86 MISP galaxies can be used for classification, filtering, triggering 87 actions or visualisation depending on their use in threat 88 intelligence platforms such as MISP [MISP-P]. 90 1.1. Conventions and Terminology 92 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 93 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 94 document are to be interpreted as described in RFC 2119 [RFC2119]. 96 2. Format 98 A cluster is composed of a value (MUST), a description (OPTIONAL) and 99 metadata (OPTIONAL). 101 Clusters are represented as a JSON [RFC4627] dictionary. 103 2.1. Overview 105 The MISP galaxy format uses the JSON [RFC4627] format. Each galaxy 106 is represented as a JSON object with meta information including the 107 following fields: name, uuid, description, version, type, authors, 108 source, values, category. 110 name defines the name of the galaxy. The name is represented as a 111 string and MUST be present. The uuid represents the Universally 112 Unique IDentifier (UUID) [RFC4122] of the object reference. The uuid 113 MUST be preserved. For any updates or transfer of the same object 114 reference. UUID version 4 is RECOMMENDED when assigning it to a new 115 object reference and MUST be present. The description is represented 116 as a string and MUST be present. The uuid is represented as a string 117 and MUST be present. The version is represented as a decimal and 118 MUST be present. The type is represented as a string and MUST be 119 present and MUST match the name of the galaxy file. The source is 120 represented as a string and MUST be present. Authors are represented 121 as an array containing one or more authors and MUST be present. The 122 category is represented as a string and MUST be present and describes 123 the overall category of the galaxy such as tool or actor. 125 Values are represented as an array containing one or more values and 126 MUST be present. Values defines all values available in the galaxy. 128 2.2. values 130 The values array contains one or more JSON objects which represent 131 all the possible values in the galaxy. The JSON object contains four 132 fields: value, description, uuid and meta. The value is represented 133 as a string and MUST be present. The description is represented as a 134 string and SHOULD be present. The meta or metadata is represented as 135 a JSON list and SHOULD be present. The uuid represents the 136 Universally Unique IDentifier (UUID) [RFC4122] of the value 137 reference. The uuid SHOULD can be present and MUST be preserved. 139 2.3. related 141 Related contains a list of JSON key value pairs which describe the 142 related values in this galaxy cluster or to other galaxy clusters. 143 The JSON object contains three fields, dest-uuid, type and tags. The 144 dest-uuid represents the target UUID which encompasses a relation of 145 some type. The dest-uuid is represented as a string and MUST be 146 present. The type is represented as a string and MUST be present and 147 SHOULD be selected from the relationship types available in MISP 148 objects [MISP-R]. The tags is a list of string which labels the 149 related relationship such as the level of similarities, level of 150 certainty, trust or confidence in the relationship, false-positive. 151 A tag is represented in machine tag format which is a string an 152 SHOULD be present. 154 "related": [ { 155 "dest-uuid": "f873db71-3d53-41d5-b141-530675ade27a", 156 "type": "similar", 157 "tags": ["estimative-language:likelihood-probability=\"very-likely\""] 158 } ] 160 2.4. meta 162 Meta contains a list of custom defined JSON key value pairs. Users 163 SHOULD reuse commonly used keys such as complexity, effectiveness, 164 country, possible_issues, colour, motive, impact, refs, synonyms, 165 status, date, encryption, extensions, ransomnotes, ransomnotes- 166 filenames, ransomnotes-refs, suspected-victims, suspected-state- 167 sponsor, type-of-incident, target-category, cfr-suspected-victims, 168 cfr-suspected-state-sponsor, cfr-type-of-incident, cfr-target- 169 category, attribution-confidence, payment-method, price wherever 170 applicable. 172 refs, synonyms SHALL be used to give further informations. refs is 173 represented as an array containing one or more strings and SHALL be 174 present. synonyms is represented as an array containing one or more 175 strings and SHALL be present. 177 date, status MAY be used to give time information about an cluster. 178 date is represented as a string describing a time or period and SHALL 179 be present. status is represented as a string describing the current 180 status of the clusters. It MAY also describe a time or period and 181 SHALL be present. 183 colour fields MAY be used at predicates or values level to set a 184 specify colour that MAY be used by the implementation. The colour 185 field is described as an RGB colour fill in hexadecimal 186 representation. 188 complexity, effectiveness, impact, possible_issues MAY be used to 189 give further information in preventive-measure galaxy. complexity is 190 represented by an enumerated value from a fixed vocabulary and SHALL 191 be present. effectiveness is represented by an enumerated value from 192 a fixed vocabulary and SHALL be present. impact is represented by an 193 enumerated value from a fixed vocabulary and SHALL be present. 194 possible_issues is represented as a string and SHOULD be present. 196 Example use of the complexity, effectiveness, impact, possible_issues 197 fields in the preventive-measure galaxy: 199 { 200 "meta": { 201 "refs": [ 202 "http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/AdminTips/Customization/DisableWindowsScriptingHostWSH.html" 203 ], 204 "complexity": "Low", 205 "effectiveness": "Medium", 206 "impact": "Medium", 207 "type": [ 208 "GPO" 209 ], 210 "possible_issues": "Administrative VBS scripts on Workstations" 211 }, 212 "value": "Disable WSH", 213 "description": "Disable Windows Script Host", 214 "uuid": "e6df1619-f8b3-476c-b5cf-22b4c9e9dd7f" 215 } 217 country, motive MAY be used to give further information in threat- 218 actor galaxy. country is represented as a string and SHOULD be 219 present. motive is represented as a string and SHOULD be present. 221 Example use of the country, motive fields in the threat-actor galaxy: 223 { 224 "meta": { 225 "country": "CN", 226 "synonyms": [ 227 "APT14", 228 "APT 14", 229 "QAZTeam", 230 "ALUMINUM" 231 ], 232 "refs": [ 233 "http://www.crowdstrike.com/blog/whois-anchor-panda/" 234 ], 235 "motive": "Espionage", 236 "attribution-confidence": 50 237 }, 238 "value": "Anchor Panda", 239 "description": "PLA Navy", 240 "uuid": "c82c904f-b3b4-40a2-bf0d-008912953104" 241 } 243 encryption, extensions, ransomnotes, ransomnotes-filenames, 244 ransomnotes-refs, payment-method, price MAY be used to give further 245 information in ransomware galaxy. encryption is represented as a 246 string and SHALL be present. extensions is represented as an array 247 containing one or more strings and SHALL be present. ransomnotes is 248 represented as an array containing one or more strings ans SHALL be 249 present. ransomnotes-filenames is represented as an array containing 250 one or more strings ans SHALL be present. ransomnotes-refs is 251 represented as an array containing one or more strings ans SHALL be 252 present. 254 Example use of the encryption, extensions, ransomnotes fields in the 255 ransomware galaxy: 257 { 258 "description": "Similar to Samas and BitPaymer, Ryuk is specifically used to target enterprise environments. Code comparison between versions of Ryuk and Hermes ransomware indicates that Ryuk was derived from the Hermes source code and has been under steady development since its release. Hermes is commodity ransomware that has been observed for sale on forums and used by multiple threat actors. However, Ryuk is only used by GRIM SPIDER and, unlike Hermes, Ryuk has only been used to target enterprise environments. Since Ryuk's appearance in August, the threat actors operating it have netted over 705.80 BTC across 52 transactions for a total current value of $3,701,893.98 USD.", 259 "meta": { 260 "ransomnotes-filenames": [ 261 "RyukReadMe.txt" 262 ], 263 "ransomnotes-refs": [ 264 "https://www.crowdstrike.com/blog/wp-content/uploads/2019/01/RansomeNote-fig3.png", 265 "https://www.crowdstrike.com/blog/wp-content/uploads/2019/01/RansomeNote-fig4.png" 266 ], 267 "refs": [ 268 "https://www.crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/" 269 ] 270 }, 271 "uuid": "f9464c80-b776-4f37-8682-ffde0cf8f718", 272 "value": "Ryuk ransomware" 273 } 275 source-uuid, target-uuid SHALL be used to describe relationships. 276 source-uuid and target-uuid represent the Universally Unique 277 IDentifier (UUID) [RFC4122] of the value reference. source-uuid and 278 target-uuid MUST be preserved. 280 Example use of the source-uuid, target-uuid fields in the mitre- 281 enterprise-attack-relationship galaxy: 283 { 284 "meta": { 285 "source-uuid": "222fbd21-fc4f-4b7e-9f85-0e6e3a76c33f", 286 "target-uuid": "2f1a9fd0-3b7c-4d77-a358-78db13adbe78" 287 }, 288 "uuid": "cfc7da70-d7c5-4508-8f50-1c3107269633", 289 "value": "menuPass (G0045) uses EvilGrab (S0152)" 290 } 292 cfr-suspected-victims, cfr-suspected-state-sponsor, cfr-type-of- 293 incident and cfr-target-category MAY be used to report information 294 gathered from CFR's (Council on Foreign Relations) [CFR] Cyber 295 Operations Tracker. cfr-suspected-victims is represented as an array 296 containing one or more strings and SHALL be present. cfr-suspected- 297 state-sponsor is represented as a string and SHALL be present. cfr- 298 type-of-incident is represented as a string or an array and SHALL be 299 present. RECOMMENDED but not exhaustive list of possible values for 300 cfr-type-of-incident includes "Espionage", "Denial of service", 301 "Sabotage". cfr-target-category is represented as an array containing 302 one or more strings ans SHALL be present. RECOMMENDED but not 303 exhaustive list of possible values for cfr-target-category includes 304 "Private sector", "Government", "Civil society", "Military". 306 Example use of the cfr-suspected-victims, cfr-suspected-state- 307 sponsor, cfr-type-of-incident, cfr-target-category fields in the 308 threat-actor galaxy: 310 { 311 "meta": { 312 "country": "CN", 313 "refs": [ 314 "https://www.fireeye.com/blog/threat-research/2015/12/the_eps_awakens.html", 315 "https://www.cfr.org/interactive/cyber-operations/apt-16" 316 ], 317 "cfr-suspected-victims": [ 318 "Japan", 319 "Taiwan" 320 ], 321 "cfr-suspected-state-sponsor": "China", 322 "cfr-type-of-incident": "Espionage", 323 "cfr-target-category": [ 324 "Private sector" 325 ], 326 "attribution-confidence": 50 327 }, 328 "value": "APT 16", 329 "uuid": "1f73e14f-b882-4032-a565-26dc653b0daf" 330 }, 332 attribution-confidence MAY be used to indicate the confidence about 333 an attribution given by country or cfr-suspected-state-sponsor. 334 attribution-confidence is represented on a scale from 0 to 100, where 335 50 means "no information", the values under 50 mean "probably not, 336 almost certainly not to impossibility", the values above 50 means 337 "from probable, almost certain to certainty" and SHALL be present if 338 country or cfr-suspected-state-sponsor are present. 340 Impossibility no information Certainty 341 + 342 | 343 +-------------------+------------------> 345 0 50 100 347 3. JSON Schema 349 The JSON Schema [JSON-SCHEMA] below defines the overall MISP galaxy 350 formats. The main format is the MISP galaxy format used for the 351 clusters. 353 3.1. MISP galaxy format - galaxy 355 { 356 "$schema": "http://json-schema.org/schema#", 357 "title": "Validator for misp-galaxies - Galaxies", 358 "id": "https://www.github.com/MISP/misp-galaxies/schema_galaxies.json", 359 "type": "object", 360 "additionalProperties": false, 361 "properties": { 362 "description": { 363 "type": "string" 364 }, 365 "type": { 366 "type": "string" 367 }, 368 "version": { 369 "type": "integer" 370 }, 371 "name": { 372 "type": "string" 373 }, 374 "icon": { 375 "type": "string" 376 }, 377 "uuid": { 378 "type": "string" 379 }, 380 "namespace": { 381 "type": "string" 382 }, 383 "kill_chain_order": { 384 "type": "object" 385 } 386 }, 387 "required": [ 388 "description", 389 "type", 390 "version", 391 "name", 392 "uuid" 393 ] 394 } 396 3.2. MISP galaxy format - clusters 398 { 399 "$schema": "http://json-schema.org/schema#", 400 "title": "Validator for misp-galaxies - Clusters", 401 "id": "https://www.github.com/MISP/misp-galaxies/schema_clusters.json", 402 "type": "object", 403 "additionalProperties": false, 404 "properties": { 405 "description": { 406 "type": "string" 407 }, 408 "type": { 409 "type": "string" 410 }, 411 "version": { 412 "type": "integer" 413 }, 414 "name": { 415 "type": "string" 416 }, 417 "uuid": { 418 "type": "string" 419 }, 420 "source": { 421 "type": "string" 422 }, 423 "category": { 424 "type": "string 425 }, 426 "values": { 427 "type": "array", 428 "uniqueItems": true, 429 "items": { 430 "type": "object", 431 "additionalProperties": false, 432 "properties": { 433 "description": { 434 "type": "string" 435 }, 436 "value": { 437 "type": "string" 438 }, 439 "uuid": { 440 "type": "string" 441 }, 442 "related": { 443 "type": "array", 444 "additionalProperties": false, 445 "items": { 446 "type": "object" 447 }, 448 "properties": { 449 "dest-uuid": { 450 "type": "string" 451 }, 452 "type": { 453 "type": "string" 454 }, 455 "tags": { 456 "type": "array", 457 "uniqueItems": true, 458 "items": { 459 "type": "string" 460 } 461 } 462 } 463 }, 464 "meta": { 465 "type": "object", 466 "additionalProperties": true, 467 "properties": { 468 "type": { 469 "type": "array", 470 "uniqueItems": true, 471 "items": { 472 "type": "string" 473 } 474 }, 475 "complexity": { 476 "type": "string" 477 }, 478 "effectiveness": { 479 "type": "string" 480 }, 481 "country": { 482 "type": "string" 483 }, 484 "possible_issues": { 485 "type": "string" 486 }, 487 "colour": { 488 "type": "string" 489 }, 490 "motive": { 491 "type": "string" 492 }, 493 "impact": { 494 "type": "string" 495 }, 496 "refs": { 497 "type": "array", 498 "uniqueItems": true, 499 "items": { 500 "type": "string" 501 } 502 }, 503 "synonyms": { 504 "type": "array", 505 "uniqueItems": true, 506 "items": { 507 "type": "string" 508 } 509 }, 510 "status": { 511 "type": "string" 512 }, 513 "date": { 514 "type": "string" 515 }, 516 "encryption": { 517 "type": "string" 518 }, 519 "extensions": { 520 "type": "array", 521 "uniqueItems": true, 522 "items": { 523 "type": "string" 524 } 525 }, 526 "ransomnotes": { 527 "type": "array", 528 "uniqueItems": true, 529 "items": { 530 "type": "string" 531 } 532 } 533 } 534 } 535 }, 536 "required": [ 537 "value" 538 ] 539 } 540 }, 541 "authors": { 542 "type": "array", 543 "uniqueItems": true, 544 "items": { 545 "type": "string" 546 } 547 } 548 }, 549 "required": [ 550 "description", 551 "type", 552 "version", 553 "name", 554 "uuid", 555 "values", 556 "authors", 557 "source", 558 "category 559 ] 560 } 562 4. Acknowledgements 564 The authors wish to thank all the MISP community who are supporting 565 the creation of open standards in threat intelligence sharing. 567 5. References 569 5.1. Normative References 571 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 572 Requirement Levels", BCP 14, RFC 2119, 573 DOI 10.17487/RFC2119, March 1997, 574 . 576 [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally 577 Unique IDentifier (UUID) URN Namespace", RFC 4122, 578 DOI 10.17487/RFC4122, July 2005, 579 . 581 [RFC4627] Crockford, D., "The application/json Media Type for 582 JavaScript Object Notation (JSON)", RFC 4627, 583 DOI 10.17487/RFC4627, July 2006, 584 . 586 5.2. Informative References 588 [CFR] CFR, "Cyber Operations Tracker - Council on Foreign 589 Relations", 2018, 590 . 592 [JSON-SCHEMA] 593 "JSON Schema: A Media Type for Describing JSON Documents", 594 2016, 595 . 597 [MISP-G] MISP, "MISP Galaxy - Public Repository", 598 . 600 [MISP-G-DOC] 601 MISP, "MISP Galaxy - Documentation of the Public 602 Repository", . 604 [MISP-P] MISP, "MISP Project - Malware Information Sharing Platform 605 and Threat Sharing", . 607 [MISP-R] MISP, "MISP Object Relationship Types - common vocabulary 608 of relationships", . 611 Authors' Addresses 613 Alexandre Dulaunoy 614 Computer Incident Response Center Luxembourg 615 16, bd d'Avranches 616 Luxembourg L-1611 617 Luxembourg 619 Phone: +352 247 88444 620 Email: alexandre.dulaunoy@circl.lu 622 Andras Iklody 623 Computer Incident Response Center Luxembourg 624 16, bd d'Avranches 625 Luxembourg L-1611 626 Luxembourg 628 Phone: +352 247 88444 629 Email: andras.iklody@circl.lu 630 Deborah Servili 631 Computer Incident Response Center Luxembourg 632 16, bd d'Avranches 633 Luxembourg L-1611 634 Luxembourg 636 Phone: +352 247 88444 637 Email: deborah.servili@circl.lu