Deborah Servili 2019-03-11 16:16:38 +01:00
commit 19a123d38c
17 changed files with 2916 additions and 577 deletions

View File

@ -1,17 +1,17 @@
# MISP standards
# MISP standards and RFCs
This repository is the official source of the specification and formats used in the MISP project.
The formats are described to support other implementations which reuse the format and ensuring an interoperability
with existing MISP software and other Threat Intelligence Platforms.
with existing MISP software, other Threat Intelligence Platforms and security tools at large.
All the formats can be freely reused by everyone.
## MISP Formats in use and implemented in multiple software
* [misp-core-format](misp-core-format/raw.md.txt) ([markdown source](misp-core-format/raw.md)) which describes the core JSON format of MISP. Current Internet-Draft: [04](https://tools.ietf.org/html/draft-dulaunoy-misp-core-format)
* [misp-taxonomy-format](misp-taxonomy-format/raw.md.txt) ([markdown source](misp-taxonomy-format/raw.md)) which describes the taxonomy JSON format of MISP. Current Internet-Draft: [05](https://tools.ietf.org/html/draft-dulaunoy-misp-taxonomy-format)
* [misp-galaxy-format](misp-galaxy-format/raw.md.txt) which describes the [galaxy](https://github.com/MISP/misp-galaxy) template format used to expand the threat actor modelling of MISP. Current Internet-Draft: [04](https://datatracker.ietf.org/doc/draft-dulaunoy-misp-galaxy-format/)
* [misp-core-format](misp-core-format/raw.md.txt) ([markdown source](misp-core-format/raw.md)) which describes the core JSON format of MISP. Current Internet-Draft: [07](https://tools.ietf.org/html/draft-dulaunoy-misp-core-format)
* [misp-taxonomy-format](misp-taxonomy-format/raw.md.txt) ([markdown source](misp-taxonomy-format/raw.md)) which describes the taxonomy JSON format of MISP. Current Internet-Draft: [06](https://tools.ietf.org/html/draft-dulaunoy-misp-taxonomy-format)
* [misp-galaxy-format](misp-galaxy-format/raw.md.txt) which describes the [galaxy](https://github.com/MISP/misp-galaxy) template format used to expand the threat actor modelling of MISP. Current Internet-Draft: [05](https://datatracker.ietf.org/doc/draft-dulaunoy-misp-galaxy-format/)
* [misp-object-template-format](misp-object-template-format/raw.md.txt) which describes the [object](https://github.com/MISP/misp-objects) template format to add combinedand composite object to the MISP core format. Current Internet-Draft: [01](https://datatracker.ietf.org/doc/draft-dulaunoy-misp-object-template-format/)
## MISP Format in design phase and implemented in at least one software prototype
@ -30,7 +30,21 @@ If you want to see how a threat intelligence can be easily expressed in MISP sta
[Installing MISP](https://www.misp-project.org/download/) is also another option to see the MISP standards in action. The MISP standards are actively used in the MISP threat intelligence platform to support the complete chain from intelligence creation, sharing, distribution and synchronisation.
## Building the RFCs
These RFCs use [mmark](https://mmark.nl/) to generate - get a release [from the Github Repo](https://github.com/miekg/mmark/releases) and make sure it's in your PATH.
You'll also need `xml2rfc` - install using `sudo pip3 isntall xml2rfc`
```bash
for directory in $(find . -type d -iname "misp*"); do;
echo "Building $directory...";
cd $directory;
make;
cd ..;
done;
```
# Contribution
If you want to contribute to the MISP specifications, feel free to [open an issue](https://github.com/MISP/misp-rfc/issues).

View File

@ -1,4 +1,4 @@
MMARK:=/home/adulau/git/mmark/mmark/mmark -xml2 -page
MMARK:=mmark -xml2 -page
docs = $(wildcard *.md)
@ -6,4 +6,3 @@ all: $(docs)
$(MMARK) $< > $<.xml
xml2rfc --text $<.xml
xml2rfc --html $<.xml

View File

@ -306,52 +306,52 @@ type represents the means through which an attribute tries to describe the inten
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
: link, comment, text, hex, attachment, other, anonymised
**Artifacts dropped**
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, 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, mime-type
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, 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, mime-type, anonymised
**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
: 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
**External analysis**
: md5, sha1, sha256, filename, filename|md5, filename|sha1, filename|sha256, 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, pattern-in-file, pattern-in-traffic, pattern-in-memory, vulnerability, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, github-repository, other, cortex
: md5, sha1, sha256, filename, filename|md5, filename|sha1, filename|sha256, 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, vulnerability, 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
**Financial fraud**
: btc, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-number, prtn, phone-number, comment, text, other, hex
: btc, 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
: text, link, comment, other, hex, anonymised
**Network activity**
: ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email-dst, url, uri, user-agent, http-method, AS, snort, pattern-in-file, stix2-pattern, pattern-in-traffic, attachment, comment, text, x509-fingerprint-sha1, other, hex, cookie, hostname|port, bro
: ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email-dst, url, uri, user-agent, http-method, AS, snort, pattern-in-file, 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
**Other**
: comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean
: comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean, anonymised
**Payload delivery**
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, pehash, tlsh, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, 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-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, 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, whois-registrant-email
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, 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-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, 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, whois-registrant-email, anonymised
**Payload installation**
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, pehash, tlsh, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, stix2-pattern, yara, sigma, vulnerability, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, other, mime-type
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, stix2-pattern, yara, sigma, vulnerability, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, other, mime-type, anonymised
**Payload type**
: comment, text, other
: comment, text, other, anonymised
**Persistence mechanism**
: filename, regkey, regkey|value, comment, text, other, hex
: 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
: 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
**Social network**
: github-username, github-repository, github-organisation, jabber-id, twitter-id, email-src, email-dst, comment, text, other, whois-registrant-email
: github-username, github-repository, github-organisation, jabber-id, twitter-id, email-src, email-dst, comment, text, other, whois-registrant-email, anonymised
**Support Tool**
: link, text, attachment, comment, other, hex
: link, text, attachment, comment, other, hex, anonymised
**Targeting data**
: target-user, target-email, target-machine, target-org, target-location, target-external, comment
: 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.
@ -502,52 +502,52 @@ type represents the means through which an attribute tries to describe the inten
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
: link, comment, text, hex, attachment, other, anonymised
**Artifacts dropped**
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, 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, mime-type
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, regkey, regkey|value, pattern-in-file, pattern-in-memory, 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, mime-type, anonymised
**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
: 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
**External analysis**
: md5, sha1, sha256, filename, filename|md5, filename|sha1, filename|sha256, 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, pattern-in-file, pattern-in-traffic, pattern-in-memory, vulnerability, attachment, malware-sample, link, comment, text, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, github-repository, other, cortex
: md5, sha1, sha256, filename, filename|md5, filename|sha1, filename|sha256, 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, vulnerability, 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
**Financial fraud**
: btc, xmr, iban, bic, bank-account-nr, aba-rtn, bin, cc-number, prtn, phone-number, comment, text, other, hex
: btc, 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
: text, link, comment, other, hex, anonymised
**Network activity**
: ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email-dst, url, uri, user-agent, http-method, AS, snort, pattern-in-file, stix2-pattern, pattern-in-traffic, attachment, comment, text, x509-fingerprint-sha1, other, hex, cookie, hostname|port, bro
: ip-src, ip-dst, ip-dst|port, ip-src|port, port, hostname, domain, domain|ip, mac-address, mac-eui-64, email-dst, url, uri, user-agent, http-method, AS, snort, pattern-in-file, 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
**Other**
: comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean
: comment, text, other, size-in-bytes, counter, datetime, cpe, port, float, hex, phone-number, boolean, anonymised
**Payload delivery**
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, pehash, tlsh, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, 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-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, 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, whois-registrant-email
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, 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-src, email-dst, email-subject, email-attachment, email-body, url, user-agent, AS, pattern-in-file, pattern-in-traffic, stix2-pattern, yara, sigma, mime-type, attachment, malware-sample, link, malware-type, comment, text, hex, vulnerability, 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, whois-registrant-email, anonymised
**Payload installation**
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, pehash, tlsh, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, stix2-pattern, yara, sigma, vulnerability, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, other, mime-type
: md5, sha1, sha224, sha256, sha384, sha512, sha512/224, sha512/256, ssdeep, imphash, impfuzzy, authentihash, pehash, tlsh, cdhash, filename, filename|md5, filename|sha1, filename|sha224, filename|sha256, filename|sha384, filename|sha512, filename|sha512/224, filename|sha512/256, filename|authentihash, filename|ssdeep, filename|tlsh, filename|imphash, filename|impfuzzy, filename|pehash, pattern-in-file, pattern-in-traffic, pattern-in-memory, stix2-pattern, yara, sigma, vulnerability, attachment, malware-sample, malware-type, comment, text, hex, x509-fingerprint-sha1, x509-fingerprint-md5, x509-fingerprint-sha256, mobile-application-id, other, mime-type, anonymised
**Payload type**
: comment, text, other
: comment, text, other, anonymised
**Persistence mechanism**
: filename, regkey, regkey|value, comment, text, other, hex
: 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
: 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
**Social network**
: github-username, github-repository, github-organisation, jabber-id, twitter-id, email-src, email-dst, comment, text, other, whois-registrant-email
: github-username, github-repository, github-organisation, jabber-id, twitter-id, email-src, email-dst, comment, text, other, whois-registrant-email, anonymised
**Support Tool**
: link, text, attachment, comment, other, hex
: link, text, attachment, comment, other, hex, anonymised
**Targeting data**
: target-user, target-email, target-machine, target-org, target-location, target-external, comment
: 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.
@ -1822,7 +1822,7 @@ 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.
# Sample MISP file
# References
<reference anchor='MISP-P' target='https://github.com/MISP'>

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
MMARK:=/home/adulau/git/mmark/mmark/mmark -xml2 -page
MMARK:=mmark -xml2 -page
docs = $(wildcard *.md)

View File

@ -78,9 +78,9 @@ Clusters are represented as a JSON [@!RFC4627] dictionary.
## Overview
The MISP galaxy format uses the JSON [@!RFC4627] format. Each galaxy is represented as a JSON object with meta information including the following fields: name, uuid, description, version, type, authors, source, values.
The MISP galaxy format uses the JSON [@!RFC4627] format. Each galaxy is represented as a JSON object with meta information including the following fields: name, uuid, description, version, type, authors, source, values, category.
name defines the name of the galaxy. The name is represented as a string and **MUST** be present. The 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 and **MUST** be present. The description is represented as a string and **MUST** be present. The uuid is represented as a string and **MUST** be present. The version is represented as a decimal and **MUST** be present. The type is represented as a string and **MUST** be present and **MUST** match the name of the galaxy file. The source is represented as a string and **MUST** be present. Authors are represented as an array containing one or more authors and **MUST** be present.
name defines the name of the galaxy. The name is represented as a string and **MUST** be present. The 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 and **MUST** be present. The description is represented as a string and **MUST** be present. The uuid is represented as a string and **MUST** be present. The version is represented as a decimal and **MUST** be present. The type is represented as a string and **MUST** be present and **MUST** match the name of the galaxy file. The source is represented as a string and **MUST** be present. Authors are represented as an array containing one or more authors and **MUST** be present. The category is represented as a string and **MUST** be present and describes the overall category of the galaxy such as tool or actor.
Values are represented as an array containing one or more values and **MUST** be present. Values defines all values available in the galaxy.
@ -232,6 +232,51 @@ attribution-confidence **MAY** be used to indicte the confidence about an attrib
The JSON Schema [@?JSON-SCHEMA] below defines the overall MISP galaxy formats. The main format is the MISP galaxy format used for the clusters.
## MISP galaxy format - galaxy
~~~~
{
"$schema": "http://json-schema.org/schema#",
"title": "Validator for misp-galaxies - Galaxies",
"id": "https://www.github.com/MISP/misp-galaxies/schema_galaxies.json",
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"type": {
"type": "string"
},
"version": {
"type": "integer"
},
"name": {
"type": "string"
},
"icon": {
"type": "string"
},
"uuid": {
"type": "string"
},
"namespace": {
"type": "string"
},
"kill_chain_order": {
"type": "object"
}
},
"required": [
"description",
"type",
"version",
"name",
"uuid"
]
}
~~~~
## MISP galaxy format - clusters
~~~~
@ -260,6 +305,9 @@ The JSON Schema [@?JSON-SCHEMA] below defines the overall MISP galaxy formats. T
"source": {
"type": "string"
},
"category": {
"type": "string
},
"values": {
"type": "array",
"uniqueItems": true,
@ -391,7 +439,8 @@ The JSON Schema [@?JSON-SCHEMA] below defines the overall MISP galaxy formats. T
"uuid",
"values",
"authors",
"source"
"source",
"category
]
}
~~~~

View File

@ -5,8 +5,8 @@
Network Working Group A. Dulaunoy
Internet-Draft A. Iklody
Intended status: Informational D. Servili
Expires: October 3, 2018 CIRCL
April 1, 2018
Expires: March 24, 2019 CIRCL
September 20, 2018
MISP galaxy format
@ -38,7 +38,7 @@ 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 October 3, 2018.
This Internet-Draft will expire on March 24, 2019.
Copyright Notice
@ -53,9 +53,9 @@ Copyright Notice
Dulaunoy, et al. Expires October 3, 2018 [Page 1]
Dulaunoy, et al. Expires March 24, 2019 [Page 1]
Internet-Draft MISP galaxy format April 2018
Internet-Draft MISP galaxy format September 2018
to this document. Code Components extracted from this document must
@ -73,7 +73,7 @@ Table of Contents
2.3. related . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4. meta . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. JSON Schema . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1. MISP galaxy format - clusters . . . . . . . . . . . . . . 7
3.1. MISP galaxy format - clusters . . . . . . . . . . . . . . 8
4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
5. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.1. Normative References . . . . . . . . . . . . . . . . . . 11
@ -109,9 +109,9 @@ Table of Contents
Dulaunoy, et al. Expires October 3, 2018 [Page 2]
Dulaunoy, et al. Expires March 24, 2019 [Page 2]
Internet-Draft MISP galaxy format April 2018
Internet-Draft MISP galaxy format September 2018
2. Format
@ -165,9 +165,9 @@ Internet-Draft MISP galaxy format April 2018
Dulaunoy, et al. Expires October 3, 2018 [Page 3]
Dulaunoy, et al. Expires March 24, 2019 [Page 3]
Internet-Draft MISP galaxy format April 2018
Internet-Draft MISP galaxy format September 2018
present. The type is represented as a string and MUST be present and
@ -187,15 +187,17 @@ Internet-Draft MISP galaxy format April 2018
2.4. meta
Meta contains a list of custom defined JSON key value pairs. Users
SHOULD reuse commonly used keys such as properties, complexity,
effectiveness, country, possible_issues, colour, motive, impact,
refs, synonyms, status, date, encryption, extensions, ransomnotes,
cfr-suspected-victims, cfr-suspected-state-sponsor, cfr-type-of-
incident, cfr-target-category wherever applicable.
SHOULD reuse commonly used keys such as complexity, effectiveness,
country, possible_issues, colour, motive, impact, refs, synonyms,
status, date, encryption, extensions, ransomnotes, suspected-victims,
suspected-state-sponsor, type-of-incident, target-category, cfr-
suspected-victims, cfr-suspected-state-sponsor, cfr-type-of-incident,
cfr-target-category wherever applicable.
properties is used to provide clusters with additional properties.
Properties are represented as an array containing one or more strings
ans MAY be present.
refs, synonyms SHALL be used to give further informations. refs is
represented as an array containing one or more strings and SHALL be
present. synonyms is represented as an array containing one or more
strings and SHALL be present.
date, status MAY be used to give time information about an cluster.
date is represented as a string describing a time or period and SHALL
@ -216,16 +218,17 @@ Internet-Draft MISP galaxy format April 2018
enumerated value from a fixed vocabulary and SHALL be present.
possible_issues is represented as a string and SHOULD be present.
Dulaunoy, et al. Expires March 24, 2019 [Page 4]
Internet-Draft MISP galaxy format September 2018
Example use of the complexity, effectiveness, impact, possible_issues
fields in the preventive-measure galaxy:
Dulaunoy, et al. Expires October 3, 2018 [Page 4]
Internet-Draft MISP galaxy format April 2018
{
"meta": {
"refs": [
@ -271,17 +274,16 @@ Internet-Draft MISP galaxy format April 2018
encryption, extensions, ransomnotes MAY be used to give further
information in ransomware galaxy. encryption is represented as a
Dulaunoy, et al. Expires March 24, 2019 [Page 5]
Internet-Draft MISP galaxy format September 2018
string and SHALL be present. extensions is represented as an array
containing one or more strings and SHALL be present. ransomnotes is
Dulaunoy, et al. Expires October 3, 2018 [Page 5]
Internet-Draft MISP galaxy format April 2018
represented as an array containing one or more strings ans SHALL be
present.
@ -327,23 +329,28 @@ Internet-Draft MISP galaxy format April 2018
"value": "menuPass (G0045) uses EvilGrab (S0152)"
}
Dulaunoy, et al. Expires March 24, 2019 [Page 6]
Internet-Draft MISP galaxy format September 2018
cfr-suspected-victims, cfr-suspected-state-sponsor, cfr-type-of-
incident and cfr-target-category MAY be used to report information
gathered from CFR's (Council on Foreign Relations) [CFR] Cyber
Dulaunoy, et al. Expires October 3, 2018 [Page 6]
Internet-Draft MISP galaxy format April 2018
Operations Tracker. cfr-suspected-victims is represented as an array
containing one or more strings and SHALL be present. cfr-suspected-
state-sponsor is represented as a string and SHALL be present. cfr-
type-of-incident is represented as a string and SHALL be present.
cfr-target-category is represented as an array containing one or more
strings ans SHALL be present.
type-of-incident is represented as a string or an array and SHALL be
present. RECOMMENDED but not exhaustive list of possible values for
cfr-type-of-incident includes "Espionage", "Denial of service",
"Sabotage". cfr-target-category is represented as an array containing
one or more strings ans SHALL be present. RECOMMENDED but not
exhaustive list of possible values for cfr-target-category includes
"Private sector", "Government", "Civil society", "Military".
Example use of the cfr-suspected-victims, cfr-suspected-state-
sponsor, cfr-type-of-incident, cfr-target-category fields in the
@ -376,6 +383,17 @@ Internet-Draft MISP galaxy format April 2018
formats. The main format is the MISP galaxy format used for the
clusters.
Dulaunoy, et al. Expires March 24, 2019 [Page 7]
Internet-Draft MISP galaxy format September 2018
3.1. MISP galaxy format - clusters
{
@ -386,14 +404,6 @@ Internet-Draft MISP galaxy format April 2018
"additionalProperties": false,
"properties": {
"description": {
Dulaunoy, et al. Expires October 3, 2018 [Page 7]
Internet-Draft MISP galaxy format April 2018
"type": "string"
},
"type": {
@ -432,6 +442,14 @@ Internet-Draft MISP galaxy format April 2018
"additionalProperties": false,
"items": {
"type": "object"
Dulaunoy, et al. Expires March 24, 2019 [Page 8]
Internet-Draft MISP galaxy format September 2018
},
"properties": {
"dest-uuid": {
@ -442,14 +460,6 @@ Internet-Draft MISP galaxy format April 2018
},
"tags": {
"type": "array",
Dulaunoy, et al. Expires October 3, 2018 [Page 8]
Internet-Draft MISP galaxy format April 2018
"uniqueItems": true,
"items": {
"type": "string"
@ -488,6 +498,14 @@ Internet-Draft MISP galaxy format April 2018
},
"impact": {
"type": "string"
Dulaunoy, et al. Expires March 24, 2019 [Page 9]
Internet-Draft MISP galaxy format September 2018
},
"refs": {
"type": "array",
@ -498,14 +516,6 @@ Internet-Draft MISP galaxy format April 2018
},
"synonyms": {
"type": "array",
Dulaunoy, et al. Expires October 3, 2018 [Page 9]
Internet-Draft MISP galaxy format April 2018
"uniqueItems": true,
"items": {
"type": "string"
@ -544,6 +554,14 @@ Internet-Draft MISP galaxy format April 2018
},
"authors": {
"type": "array",
Dulaunoy, et al. Expires March 24, 2019 [Page 10]
Internet-Draft MISP galaxy format September 2018
"uniqueItems": true,
"items": {
"type": "string"
@ -554,14 +572,6 @@ Internet-Draft MISP galaxy format April 2018
"description",
"type",
"version",
Dulaunoy, et al. Expires October 3, 2018 [Page 10]
Internet-Draft MISP galaxy format April 2018
"name",
"uuid",
"values",
@ -600,6 +610,14 @@ Internet-Draft MISP galaxy format April 2018
Relations", 2018,
<https://www.cfr.org/interactive/cyber-operations>.
Dulaunoy, et al. Expires March 24, 2019 [Page 11]
Internet-Draft MISP galaxy format September 2018
[JSON-SCHEMA]
"JSON Schema: A Media Type for Describing JSON Documents",
2016,
@ -608,16 +626,6 @@ Internet-Draft MISP galaxy format April 2018
[MISP-G] MISP, "MISP Galaxy - Public Repository",
<https://github.com/MISP/misp-galaxy>.
Dulaunoy, et al. Expires October 3, 2018 [Page 11]
Internet-Draft MISP galaxy format April 2018
[MISP-G-DOC]
MISP, "MISP Galaxy - Documentation of the Public
Repository", <https://www.misp-project.org/galaxy.html>.
@ -651,6 +659,21 @@ Authors' Addresses
Email: andras.iklody@circl.lu
Dulaunoy, et al. Expires March 24, 2019 [Page 12]
Internet-Draft MISP galaxy format September 2018
Deborah Servili
Computer Incident Response Center Luxembourg
16, bd d'Avranches
@ -669,4 +692,37 @@ Authors' Addresses
Dulaunoy, et al. Expires October 3, 2018 [Page 12]
Dulaunoy, et al. Expires March 24, 2019 [Page 13]

View File

@ -1,4 +1,4 @@
MMARK:=/home/adulau/git/mmark/mmark/mmark -xml2 -page
MMARK:=mmark -xml2 -page
docs = $(wildcard *.md)

View File

@ -313,7 +313,7 @@ format is represented by a JSON list containing a list of formats that the relat
The MISP object template directory is publicly available [@?MISP-O] in a git repository. The repository contains an objects directory, which contains a directory per object type, containing a file named definition.json which contains the definition of the object template in the above described format.
A relationships directory is also included, containing a definition.json file which contains a list of MISP object relation definitions
A relationships directory is also included, containing a definition.json file which contains a list of MISP object relation definitions. There are more than 90 existing templates object documented in [@?MISP-O-DOC].
# Acknowledgements
@ -344,5 +344,13 @@ of open standards in threat intelligence sharing.
</front>
</reference>
<reference anchor='MISP-O-DOC' target='https://www.misp-project.org/objects.html'>
<front>
<title>MISP objects directory</title>
<author initials='' surname='' fullname='MISP community'></author>
<date year="2018"></date>
</front>
</reference>
{backmatter}

View File

@ -0,0 +1,9 @@
MMARK:=mmark -xml2 -page
docs = $(wildcard *.md)
all: $(docs)
$(MMARK) $< > $<.xml
xml2rfc --text $<.xml
xml2rfc --html $<.xml

258
misp-query-format/raw.md Executable file
View File

@ -0,0 +1,258 @@
% Title = "MISP query format"
% abbrev = "MISP query format"
% category = "info"
% docName = "draft-dulaunoy-misp-core-format"
% ipr= "trust200902"
% area = "Security"
%
% date = 2018-10-08T00:00:00Z
%
% [[author]]
% initials="A."
% surname="Dulaunoy"
% fullname="Alexandre Dulaunoy"
% abbrev="CIRCL"
% organization = "Computer Incident Response Center Luxembourg"
% [author.address]
% email = "alexandre.dulaunoy@circl.lu"
% phone = "+352 247 88444"
% [author.address.postal]
% street = "16, bd d'Avranches"
% city = "Luxembourg"
% code = "L-1160"
% country = "Luxembourg"
% [[author]]
% initials="A."
% surname="Iklody"
% fullname="Andras Iklody"
% abbrev="CIRCL"
% organization = "Computer Incident Response Center Luxembourg"
% [author.address]
% email = "andras.iklody@circl.lu"
% phone = "+352 247 88444"
% [author.address.postal]
% street = "16, bd d'Avranches"
% city = "Luxembourg"
% code = "L-1160"
% country = "Luxembourg"
.# Abstract
This document describes the MISP query format used to search MISP (Malware Information and threat Sharing Platform) [@?MISP-P] threat intelligence instances.
MISP query format is a simple format used to query MISP instances over a REST (Representational State Transfer ) interface.
The query format includes the JSON format to describe the query and the minimal API access to perform the query. The JSON format includes the overall structure along with the semantic associated for each respective key. The goal of the format is to query MISP threat intelligence instances can feed and integrate with network security devices (such as firewall, network intrusion detection system, routers, SIEMs), endpoint security devices or monitoring devices.
{mainmatter}
# Introduction
Sharing threat information became a fundamental requirements in the Internet, security and intelligence community at large. Threat
information can include indicators of compromise, malicious file indicators, financial fraud indicators
or even detailed information about a threat actor. MISP [@?MISP-P] started as an open source project in late 2011 and
the MISP format started to be widely used as an exchange format within the community in the past years. The core format
is described in an Internet-Draft as misp-core-format [@?MISP-C] and contain the standard MISP JSON format used for threat
intelligence.
The aim of this document is to describe the specification of the MISP query format and how the query can be perform against a REST interface.
## 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].
# Format
## Overview
The MISP query format is in the JSON [@!RFC4627] format.
## query format criteria
### returnFormat
returnFormat **MUST** be present. returnFormat sets the type of output format. MISP allows multiple format (depending of the configuration):
| value | Description |
|---------------|:-------------------------------------------------------------------------:|
| json | MISP JSON core format as described in [@?MISP-C] |
| xml | MISP XML format |
| openioc | OpenIOC format |
| suricata | Suricata NIDS format |
| snort | Snort NIDS format |
| csv | CSV format |
| rpz | Response policy zone format |
| text | Raw value list format |
| cache | MISP cache format (hashed values of attributes) |
### limit
limit **MAY** be present. If present, the page parameter **MUST** also be supplied. limit sets the number of returned elements when paginating, depending on the scope of the request (x number of attributes or x number of events) as converted into the output format.
### page
page **MAY** be present. If present, the page parameter **MUST** also be supplied. page generates the offset for the pagination and will return a result set consisting of a slice of the query results starting with offset (limit * page) + 1 and ending with (limit * (page+1)).
### value
value **MAY** be present. If set, the returned data set will be filtered on the attribute value field. value **MUST** be a string or a sub-string, the latter of which starts with, ends with or is encapsulated in wildcard (\%) characters.
### type
type **MAY** be present. If set, the returned data set will be filtered on the attribute type field. type **MUST** be a string or a sub-string, the latter of which starts with, ends with or is encapsulated in wildcard (\%) characters. The list of valid attribute types is described in the MISP core format [@?MISP-C] in the attribute type section.
### category
category **MAY** be present. If set, the returned data set will be filtered on the attribute category field. category **MUST** be a string or a sub-string, the latter of which starts with, ends with or is encapsulated in wildcard (\%) characters. The list of valid categories is described in the MISP core format [@?MISP-C] in the attribute type section.
A sample query to lookup for the last 30 days of indicators in the `Financial fraud` category and output in CSV format:
~~~~
{
"returnFormat": "csv",
"last": "30d",
"category": "Financial fraud"
}
~~~~
### org
org **MAY** be present. If set, the returned data set will be filtered by the organisation identifier (local ID of the instance). org **MUST** be the identifier of the organisation in a string format.
### tags
tags **MAY** be present. If set, the returned data set will be filtered by tags. tags **MUST** be a string or a sub-string, the latter of which starts with, ends with or is encapsulated in wildcard (\%) characters.
~~~~
{
"returnFormat": "cache",
"limit": "100",
"tags": ["tlp:red", "%private%"]
}
~~~~
### quickfilter
### from
from **MAY** be present. If set, the returned data set will be filtered from a starting date. from **MUST** be a string represented in the format year-month-date.
~~~~
{
"returnFormat": "json",
"limit": "100",
"tags": ["tlp:amber"],
"from": "2018-09-02",
"to": "2018-10-01"
}
~~~~
### to
to **MAY** be present. If set, the returned data set will be filtered until the specified date. from **MUST** be a string represented in the format year-month-date.
### last
last **MAY** be present. If set, the returned data set will be filtered in the number of days, hours or minutes defined (such as 5d, 12h or 30m). last **MUST** be a string represented in the format expressing days, hours or minutes.
### eventid
eventid **MAY** be present. If set, the returned data set will be filtered to a specific event. eventid **MUST** be a string representing the event id as an integer.
~~~~
{
"returnFormat": "json",
"eventid": 1
}
~~~~
### withAttachments
withAttachments **MAY** be present. If set to True (1), the returned data set will include the attachment(s) matching the query. withAttachments **MUST** be an integer set as 1 (True) to include the attachment(s). If not, the attachment(s) won't be included in the results.
### uuid
### publish_timestamp
### timestamp
### published
### enforceWarninglist
### to_ids
### deleted
### includeEventUuid
### event_timestamp
### sgReferenceOnly
### eventinfo
### searchall
### requested_attributes
### includeContext
# Security Considerations
MISP threat intelligence instances might contain sensitive or confidential information. Adequate access control and encryption measures shall be implemented to ensure the confidentiality of the threat intelligence.
Adversaries might include malicious content in MISP queries. Implementation **MUST** consider the input of malicious inputs beside the
standard threat information that might already include malicious intended inputs.
# Acknowledgements
The authors wish to thank all the MISP community who are supporting the creation
of open standards in threat intelligence sharing. A special thank to all the committees which
triggered us to come with better and flexible format.
<reference anchor='MISP-P' target='https://github.com/MISP'>
<front>
<title>MISP Project - Malware Information Sharing Platform and Threat Sharing</title>
<author initials='' surname='MISP' fullname='MISP Community'></author>
<date></date>
</front>
</reference>
<reference anchor='MISP-C' target='https://tools.ietf.org/html/draft-dulaunoy-misp-core-format'>
<front>
<title>MISP core format</title>
<author initials='' surname='MISP' fullname='MISP Community'></author>
<date></date>
</front>
</reference>
<reference anchor='MISP-T' target='https://github.com/MISP/misp-taxonomies'>
<front>
<title>MISP Taxonomies - shared and common vocabularies of tags</title>
<author initials='' surname='MISP' fullname='MISP Community'></author>
<date></date>
</front>
</reference>
<reference anchor='MISP-R' target='https://github.com/MISP/misp-objects/tree/master/relationships'>
<front>
<title>MISP Object Relationship Types - common vocabulary of relationships</title>
<author initials='' surname='MISP' fullname='MISP Community'></author>
<date></date>
</front>
</reference>
<reference anchor='JSON-SCHEMA' target='https://tools.ietf.org/html/draft-wright-json-schema'>
<front>
<title>JSON Schema: A Media Type for Describing JSON Documents</title>
<author initials='' surname='' fullname='Austin Wright'></author>
<date year="2016"></date>
</front>
</reference>
{backmatter}

View File

@ -0,0 +1,673 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head profile="http://www.w3.org/2006/03/hcard http://dublincore.org/documents/2008/08/04/dc-html/">
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
<title>MISP query format</title>
<style type="text/css" title="Xml2Rfc (sans serif)">
/*<![CDATA[*/
a {
text-decoration: none;
}
/* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
a.info {
/* This is the key. */
position: relative;
z-index: 24;
text-decoration: none;
}
a.info:hover {
z-index: 25;
color: #FFF; background-color: #900;
}
a.info span { display: none; }
a.info:hover span.info {
/* The span will display just on :hover state. */
display: block;
position: absolute;
font-size: smaller;
top: 2em; left: -5em; width: 15em;
padding: 2px; border: 1px solid #333;
color: #900; background-color: #EEE;
text-align: left;
}
a.smpl {
color: black;
}
a:hover {
text-decoration: underline;
}
a:active {
text-decoration: underline;
}
address {
margin-top: 1em;
margin-left: 2em;
font-style: normal;
}
body {
color: black;
font-family: verdana, helvetica, arial, sans-serif;
font-size: 10pt;
max-width: 55em;
}
cite {
font-style: normal;
}
dd {
margin-right: 2em;
}
dl {
margin-left: 2em;
}
ul.empty {
list-style-type: none;
}
ul.empty li {
margin-top: .5em;
}
dl p {
margin-left: 0em;
}
dt {
margin-top: .5em;
}
h1 {
font-size: 14pt;
line-height: 21pt;
page-break-after: avoid;
}
h1.np {
page-break-before: always;
}
h1 a {
color: #333333;
}
h2 {
font-size: 12pt;
line-height: 15pt;
page-break-after: avoid;
}
h3, h4, h5, h6 {
font-size: 10pt;
page-break-after: avoid;
}
h2 a, h3 a, h4 a, h5 a, h6 a {
color: black;
}
img {
margin-left: 3em;
}
li {
margin-left: 2em;
margin-right: 2em;
}
ol {
margin-left: 2em;
margin-right: 2em;
}
ol p {
margin-left: 0em;
}
p {
margin-left: 2em;
margin-right: 2em;
}
pre {
margin-left: 3em;
background-color: lightyellow;
padding: .25em;
}
pre.text2 {
border-style: dotted;
border-width: 1px;
background-color: #f0f0f0;
width: 69em;
}
pre.inline {
background-color: white;
padding: 0em;
}
pre.text {
border-style: dotted;
border-width: 1px;
background-color: #f8f8f8;
width: 69em;
}
pre.drawing {
border-style: solid;
border-width: 1px;
background-color: #f8f8f8;
padding: 2em;
}
table {
margin-left: 2em;
}
table.tt {
vertical-align: top;
}
table.full {
border-style: outset;
border-width: 1px;
}
table.headers {
border-style: outset;
border-width: 1px;
}
table.tt td {
vertical-align: top;
}
table.full td {
border-style: inset;
border-width: 1px;
}
table.tt th {
vertical-align: top;
}
table.full th {
border-style: inset;
border-width: 1px;
}
table.headers th {
border-style: none none inset none;
border-width: 1px;
}
table.left {
margin-right: auto;
}
table.right {
margin-left: auto;
}
table.center {
margin-left: auto;
margin-right: auto;
}
caption {
caption-side: bottom;
font-weight: bold;
font-size: 9pt;
margin-top: .5em;
}
table.header {
border-spacing: 1px;
width: 95%;
font-size: 10pt;
color: white;
}
td.top {
vertical-align: top;
}
td.topnowrap {
vertical-align: top;
white-space: nowrap;
}
table.header td {
background-color: gray;
width: 50%;
}
table.header a {
color: white;
}
td.reference {
vertical-align: top;
white-space: nowrap;
padding-right: 1em;
}
thead {
display:table-header-group;
}
ul.toc, ul.toc ul {
list-style: none;
margin-left: 1.5em;
margin-right: 0em;
padding-left: 0em;
}
ul.toc li {
line-height: 150%;
font-weight: bold;
font-size: 10pt;
margin-left: 0em;
margin-right: 0em;
}
ul.toc li li {
line-height: normal;
font-weight: normal;
font-size: 9pt;
margin-left: 0em;
margin-right: 0em;
}
li.excluded {
font-size: 0pt;
}
ul p {
margin-left: 0em;
}
.comment {
background-color: yellow;
}
.center {
text-align: center;
}
.error {
color: red;
font-style: italic;
font-weight: bold;
}
.figure {
font-weight: bold;
text-align: center;
font-size: 9pt;
}
.filename {
color: #333333;
font-weight: bold;
font-size: 12pt;
line-height: 21pt;
text-align: center;
}
.fn {
font-weight: bold;
}
.hidden {
display: none;
}
.left {
text-align: left;
}
.right {
text-align: right;
}
.title {
color: #990000;
font-size: 18pt;
line-height: 18pt;
font-weight: bold;
text-align: center;
margin-top: 36pt;
}
.vcardline {
display: block;
}
.warning {
font-size: 14pt;
background-color: yellow;
}
@media print {
.noprint {
display: none;
}
a {
color: black;
text-decoration: none;
}
table.header {
width: 90%;
}
td.header {
width: 50%;
color: black;
background-color: white;
vertical-align: top;
font-size: 12pt;
}
ul.toc a::after {
content: leader('.') target-counter(attr(href), page);
}
ul.ind li li a {
content: target-counter(attr(href), page);
}
.print2col {
column-count: 2;
-moz-column-count: 2;
column-fill: auto;
}
}
@page {
@top-left {
content: "Internet-Draft";
}
@top-right {
content: "December 2010";
}
@top-center {
content: "Abbreviated Title";
}
@bottom-left {
content: "Doe";
}
@bottom-center {
content: "Expires June 2011";
}
@bottom-right {
content: "[Page " counter(page) "]";
}
}
@page:first {
@top-left {
content: normal;
}
@top-right {
content: normal;
}
@top-center {
content: normal;
}
}
/*]]>*/
</style>
<link href="#rfc.toc" rel="Contents">
<link href="#rfc.section.1" rel="Chapter" title="1 Introduction">
<link href="#rfc.section.1.1" rel="Chapter" title="1.1 Conventions and Terminology">
<link href="#rfc.section.2" rel="Chapter" title="2 Format">
<link href="#rfc.section.2.1" rel="Chapter" title="2.1 Overview">
<link href="#rfc.section.2.2" rel="Chapter" title="2.2 query format criteria">
<link href="#rfc.section.2.2.1" rel="Chapter" title="2.2.1 returnFormat">
<link href="#rfc.section.2.2.2" rel="Chapter" title="2.2.2 limit">
<link href="#rfc.section.2.2.3" rel="Chapter" title="2.2.3 page">
<link href="#rfc.section.2.2.4" rel="Chapter" title="2.2.4 value">
<link href="#rfc.section.2.2.5" rel="Chapter" title="2.2.5 type">
<link href="#rfc.section.2.2.6" rel="Chapter" title="2.2.6 category">
<link href="#rfc.section.3" rel="Chapter" title="3 Security Considerations">
<link href="#rfc.section.4" rel="Chapter" title="4 Acknowledgements">
<link href="#rfc.references" rel="Chapter" title="5 References">
<link href="#rfc.references.1" rel="Chapter" title="5.1 Normative References">
<link href="#rfc.references.2" rel="Chapter" title="5.2 Informative References">
<link href="#rfc.authors" rel="Chapter">
<meta name="generator" content="xml2rfc version 2.9.6 - https://tools.ietf.org/tools/xml2rfc" />
<link rel="schema.dct" href="http://purl.org/dc/terms/" />
<meta name="dct.creator" content="Dulaunoy, A. and A. Iklody" />
<meta name="dct.identifier" content="urn:ietf:id:draft-dulaunoy-misp-core-format" />
<meta name="dct.issued" scheme="ISO8601" content="2018-10-08" />
<meta name="dct.abstract" content="This document describes the MISP query format used to search MISP (Malware Information and threat Sharing Platform) " />
<meta name="description" content="This document describes the MISP query format used to search MISP (Malware Information and threat Sharing Platform) " />
</head>
<body>
<table class="header">
<tbody>
<tr>
<td class="left">Network Working Group</td>
<td class="right">A. Dulaunoy</td>
</tr>
<tr>
<td class="left">Internet-Draft</td>
<td class="right">A. Iklody</td>
</tr>
<tr>
<td class="left">Intended status: Informational</td>
<td class="right">CIRCL</td>
</tr>
<tr>
<td class="left">Expires: April 11, 2019</td>
<td class="right">October 8, 2018</td>
</tr>
</tbody>
</table>
<p class="title">MISP query format<br />
<span class="filename">draft-dulaunoy-misp-core-format</span></p>
<h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1>
<p>This document describes the MISP query format used to search MISP (Malware Information and threat Sharing Platform) <a href="#MISP-P" class="xref">[MISP-P]</a> threat intelligence instances. MISP query format is a simple format used to query MISP instances over a REST (Representational State Transfer ) interface. The query format includes the JSON format to describe the query and the minimal API access to perform the query. The JSON format includes the overall structure along with the semantic associated for each respective key. The goal of the format is to query MISP threat intelligence instances can feed and integrate with network security devices (such as firewall, network intrusion detection system, routers, SIEMs), endpoint security devices or monitoring devices. </p>
<h1 id="rfc.status"><a href="#rfc.status">Status of This Memo</a></h1>
<p>This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.</p>
<p>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/.</p>
<p>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."</p>
<p>This Internet-Draft will expire on April 11, 2019.</p>
<h1 id="rfc.copyrightnotice"><a href="#rfc.copyrightnotice">Copyright Notice</a></h1>
<p>Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved.</p>
<p>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.</p>
<hr class="noprint" />
<h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1>
<ul class="toc">
<li>1. <a href="#rfc.section.1">Introduction</a>
</li>
<ul><li>1.1. <a href="#rfc.section.1.1">Conventions and Terminology</a>
</li>
</ul><li>2. <a href="#rfc.section.2">Format</a>
</li>
<ul><li>2.1. <a href="#rfc.section.2.1">Overview</a>
</li>
<li>2.2. <a href="#rfc.section.2.2">query format criteria</a>
</li>
<ul><li>2.2.1. <a href="#rfc.section.2.2.1">returnFormat</a>
</li>
<li>2.2.2. <a href="#rfc.section.2.2.2">limit</a>
</li>
<li>2.2.3. <a href="#rfc.section.2.2.3">page</a>
</li>
<li>2.2.4. <a href="#rfc.section.2.2.4">value</a>
</li>
<li>2.2.5. <a href="#rfc.section.2.2.5">type</a>
</li>
<li>2.2.6. <a href="#rfc.section.2.2.6">category</a>
</li>
</ul></ul><li>3. <a href="#rfc.section.3">Security Considerations</a>
</li>
<li>4. <a href="#rfc.section.4">Acknowledgements</a>
</li>
<li>5. <a href="#rfc.references">References</a>
</li>
<ul><li>5.1. <a href="#rfc.references.1">Normative References</a>
</li>
<li>5.2. <a href="#rfc.references.2">Informative References</a>
</li>
</ul><li><a href="#rfc.authors">Authors' Addresses</a>
</li>
</ul>
<h1 id="rfc.section.1">
<a href="#rfc.section.1">1.</a> <a href="#introduction" id="introduction">Introduction</a>
</h1>
<p id="rfc.section.1.p.1">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 <a href="#MISP-P" class="xref">[MISP-P]</a> started as an open source project in late 2011 and the MISP format started to be widely used as an exchange format within the community in the past years. The core format is described in an Internet-Draft as misp-core-format <a href="#MISP-C" class="xref">[MISP-C]</a> and contain the standard MISP JSON format used for threat intelligence. </p>
<p id="rfc.section.1.p.2">The aim of this document is to describe the specification of the MISP query format and how the query can be perform against a REST interface. </p>
<h1 id="rfc.section.1.1">
<a href="#rfc.section.1.1">1.1.</a> <a href="#conventions-and-terminology" id="conventions-and-terminology">Conventions and Terminology</a>
</h1>
<p id="rfc.section.1.1.p.1">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 <a href="#RFC2119" class="xref">[RFC2119]</a>. </p>
<h1 id="rfc.section.2">
<a href="#rfc.section.2">2.</a> <a href="#format" id="format">Format</a>
</h1>
<h1 id="rfc.section.2.1">
<a href="#rfc.section.2.1">2.1.</a> <a href="#overview" id="overview">Overview</a>
</h1>
<p id="rfc.section.2.1.p.1">The MISP query format is in the JSON <a href="#RFC4627" class="xref">[RFC4627]</a> format. </p>
<h1 id="rfc.section.2.2">
<a href="#rfc.section.2.2">2.2.</a> <a href="#query-format-criteria" id="query-format-criteria">query format criteria</a>
</h1>
<h1 id="rfc.section.2.2.1">
<a href="#rfc.section.2.2.1">2.2.1.</a> <a href="#returnformat" id="returnformat">returnFormat</a>
</h1>
<p id="rfc.section.2.2.1.p.1">returnFormat MUST be present. returnFormat sets the type of output format. MISP allows multiple format (depending of the configuration): </p>
<table cellpadding="3" cellspacing="0" class="tt full center">
<thead><tr>
<th class="center">value</th>
<th class="center">Description</th>
</tr></thead>
<tbody>
<tr>
<td class="center">json</td>
<td class="center">MISP JSON core format as described in <a href="#MISP-C" class="xref">[MISP-C]</a>
</td>
</tr>
<tr>
<td class="center">xml</td>
<td class="center">MISP XML format</td>
</tr>
<tr>
<td class="center">openioc</td>
<td class="center">OpenIOC format</td>
</tr>
<tr>
<td class="center">suricata</td>
<td class="center">Suricata NIDS format</td>
</tr>
<tr>
<td class="center">snort</td>
<td class="center">Snort NIDS format</td>
</tr>
<tr>
<td class="center">csv</td>
<td class="center">CSV format</td>
</tr>
<tr>
<td class="center">rpz</td>
<td class="center">Response policy zone format</td>
</tr>
<tr>
<td class="center">text</td>
<td class="center">Raw value list format</td>
</tr>
</tbody>
</table>
<h1 id="rfc.section.2.2.2">
<a href="#rfc.section.2.2.2">2.2.2.</a> <a href="#limit" id="limit">limit</a>
</h1>
<p id="rfc.section.2.2.2.p.1">limit MAY be present. If present, the page parameter MUST also be supplied. limit sets the number of returned elements when paginating, depending on the scope of the request (x number of attributes or x number of events) as converted into the output format. </p>
<h1 id="rfc.section.2.2.3">
<a href="#rfc.section.2.2.3">2.2.3.</a> <a href="#page" id="page">page</a>
</h1>
<p id="rfc.section.2.2.3.p.1">page MAY be present. If present, the page parameter MUST also be supplied. page generates the offset for the pagination and will return a result set consisting of a slice of the query results starting with offset (limit * page) + 1 and ending with (limit * (page+1)). </p>
<h1 id="rfc.section.2.2.4">
<a href="#rfc.section.2.2.4">2.2.4.</a> <a href="#value" id="value">value</a>
</h1>
<p id="rfc.section.2.2.4.p.1">value MAY be present. If set, the returned data set will be filtered on the attribute value field. value MAY be a string or a sub-string, the latter of which start with, ends with or is encapsulated in wildcard (\%) characters. </p>
<h1 id="rfc.section.2.2.5">
<a href="#rfc.section.2.2.5">2.2.5.</a> <a href="#type" id="type">type</a>
</h1>
<p id="rfc.section.2.2.5.p.1">type MAY be present. If set, the returned data set will be filtered on the attribute type field. type MAY be a string or a sub-string, the latter of which start with, ends with or is encapsulated in wildcard (\%) characters. The list of valid attribute types is described in the MISP core format <a href="#MISP-C" class="xref">[MISP-C]</a> in the attribute type section. </p>
<h1 id="rfc.section.2.2.6">
<a href="#rfc.section.2.2.6">2.2.6.</a> <a href="#category" id="category">category</a>
</h1>
<p id="rfc.section.2.2.6.p.1">category MAY be present. If set, the returned data set will be filtered on the attribute category field. category MAY be a string or a sub-string, the latter of which start with, ends with or is encapsulated in wildcard (\%) characters. The list of valid categories is described in the MISP core format <a href="#MISP-C" class="xref">[MISP-C]</a> in the attribute type section. </p>
<p id="rfc.section.2.2.6.p.2">A sample query to lookup for the last 30 days of indicators in the <samp>Financial fraud</samp> category and output in CSV format: </p>
<pre>
{
"returnFormat": "csv",
"last": "30d",
"category": "Financial fraud"
}
</pre>
<h1 id="rfc.section.3">
<a href="#rfc.section.3">3.</a> <a href="#security-considerations" id="security-considerations">Security Considerations</a>
</h1>
<p id="rfc.section.3.p.1">MISP threat intelligence instances might contain sensitive or confidential information. Adequate access control and encryption measures shall be implemented to ensure the confidentiality of the threat intelligence. </p>
<p id="rfc.section.3.p.2">Adversaries might include malicious content in MISP queries. Implementation MUST consider the input of malicious inputs beside the standard threat information that might already include malicious intended inputs. </p>
<h1 id="rfc.section.4">
<a href="#rfc.section.4">4.</a> <a href="#acknowledgements" id="acknowledgements">Acknowledgements</a>
</h1>
<p id="rfc.section.4.p.1">The authors wish to thank all the MISP community who are supporting the creation of open standards in threat intelligence sharing. A special thank to all the committees which triggered us to come with better and flexible format. </p>
<h1 id="rfc.references">
<a href="#rfc.references">5.</a> References</h1>
<h1 id="rfc.references.1">
<a href="#rfc.references.1">5.1.</a> Normative References</h1>
<table><tbody>
<tr>
<td class="reference"><b id="RFC2119">[RFC2119]</b></td>
<td class="top">
<a>Bradner, S.</a>, "<a href="https://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.</td>
</tr>
<tr>
<td class="reference"><b id="RFC4627">[RFC4627]</b></td>
<td class="top">
<a>Crockford, D.</a>, "<a href="https://tools.ietf.org/html/rfc4627">The application/json Media Type for JavaScript Object Notation (JSON)</a>", RFC 4627, DOI 10.17487/RFC4627, July 2006.</td>
</tr>
</tbody></table>
<h1 id="rfc.references.2">
<a href="#rfc.references.2">5.2.</a> Informative References</h1>
<table><tbody>
<tr>
<td class="reference"><b id="MISP-C">[MISP-C]</b></td>
<td class="top">
<a>MISP</a>, "<a href="https://tools.ietf.org/html/draft-dulaunoy-misp-core-format">MISP core format</a>"</td>
</tr>
<tr>
<td class="reference"><b id="MISP-P">[MISP-P]</b></td>
<td class="top">
<a>MISP</a>, "<a href="https://github.com/MISP">MISP Project - Malware Information Sharing Platform and Threat Sharing</a>"</td>
</tr>
</tbody></table>
<h1 id="rfc.authors"><a href="#rfc.authors">Authors' Addresses</a></h1>
<div class="avoidbreak">
<address class="vcard">
<span class="vcardline">
<span class="fn">Alexandre Dulaunoy</span>
<span class="n hidden">
<span class="family-name">Dulaunoy</span>
</span>
</span>
<span class="org vcardline">Computer Incident Response Center Luxembourg</span>
<span class="adr">
<span class="vcardline">16, bd d'Avranches</span>
<span class="vcardline">
<span class="locality">Luxembourg</span>,
<span class="region"></span>
<span class="code">L-1160</span>
</span>
<span class="country-name vcardline">Luxembourg</span>
</span>
<span class="vcardline">Phone: +352 247 88444</span>
<span class="vcardline">EMail: <a href="mailto:alexandre.dulaunoy@circl.lu">alexandre.dulaunoy@circl.lu</a></span>
</address>
</div><div class="avoidbreak">
<address class="vcard">
<span class="vcardline">
<span class="fn">Andras Iklody</span>
<span class="n hidden">
<span class="family-name">Iklody</span>
</span>
</span>
<span class="org vcardline">Computer Incident Response Center Luxembourg</span>
<span class="adr">
<span class="vcardline">16, bd d'Avranches</span>
<span class="vcardline">
<span class="locality">Luxembourg</span>,
<span class="region"></span>
<span class="code">L-1160</span>
</span>
<span class="country-name vcardline">Luxembourg</span>
</span>
<span class="vcardline">Phone: +352 247 88444</span>
<span class="vcardline">EMail: <a href="mailto:andras.iklody@circl.lu">andras.iklody@circl.lu</a></span>
</address>
</div>
</body>
</html>

View File

@ -0,0 +1,336 @@
Network Working Group A. Dulaunoy
Internet-Draft A. Iklody
Intended status: Informational CIRCL
Expires: April 11, 2019 October 8, 2018
MISP query format
draft-dulaunoy-misp-core-format
Abstract
This document describes the MISP query format used to search MISP
(Malware Information and threat Sharing Platform) [MISP-P] threat
intelligence instances. MISP query format is a simple format used to
query MISP instances over a REST (Representational State Transfer )
interface. The query format includes the JSON format to describe the
query and the minimal API access to perform the query. The JSON
format includes the overall structure along with the semantic
associated for each respective key. The goal of the format is to
query MISP threat intelligence instances can feed and integrate with
network security devices (such as firewall, network intrusion
detection system, routers, SIEMs), endpoint security devices or
monitoring devices.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 11, 2019.
Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
Dulaunoy & Iklody Expires April 11, 2019 [Page 1]
Internet-Draft MISP query format October 2018
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Conventions and Terminology . . . . . . . . . . . . . . . 3
2. Format . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. query format criteria . . . . . . . . . . . . . . . . . . 3
2.2.1. returnFormat . . . . . . . . . . . . . . . . . . . . 3
2.2.2. limit . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.3. page . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.4. value . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.5. type . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.6. category . . . . . . . . . . . . . . . . . . . . . . 4
3. Security Considerations . . . . . . . . . . . . . . . . . . . 4
4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5
5. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
5.1. Normative References . . . . . . . . . . . . . . . . . . 5
5.2. Informative References . . . . . . . . . . . . . . . . . 5
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5
1. Introduction
Sharing threat information became a fundamental requirements in the
Internet, security and intelligence community at large. Threat
information can include indicators of compromise, malicious file
indicators, financial fraud indicators or even detailed information
about a threat actor. MISP [MISP-P] started as an open source
project in late 2011 and the MISP format started to be widely used as
an exchange format within the community in the past years. The core
format is described in an Internet-Draft as misp-core-format [MISP-C]
and contain the standard MISP JSON format used for threat
intelligence.
The aim of this document is to describe the specification of the MISP
query format and how the query can be perform against a REST
interface.
Dulaunoy & Iklody Expires April 11, 2019 [Page 2]
Internet-Draft MISP query format October 2018
1.1. Conventions and Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
2. Format
2.1. Overview
The MISP query format is in the JSON [RFC4627] format.
2.2. query format criteria
2.2.1. returnFormat
returnFormat MUST be present. returnFormat sets the type of output
format. MISP allows multiple format (depending of the
configuration):
+----------+------------------------------------------------+
| value | Description |
+----------+------------------------------------------------+
| json | MISP JSON core format as described in [MISP-C] |
| xml | MISP XML format |
| openioc | OpenIOC format |
| suricata | Suricata NIDS format |
| snort | Snort NIDS format |
| csv | CSV format |
| rpz | Response policy zone format |
| text | Raw value list format |
+----------+------------------------------------------------+
2.2.2. limit
limit MAY be present. If present, the page parameter MUST also be
supplied. limit sets the number of returned elements when paginating,
depending on the scope of the request (x number of attributes or x
number of events) as converted into the output format.
2.2.3. page
page MAY be present. If present, the page parameter MUST also be
supplied. page generates the offset for the pagination and will
return a result set consisting of a slice of the query results
starting with offset (limit * page) + 1 and ending with (limit *
(page+1)).
Dulaunoy & Iklody Expires April 11, 2019 [Page 3]
Internet-Draft MISP query format October 2018
2.2.4. value
value MAY be present. If set, the returned data set will be filtered
on the attribute value field. value MAY be a string or a sub-string,
the latter of which start with, ends with or is encapsulated in
wildcard (\%) characters.
2.2.5. type
type MAY be present. If set, the returned data set will be filtered
on the attribute type field. type MAY be a string or a sub-string,
the latter of which start with, ends with or is encapsulated in
wildcard (\%) characters. The list of valid attribute types is
described in the MISP core format [MISP-C] in the attribute type
section.
2.2.6. category
category MAY be present. If set, the returned data set will be
filtered on the attribute category field. category MAY be a string or
a sub-string, the latter of which start with, ends with or is
encapsulated in wildcard (\%) characters. The list of valid
categories is described in the MISP core format [MISP-C] in the
attribute type section.
A sample query to lookup for the last 30 days of indicators in the
"Financial fraud" category and output in CSV format:
{
"returnFormat": "csv",
"last": "30d",
"category": "Financial fraud"
}
3. Security Considerations
MISP threat intelligence instances might contain sensitive or
confidential information. Adequate access control and encryption
measures shall be implemented to ensure the confidentiality of the
threat intelligence.
Adversaries might include malicious content in MISP queries.
Implementation MUST consider the input of malicious inputs beside the
standard threat information that might already include malicious
intended inputs.
Dulaunoy & Iklody Expires April 11, 2019 [Page 4]
Internet-Draft MISP query format October 2018
4. Acknowledgements
The authors wish to thank all the MISP community who are supporting
the creation of open standards in threat intelligence sharing. A
special thank to all the committees which triggered us to come with
better and flexible format.
5. References
5.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC4627] Crockford, D., "The application/json Media Type for
JavaScript Object Notation (JSON)", RFC 4627,
DOI 10.17487/RFC4627, July 2006,
<https://www.rfc-editor.org/info/rfc4627>.
5.2. Informative References
[MISP-C] MISP, "MISP core format", <https://tools.ietf.org/html/
draft-dulaunoy-misp-core-format>.
[MISP-P] MISP, "MISP Project - Malware Information Sharing Platform
and Threat Sharing", <https://github.com/MISP>.
Authors' Addresses
Alexandre Dulaunoy
Computer Incident Response Center Luxembourg
16, bd d'Avranches
Luxembourg L-1160
Luxembourg
Phone: +352 247 88444
Email: alexandre.dulaunoy@circl.lu
Dulaunoy & Iklody Expires April 11, 2019 [Page 5]
Internet-Draft MISP query format October 2018
Andras Iklody
Computer Incident Response Center Luxembourg
16, bd d'Avranches
Luxembourg L-1160
Luxembourg
Phone: +352 247 88444
Email: andras.iklody@circl.lu
Dulaunoy & Iklody Expires April 11, 2019 [Page 6]

View File

@ -0,0 +1,185 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd' []>
<rfc ipr="trust200902" category="info" docName="draft-dulaunoy-misp-core-format">
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc private=""?>
<?rfc topblock="yes"?>
<?rfc comments="no"?>
<front>
<title abbrev="MISP query format">MISP query format</title>
<author initials="A." surname="Dulaunoy" fullname="Alexandre Dulaunoy">
<organization abbrev="CIRCL">Computer Incident Response Center Luxembourg</organization>
<address>
<postal>
<street>16, bd d'Avranches</street>
<city>Luxembourg</city>
<code>L-1160</code>
<country>Luxembourg</country>
<region></region>
</postal>
<phone>+352 247 88444</phone>
<email>alexandre.dulaunoy@circl.lu</email>
<uri></uri>
</address>
</author>
<author initials="A." surname="Iklody" fullname="Andras Iklody">
<organization abbrev="CIRCL">Computer Incident Response Center Luxembourg</organization>
<address>
<postal>
<street>16, bd d'Avranches</street>
<city>Luxembourg</city>
<code>L-1160</code>
<country>Luxembourg</country>
<region></region>
</postal>
<phone>+352 247 88444</phone>
<email>andras.iklody@circl.lu</email>
<uri></uri>
</address>
</author>
<date year="2018" month="October" day="8"/>
<area>Security</area>
<workgroup></workgroup>
<abstract>
<t>This document describes the MISP query format used to search MISP (Malware Information and threat Sharing Platform) <xref target="MISP-P"/> threat intelligence instances.
MISP query format is a simple format used to query MISP instances over a REST (Representational State Transfer ) interface.
The query format includes the JSON format to describe the query and the minimal API access to perform the query. The JSON format includes the overall structure along with the semantic associated for each respective key. The goal of the format is to query MISP threat intelligence instances can feed and integrate with network security devices (such as firewall, network intrusion detection system, routers, SIEMs), endpoint security devices or monitoring devices.
</t>
</abstract>
</front>
<middle>
<section anchor="introduction" title="Introduction">
<t>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 <xref target="MISP-P"/> started as an open source project in late 2011 and
the MISP format started to be widely used as an exchange format within the community in the past years. The core format
is described in an Internet-Draft as misp-core-format <xref target="MISP-C"/> and contain the standard MISP JSON format used for threat
intelligence.
</t>
<t>The aim of this document is to describe the specification of the MISP query format and how the query can be perform against a REST interface.
</t>
<section anchor="conventions-and-terminology" title="Conventions and Terminology">
<t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;,
&quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;MAY&quot;, and &quot;OPTIONAL&quot; in this
document are to be interpreted as described in RFC 2119 <xref target="RFC2119"/>.
</t>
</section>
</section>
<section anchor="format" title="Format">
<section anchor="overview" title="Overview">
<t>The MISP query format is in the JSON <xref target="RFC4627"/> format.
</t>
</section>
<section anchor="query-format-criteria" title="query format criteria">
<section anchor="returnformat" title="returnFormat">
<t>returnFormat MUST be present. returnFormat sets the type of output format. MISP allows multiple format (depending of the configuration):
</t>
<texttable>
<ttcol align="center">value</ttcol>
<ttcol align="center">Description</ttcol>
<c>json</c><c>MISP JSON core format as described in <xref target="MISP-C"/></c>
<c>xml</c><c>MISP XML format</c>
<c>openioc</c><c>OpenIOC format</c>
<c>suricata</c><c>Suricata NIDS format</c>
<c>snort</c><c>Snort NIDS format</c>
<c>csv</c><c>CSV format</c>
<c>rpz</c><c>Response policy zone format</c>
<c>text</c><c>Raw value list format</c>
</texttable>
</section>
<section anchor="limit" title="limit">
<t>limit MAY be present. If present, the page parameter MUST also be supplied. limit sets the number of returned elements when paginating, depending on the scope of the request (x number of attributes or x number of events) as converted into the output format.
</t>
</section>
<section anchor="page" title="page">
<t>page MAY be present. If present, the page parameter MUST also be supplied. page generates the offset for the pagination and will return a result set consisting of a slice of the query results starting with offset (limit * page) + 1 and ending with (limit * (page+1)).
</t>
</section>
<section anchor="value" title="value">
<t>value MAY be present. If set, the returned data set will be filtered on the attribute value field. value MAY be a string or a sub-string, the latter of which start with, ends with or is encapsulated in wildcard (\%) characters.
</t>
</section>
<section anchor="type" title="type">
<t>type MAY be present. If set, the returned data set will be filtered on the attribute type field. type MAY be a string or a sub-string, the latter of which start with, ends with or is encapsulated in wildcard (\%) characters. The list of valid attribute types is described in the MISP core format <xref target="MISP-C"/> in the attribute type section.
</t>
</section>
<section anchor="category" title="category">
<t>category MAY be present. If set, the returned data set will be filtered on the attribute category field. category MAY be a string or a sub-string, the latter of which start with, ends with or is encapsulated in wildcard (\%) characters. The list of valid categories is described in the MISP core format <xref target="MISP-C"/> in the attribute type section.
</t>
<t>A sample query to lookup for the last 30 days of indicators in the <spanx style="verb">Financial fraud</spanx> category and output in CSV format:
</t>
<figure align="center"><artwork align="center">
{
"returnFormat": "csv",
"last": "30d",
"category": "Financial fraud"
}
</artwork></figure>
</section>
</section>
</section>
<section anchor="security-considerations" title="Security Considerations">
<t>MISP threat intelligence instances might contain sensitive or confidential information. Adequate access control and encryption measures shall be implemented to ensure the confidentiality of the threat intelligence.
</t>
<t>Adversaries might include malicious content in MISP queries. Implementation MUST consider the input of malicious inputs beside the
standard threat information that might already include malicious intended inputs.
</t>
</section>
<section anchor="acknowledgements" title="Acknowledgements">
<t>The authors wish to thank all the MISP community who are supporting the creation
of open standards in threat intelligence sharing. A special thank to all the committees which
triggered us to come with better and flexible format.
</t>
</section>
</middle>
<back>
<references title="Normative References">
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"?>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4627.xml"?>
</references>
<references title="Informative References">
<reference anchor='MISP-C' target='https://tools.ietf.org/html/draft-dulaunoy-misp-core-format'>
<front>
<title>MISP core format</title>
<author initials='' surname='MISP' fullname='MISP Community'></author>
<date></date>
</front>
</reference>
<reference anchor='MISP-P' target='https://github.com/MISP'>
<front>
<title>MISP Project - Malware Information Sharing Platform and Threat Sharing</title>
<author initials='' surname='MISP' fullname='MISP Community'></author>
<date></date>
</front>
</reference>
</references>
</back>
</rfc>

View File

@ -1,4 +1,4 @@
MMARK:=/home/adulau/git/mmark/mmark/mmark -xml2 -page
MMARK:=mmark -xml2 -page
docs = $(wildcard *.md)

View File

@ -40,8 +40,8 @@
This document describes the MISP taxonomy format which describes a simple JSON format to
represent machine tags (also called triple tags) vocabularies. A public directory of common vocabularies
MISP taxonomies is available and relies on the MISP taxonomy format. MISP taxonomies are used to classify
cyber security events, threats or indicators.
called MISP taxonomies is available and relies on the MISP taxonomy format. MISP taxonomies are used to classify
cyber security events, threats, suspicious events, or indicators.
{mainmatter}
@ -422,6 +422,254 @@ A taxonomies array describes the taxonomy available with the description, name a
~~~~
## Available taxonomies in the public directory
The public directory of MISP taxonomies [@?MISP-T] contains a variety of taxonomy in various fields such as:
CERT-XLM:
: CERT-XLM Security Incident Classification.
DML:
: The Detection Maturity Level (DML) model is a capability maturity model for referencing ones maturity in detecting cyber attacks. It's designed for organizations who perform intel-driven detection and response and who put an emphasis on having a mature detection program.
PAP:
: The Permissible Actions Protocol - or short: PAP - was designed to indicate how the received information can be used.
access-method:
: The access method used to remotely access a system.
accessnow:
: Access Now classification to classify an issue (such as security, human rights, youth rights).
action-taken:
: Action taken in the case of a security incident (CSIRT perspective).
admiralty-scale:
: The Admiralty Scale (also called the NATO System) is used to rank the reliability of a source and the credibility of an information.
adversary:
: An overview and description of the adversary infrastructure.
ais-marking:
: AIS Marking Schema implementation is maintained by the National Cybersecurity and Communication Integration Center (NCCIC) of the U.S. Department of Homeland Security (DHS)
analyst-assessment:
: A series of assessment predicates describing the analyst capabilities to perform analysis. These assessment can be assigned by the analyst him/herself or by another party evaluating the analyst.
approved-category-of-action:
: A pre-approved category of action for indicators being shared with partners (MIMIC).
binary-class:
: Custom taxonomy for types of binary file.
cccs:
: Internal taxonomy for CCCS.
circl:
: CIRCL Taxonomy is a simple scheme for incident classification and area topic where the incident took place.
collaborative-intelligence:
: Collaborative intelligence support language is a common language to support analysts to perform their analysis to get crowdsourced support when using threat intelligence sharing platform like MISP.
copine-scale:
: The COPINE Scale is a rating system created in Ireland and used in the United Kingdom to categorise the severity of images of child sex abuse.
csirt_case_classification:
: FIRST CSIRT Case Classification.
cssa:
: The CSSA agreed sharing taxonomy.
cyber-threat-framework:
: Cyber Threat Framework was developed by the US Government to enable consistent characterization and categorization of cyber threat events, and to identify trends or changes in the activities of cyber adversaries. https://www.dni.gov/index.php/cyber-threat-framework
ddos:
: Distributed Denial of Service - or short: DDoS - taxonomy supports the description of Denial of Service attacks and especially the types they belong too.
de-vs:
: Taxonomy for the handling of protectively marked information in MISP with German (DE) Government classification markings (VS)
dhs-ciip-sectors:
: DHS critical sectors as described in https://www.dhs.gov/critical-infrastructure-sectors.
diamond-model:
: The Diamond Model for Intrusion Analysis, a phase-based model developed by Lockheed Martin, aims to help categorise and identify the stage of an attack.
dni-ism:
: ISM (Information Security Marking Metadata) V13 as described by DNI.gov (Director of National Intelligence - US).
domain-abuse:
: Taxonomy to tag domain names used for cybercrime.
economical-impact:
: Economical impact is a taxonomy to describe the financial impact as positive or negative gain to the tagged information.
ecsirt:
: eCSIRT incident classification Appendix C of the eCSIRT EU project including IntelMQ updates.
enisa:
: ENISA Threat Taxonomy - A tool for structuring threat information as published in https://www.enisa.europa.eu/topics/threat-risk-management/threats-and-trends/enisa-threat-landscape/etl2015/enisa-threat-taxonomy-a-tool-for-structuring-threat-information
estimative-language:
: Estimative language - including likelihood or probability of event based on the Intelligence Community Directive 203 (ICD 203) (6.2.(a)) and JP 2-0, Joint Intelligence.
eu-marketop-and-publicadmin:
: Market operators and public administrations that must comply to some notifications requirements under EU NIS directive.
eu-nis-sector-and-subsectors:
: Sectors and sub sectors as identified by the NIS Directive.
euci:
: EU classified information (EUCI) means any information or material designated by a EU security classification, the unauthorised disclosure of which could cause varying degrees of prejudice to the interests of the European Union or of one or more of the Member States as described in CELEX 32013D0488
europol-event:
: EUROPOL type of events taxonomy.
europol-incident:
: EUROPOL class of incident taxonomy.
event-assessment:
: A series of assessment predicates describing the event assessment performed to make judgement(s) under a certain level of uncertainty.
event-classification:
: Event Classification.
exercise:
: Exercise is a taxonomy to describe if the information is part of one or more cyber or crisis exercise
false-positive:
: This taxonomy aims to ballpark the expected amount of false positives.
file-type:
: List of known file types.
fpf:
: The Future of Privacy Forum (FPF) [visual guide to practical de-identification](https://fpf.org/2016/04/25/a-visual-guide-to-practical-data-de-identification/) taxonomy is used to evaluate the degree of identifiability of personal data and the types of pseudonymous data, de-identified data and anonymous data. The work of FPF is licensed under a creative commons attribution 4.0 international license.
fr-classif:
: French gov information classification system.
gdpr:
: Taxonomy related to the REGULATION (EU) 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)
gsma-attack-category:
: Taxonomy used by GSMA for their information sharing program with telco describing the attack categories
gsma-fraud:
: Taxonomy used by GSMA for their information sharing program with telco describing the various aspects of fraud
gsma-network-technology:
: Taxonomy used by GSMA for their information sharing program with telco describing the types of infrastructure. WiP
honeypot-basic:
: Christian Seifert, Ian Welch, Peter Komisarczuk, Taxonomy of Honeypots, Technical Report CS-TR-06/12, VICTORIA UNIVERSITY OF WELLINGTON, School of Mathematical and Computing Sciences, June 2006, http://www.mcs.vuw.ac.nz/comp/Publications/archive/CS-TR-06/CS-TR-06-12.pdf
iep:
: Forum of Incident Response and Security Teams (FIRST) Information Exchange Policy (IEP) framework.
ifx-vetting:
: The IFX taxonomy is used to categorise information (MISP events and attributes) to aid in the intelligence vetting process
incident-disposition:
: How an incident is classified in its process to be resolved. The taxonomy is inspired from NASA Incident Response and Management Handbook.
infoleak:
: A taxonomy describing information leaks and especially information classified as being potentially leaked.
information-security-indicators:
: Information security indicators have been standardized by the ETSI Industrial Specification Group (ISG) ISI. These indicators provide the basis to switch from a qualitative to a quantitative culture in IT Security Scope of measurements: External and internal threats (attempt and success), user's deviant behaviours, nonconformities and/or vulnerabilities (software, configuration, behavioural, general security framework). ETSI GS ISI 001-1 (V1.1.2): ISI Indicators
interception-method:
: The interception method used to intercept traffic.
kill-chain:
: Cyber Kill Chain from Lockheed Martin as described in Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains.
maec-delivery-vectors:
: Vectors used to deliver malware based on MAEC 5.0
maec-malware-behavior:
: Malware behaviours based on MAEC 5.0
maec-malware-capabilities:
: Malware Capabilities based on MAEC 5.0
maec-malware-obfuscation-methods:
: Obfuscation methods used by malware based on MAEC 5.0
malware_classification:
: Malware classification based on a SANS whitepaper about malware.
misp:
: Internal MISP taxonomy.
monarc-threat:
: MONARC threat taxonomy.
ms-caro-malware:
: Malware Type and Platform classification based on Microsoft's implementation of the Computer Antivirus Research Organization (CARO) Naming Scheme and Malware Terminology.
ms-caro-malware-full:
: Malware Type and Platform classification based on Microsoft's implementation of the Computer Antivirus Research Organization (CARO) Naming Scheme and Malware Terminology.
nato:
: Marking of Classified and Unclassified materials as described by the North Atlantic Treaty Organization, NATO.
nis:
: NIS Cybersecurity Incident Taxonomy.
open_threat:
: Open Threat Taxonomy v1.1 base on James Tarala of SANS ref. - http://www.auditscripts.com/resources/open_threat_taxonomy_v1.1a.pdf
osint:
: Open Source Intelligence - Classification (MISP taxonomies).
passivetotal:
: Tags for RiskIQ's passivetotal service
pentest:
: Penetration test (pentest) classification.
priority-level:
: After an incident is scored, it is assigned a priority level. The six levels listed below are aligned with NCCIC, DHS, and the CISS to help provide a common lexicon when discussing incidents. This priority assignment drives NCCIC urgency, pre-approved incident response offerings, reporting requirements, and recommendations for leadership escalation. Generally, incident priority distribution should follow a similar pattern to the graph below. Based on https://www.us-cert.gov/NCCIC-Cyber-Incident-Scoring-System.
rsit:
: Reference Security Incident Classification Taxonomy.
rt_event_status:
: Status of events used in Request Tracker.
runtime-packer:
: Runtime or software packer used to combine compressed data with the decompression code. The decompression code can add additional obfuscations mechanisms including polymorphic-packer or other obfuscation techniques. This taxonomy lists all the known or official packer used for legitimate use or for packing malicious binaries.
smart-airports-threats:
: Threat taxonomy in the scope of securing smart airports by ENISA.
stealth_malware:
: Classification based on malware stealth techniques.
stix-ttp:
: Representation of the behavior or modus operandi of cyber adversaries (a.k.a TTP) as normalized in STIX
targeted-threat-index:
: The Targeted Threat Index is a metric for assigning an overall threat ranking score to email messages that deliver malware to a victims computer. The TTI metric was first introduced at SecTor 2013 by Seth Hardy as part of the talk “RATastrophe: Monitoring a Malware Menagerie” along with Katie Kleemola and Greg Wiseman.
tlp:
: The Traffic Light Protocol - or short: TLP - was designed with the objective to create a favorable classification scheme for sharing sensitive information while keeping the control over its distribution at the same time. Extended with TLP:EX:CHR.
tor:
: Taxonomy to describe Tor network infrastructure
veris:
: Vocabulary for Event Recording and Incident Sharing (VERIS).
vocabulaire-des-probabilites-estimatives:
: Vocabulaire des probabilités estimatives
workflow:
: Workflow support language is a common language to support intelligence analysts to perform their analysis on data and information.
# JSON Schema
The JSON Schema [@?JSON-SCHEMA] below defines the structure of the MISP taxonomy document

View File

@ -5,7 +5,7 @@
Network Working Group A. Dulaunoy
Internet-Draft A. Iklody
Intended status: Informational CIRCL
Expires: March 8, 2018 September 4, 2017
Expires: June 2, 2018 November 29, 2017
MISP taxonomy format
@ -15,10 +15,10 @@ Abstract
This document describes the MISP taxonomy format which describes a
simple JSON format to represent machine tags (also called triple
tags) vocabularies. A public directory of common vocabularies MISP
taxonomies is available and relies on the MISP taxonomy format. MISP
taxonomies are used to classify cyber security events, threats or
indicators.
tags) vocabularies. A public directory of common vocabularies called
MISP taxonomies is available and relies on the MISP taxonomy format.
MISP taxonomies are used to classify cyber security events, threats,
suspicious events, or indicators.
Status of This Memo
@ -28,14 +28,14 @@ Status of This Memo
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
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 March 8, 2018.
This Internet-Draft will expire on June 2, 2018.
Copyright Notice
@ -44,7 +44,7 @@ Copyright Notice
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
(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
@ -53,9 +53,9 @@ Copyright Notice
Dulaunoy & Iklody Expires March 8, 2018 [Page 1]
Dulaunoy & Iklody Expires June 2, 2018 [Page 1]
Internet-Draft MISP taxonomy format September 2017
Internet-Draft MISP taxonomy format November 2017
the Trust Legal Provisions and are provided without warranty as
@ -78,12 +78,14 @@ Table of Contents
4. Sample Taxonomy in MISP taxonomy format . . . . . . . . . . . 7
4.1. Admiralty Scale Taxonomy . . . . . . . . . . . . . . . . 7
4.2. Open Source Intelligence - Classification . . . . . . . . 9
5. JSON Schema . . . . . . . . . . . . . . . . . . . . . . . . . 11
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
7.1. Normative References . . . . . . . . . . . . . . . . . . 14
7.2. Informative References . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
4.3. Available taxonomies in the public directory . . . . . . 11
5. JSON Schema . . . . . . . . . . . . . . . . . . . . . . . . . 19
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 22
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 22
7.1. Normative References . . . . . . . . . . . . . . . . . . 22
7.2. Informative References . . . . . . . . . . . . . . . . . 22
7.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23
1. Introduction
@ -103,17 +105,18 @@ Table of Contents
information to users and machines. Machine tags are also known as
triple tags due to their format.
Dulaunoy & Iklody Expires June 2, 2018 [Page 2]
Internet-Draft MISP taxonomy format November 2017
In the MISP taxonomy context, machine tags help analysts to classify
their cybersecurity events, indicators or threats. MISP taxonomies
can be used for classification, filtering, triggering actions or
Dulaunoy & Iklody Expires March 8, 2018 [Page 2]
Internet-Draft MISP taxonomy format September 2017
visualisation depending on their use in threat intelligence platforms
such as MISP [MISP-P].
@ -155,21 +158,22 @@ Internet-Draft MISP taxonomy format September 2017
applicable at event, user or org level. The type is represented as
an array containing one or more type and SHOULD be present. If a
type is not mentioned, by default, the taxonomy is applicable at
event level only.
event level only. An exclusive boolean property MAY be present and
defines at namespace level if the predicates are mutually exclusive.
Dulaunoy & Iklody Expires June 2, 2018 [Page 3]
Internet-Draft MISP taxonomy format November 2017
predicates defines all the predicates available in the namespace
defined. predicates is represented as an array of JSON objects.
predicates MUST be present and MUST at least content one element.
Dulaunoy & Iklody Expires March 8, 2018 [Page 3]
Internet-Draft MISP taxonomy format September 2017
values defines all the values for each predicate in the namespace
defined. values SHOULD be present.
@ -181,7 +185,8 @@ Internet-Draft MISP taxonomy format September 2017
present. value is represented as a string and describes the predicate
value. The predicate value MUST not contain spaces or colons.
expanded is represented as a string and describes the human-readable
version of the predicate value.
version of the predicate value. An exclusive property MAY be present
and defines at namespace level if the values are mutually exclusive.
2.3. values
@ -216,14 +221,9 @@ Internet-Draft MISP taxonomy format September 2017
Dulaunoy & Iklody Expires March 8, 2018 [Page 4]
Dulaunoy & Iklody Expires June 2, 2018 [Page 4]
Internet-Draft MISP taxonomy format September 2017
Internet-Draft MISP taxonomy format November 2017
"predicates": [
@ -259,6 +259,10 @@ Internet-Draft MISP taxonomy format September 2017
SHOULD use the decimal value provided to support scoring or
filtering.
The decimal range for numerical_value SHOULD use a range from 0 up to
100. The range is recommended to support common mathematical
properties among taxonomies.
Example use of the numerical_value in the MISP confidence level:
@ -273,13 +277,9 @@ Internet-Draft MISP taxonomy format September 2017
Dulaunoy & Iklody Expires March 8, 2018 [Page 5]
Dulaunoy & Iklody Expires June 2, 2018 [Page 5]
Internet-Draft MISP taxonomy format September 2017
Internet-Draft MISP taxonomy format November 2017
{
@ -333,9 +333,9 @@ Internet-Draft MISP taxonomy format September 2017
Dulaunoy & Iklody Expires March 8, 2018 [Page 6]
Dulaunoy & Iklody Expires June 2, 2018 [Page 6]
Internet-Draft MISP taxonomy format September 2017
Internet-Draft MISP taxonomy format November 2017
3.1. Sample Manifest
@ -389,9 +389,9 @@ Internet-Draft MISP taxonomy format September 2017
Dulaunoy & Iklody Expires March 8, 2018 [Page 7]
Dulaunoy & Iklody Expires June 2, 2018 [Page 7]
Internet-Draft MISP taxonomy format September 2017
Internet-Draft MISP taxonomy format November 2017
"value": "a",
@ -445,9 +445,9 @@ Internet-Draft MISP taxonomy format September 2017
Dulaunoy & Iklody Expires March 8, 2018 [Page 8]
Dulaunoy & Iklody Expires June 2, 2018 [Page 8]
Internet-Draft MISP taxonomy format September 2017
Internet-Draft MISP taxonomy format November 2017
{
@ -501,9 +501,9 @@ Internet-Draft MISP taxonomy format September 2017
Dulaunoy & Iklody Expires March 8, 2018 [Page 9]
Dulaunoy & Iklody Expires June 2, 2018 [Page 9]
Internet-Draft MISP taxonomy format September 2017
Internet-Draft MISP taxonomy format November 2017
"predicate": "source-type"
@ -557,9 +557,9 @@ Internet-Draft MISP taxonomy format September 2017
Dulaunoy & Iklody Expires March 8, 2018 [Page 10]
Dulaunoy & Iklody Expires June 2, 2018 [Page 10]
Internet-Draft MISP taxonomy format September 2017
Internet-Draft MISP taxonomy format November 2017
"description": "30% Probably not"
@ -601,6 +601,423 @@ Internet-Draft MISP taxonomy format September 2017
}
4.3. Available taxonomies in the public directory
The public directory of MISP taxonomies [MISP-T] contains a variety
of taxonomy in various fields such as:
CERT-XLM:
CERT-XLM Security Incident Classification.
DML:
Dulaunoy & Iklody Expires June 2, 2018 [Page 11]
Internet-Draft MISP taxonomy format November 2017
The Detection Maturity Level (DML) model is a capability maturity
model for referencing ones maturity in detecting cyber attacks.
It's designed for organizations who perform intel-driven detection
and response and who put an emphasis on having a mature detection
program.
PAP:
The Permissible Actions Protocol - or short: PAP - was designed to
indicate how the received information can be used.
access-method:
The access method used to remotely access a system.
accessnow:
Access Now classification to classify an issue (such as security,
human rights, youth rights).
action-taken:
Action taken in the case of a security incident (CSIRT
perspective).
admiralty-scale:
The Admiralty Scale (also called the NATO System) is used to rank
the reliability of a source and the credibility of an information.
adversary:
An overview and description of the adversary infrastructure.
ais-marking:
AIS Marking Schema implementation is maintained by the National
Cybersecurity and Communication Integration Center (NCCIC) of the
U.S. Department of Homeland Security (DHS)
analyst-assessment:
A series of assessment predicates describing the analyst
capabilities to perform analysis. These assessment can be
assigned by the analyst him/herself or by another party evaluating
the analyst.
approved-category-of-action:
A pre-approved category of action for indicators being shared with
partners (MIMIC).
binary-class:
Custom taxonomy for types of binary file.
cccs:
Internal taxonomy for CCCS.
Dulaunoy & Iklody Expires June 2, 2018 [Page 12]
Internet-Draft MISP taxonomy format November 2017
circl:
CIRCL Taxonomy is a simple scheme for incident classification and
area topic where the incident took place.
collaborative-intelligence:
Collaborative intelligence support language is a common language
to support analysts to perform their analysis to get crowdsourced
support when using threat intelligence sharing platform like MISP.
copine-scale:
The COPINE Scale is a rating system created in Ireland and used in
the United Kingdom to categorise the severity of images of child
sex abuse.
csirt_case_classification:
FIRST CSIRT Case Classification.
cssa:
The CSSA agreed sharing taxonomy.
cyber-threat-framework:
Cyber Threat Framework was developed by the US Government to
enable consistent characterization and categorization of cyber
threat events, and to identify trends or changes in the activities
of cyber adversaries. <https://www.dni.gov/index.php/cyber-threat-
framework>
ddos:
Distributed Denial of Service - or short: DDoS - taxonomy supports
the description of Denial of Service attacks and especially the
types they belong too.
de-vs:
Taxonomy for the handling of protectively marked information in
MISP with German (DE) Government classification markings (VS)
dhs-ciip-sectors:
DHS critical sectors as described in <https://www.dhs.gov/
critical-infrastructure-sectors>.
diamond-model:
The Diamond Model for Intrusion Analysis, a phase-based model
developed by Lockheed Martin, aims to help categorise and identify
the stage of an attack.
dni-ism:
ISM (Information Security Marking Metadata) V13 as described by
DNI.gov (Director of National Intelligence - US).
Dulaunoy & Iklody Expires June 2, 2018 [Page 13]
Internet-Draft MISP taxonomy format November 2017
domain-abuse:
Taxonomy to tag domain names used for cybercrime.
economical-impact:
Economical impact is a taxonomy to describe the financial impact
as positive or negative gain to the tagged information.
ecsirt:
eCSIRT incident classification Appendix C of the eCSIRT EU project
including IntelMQ updates.
enisa:
ENISA Threat Taxonomy - A tool for structuring threat information
as published in <https://www.enisa.europa.eu/topics/threat-risk-
management/threats-and-trends/enisa-threat-landscape/etl2015/
enisa-threat-taxonomy-a-tool-for-structuring-threat-information>
estimative-language:
Estimative language - including likelihood or probability of event
based on the Intelligence Community Directive 203 (ICD 203)
(6.2.(a)) and JP 2-0, Joint Intelligence.
eu-marketop-and-publicadmin:
Market operators and public administrations that must comply to
some notifications requirements under EU NIS directive.
eu-nis-sector-and-subsectors:
Sectors and sub sectors as identified by the NIS Directive.
euci:
EU classified information (EUCI) means any information or material
designated by a EU security classification, the unauthorised
disclosure of which could cause varying degrees of prejudice to
the interests of the European Union or of one or more of the
Member States as described in CELEX 32013D0488
europol-event:
EUROPOL type of events taxonomy.
europol-incident:
EUROPOL class of incident taxonomy.
event-assessment:
A series of assessment predicates describing the event assessment
performed to make judgement(s) under a certain level of
uncertainty.
event-classification:
Dulaunoy & Iklody Expires June 2, 2018 [Page 14]
Internet-Draft MISP taxonomy format November 2017
Event Classification.
exercise:
Exercise is a taxonomy to describe if the information is part of
one or more cyber or crisis exercise
false-positive:
This taxonomy aims to ballpark the expected amount of false
positives.
file-type:
List of known file types.
fpf:
The Future of Privacy Forum (FPF) visual guide to practical de-
identification [1] taxonomy is used to evaluate the degree of
identifiability of personal data and the types of pseudonymous
data, de-identified data and anonymous data. The work of FPF is
licensed under a creative commons attribution 4.0 international
license.
fr-classif:
French gov information classification system.
gdpr:
Taxonomy related to the REGULATION (EU) 2016/679 OF THE EUROPEAN
PARLIAMENT AND OF THE COUNCIL on the protection of natural persons
with regard to the processing of personal data and on the free
movement of such data, and repealing Directive 95/46/EC (General
Data Protection Regulation)
gsma-attack-category:
Taxonomy used by GSMA for their information sharing program with
telco describing the attack categories
gsma-fraud:
Taxonomy used by GSMA for their information sharing program with
telco describing the various aspects of fraud
gsma-network-technology:
Taxonomy used by GSMA for their information sharing program with
telco describing the types of infrastructure. WiP
honeypot-basic:
Christian Seifert, Ian Welch, Peter Komisarczuk, 'Taxonomy of
Honeypots', Technical Report CS-TR-06/12, VICTORIA UNIVERSITY OF
WELLINGTON, School of Mathematical and Computing Sciences, June
Dulaunoy & Iklody Expires June 2, 2018 [Page 15]
Internet-Draft MISP taxonomy format November 2017
2006, <http://www.mcs.vuw.ac.nz/comp/Publications/archive/CS-TR-
06/CS-TR-06-12.pdf>
iep:
Forum of Incident Response and Security Teams (FIRST) Information
Exchange Policy (IEP) framework.
ifx-vetting:
The IFX taxonomy is used to categorise information (MISP events
and attributes) to aid in the intelligence vetting process
incident-disposition:
How an incident is classified in its process to be resolved. The
taxonomy is inspired from NASA Incident Response and Management
Handbook.
infoleak:
A taxonomy describing information leaks and especially information
classified as being potentially leaked.
information-security-indicators:
Information security indicators have been standardized by the ETSI
Industrial Specification Group (ISG) ISI. These indicators
provide the basis to switch from a qualitative to a quantitative
culture in IT Security Scope of measurements: External and
internal threats (attempt and success), user's deviant behaviours,
nonconformities and/or vulnerabilities (software, configuration,
behavioural, general security framework). ETSI GS ISI 001-1
(V1.1.2): ISI Indicators
interception-method:
The interception method used to intercept traffic.
kill-chain:
Cyber Kill Chain from Lockheed Martin as described in
Intelligence-Driven Computer Network Defense Informed by Analysis
of Adversary Campaigns and Intrusion Kill Chains.
maec-delivery-vectors:
Vectors used to deliver malware based on MAEC 5.0
maec-malware-behavior:
Malware behaviours based on MAEC 5.0
maec-malware-capabilities:
Malware Capabilities based on MAEC 5.0
maec-malware-obfuscation-methods:
Dulaunoy & Iklody Expires June 2, 2018 [Page 16]
Internet-Draft MISP taxonomy format November 2017
Obfuscation methods used by malware based on MAEC 5.0
malware_classification:
Malware classification based on a SANS whitepaper about malware.
misp:
Internal MISP taxonomy.
monarc-threat:
MONARC threat taxonomy.
ms-caro-malware:
Malware Type and Platform classification based on Microsoft's
implementation of the Computer Antivirus Research Organization
(CARO) Naming Scheme and Malware Terminology.
ms-caro-malware-full:
Malware Type and Platform classification based on Microsoft's
implementation of the Computer Antivirus Research Organization
(CARO) Naming Scheme and Malware Terminology.
nato:
Marking of Classified and Unclassified materials as described by
the North Atlantic Treaty Organization, NATO.
nis:
NIS Cybersecurity Incident Taxonomy.
open_threat:
Open Threat Taxonomy v1.1 base on James Tarala of SANS ref. -
<http://www.auditscripts.com/resources/
open_threat_taxonomy_v1.1a.pdf>
osint:
Open Source Intelligence - Classification (MISP taxonomies).
passivetotal:
Tags for RiskIQ's passivetotal service
pentest:
Penetration test (pentest) classification.
priority-level:
After an incident is scored, it is assigned a priority level. The
six levels listed below are aligned with NCCIC, DHS, and the CISS
to help provide a common lexicon when discussing incidents. This
priority assignment drives NCCIC urgency, pre-approved incident
response offerings, reporting requirements, and recommendations
Dulaunoy & Iklody Expires June 2, 2018 [Page 17]
Internet-Draft MISP taxonomy format November 2017
for leadership escalation. Generally, incident priority
distribution should follow a similar pattern to the graph below.
Based on <https://www.us-cert.gov/NCCIC-Cyber-Incident-Scoring-
System>.
rsit:
Reference Security Incident Classification Taxonomy.
rt_event_status:
Status of events used in Request Tracker.
runtime-packer:
Runtime or software packer used to combine compressed data with
the decompression code. The decompression code can add additional
obfuscations mechanisms including polymorphic-packer or other
obfuscation techniques. This taxonomy lists all the known or
official packer used for legitimate use or for packing malicious
binaries.
smart-airports-threats:
Threat taxonomy in the scope of securing smart airports by ENISA.
stealth_malware:
Classification based on malware stealth techniques.
stix-ttp:
Representation of the behavior or modus operandi of cyber
adversaries (a.k.a TTP) as normalized in STIX
targeted-threat-index:
The Targeted Threat Index is a metric for assigning an overall
threat ranking score to email messages that deliver malware to a
victim's computer. The TTI metric was first introduced at SecTor
2013 by Seth Hardy as part of the talk "RATastrophe: Monitoring a
Malware Menagerie" along with Katie Kleemola and Greg Wiseman.
tlp:
The Traffic Light Protocol - or short: TLP - was designed with the
objective to create a favorable classification scheme for sharing
sensitive information while keeping the control over its
distribution at the same time. Extended with TLP:EX:CHR.
tor:
Taxonomy to describe Tor network infrastructure
veris:
Vocabulary for Event Recording and Incident Sharing (VERIS).
Dulaunoy & Iklody Expires June 2, 2018 [Page 18]
Internet-Draft MISP taxonomy format November 2017
vocabulaire-des-probabilites-estimatives:
Vocabulaire des probabilites estimatives
workflow:
Workflow support language is a common language to support
intelligence analysts to perform their analysis on data and
information.
5. JSON Schema
The JSON Schema [JSON-SCHEMA] below defines the structure of the MISP
@ -610,14 +1027,6 @@ Internet-Draft MISP taxonomy format September 2017
{
"$schema": "http://json-schema.org/schema#",
Dulaunoy & Iklody Expires March 8, 2018 [Page 11]
Internet-Draft MISP taxonomy format September 2017
"title": "Validator for misp-taxonomies",
"id": "https://www.github.com/MISP/misp-taxonomies/schema.json",
"defs": {
@ -649,6 +1058,14 @@ Internet-Draft MISP taxonomy format September 2017
}
}
},
Dulaunoy & Iklody Expires June 2, 2018 [Page 19]
Internet-Draft MISP taxonomy format November 2017
"values": {
"type": "array",
"uniqueItems": true,
@ -666,14 +1083,6 @@ Internet-Draft MISP taxonomy format September 2017
"required": [
"predicate"
]
Dulaunoy & Iklody Expires March 8, 2018 [Page 12]
Internet-Draft MISP taxonomy format September 2017
}
},
"predicates": {
@ -698,10 +1107,21 @@ Internet-Draft MISP taxonomy format September 2017
"value": {
"type": "string"
},
"exclusive": {
"type": "boolean"
},
"required": [
"value"
]
}
Dulaunoy & Iklody Expires June 2, 2018 [Page 20]
Internet-Draft MISP taxonomy format November 2017
}
}
},
@ -720,16 +1140,11 @@ Internet-Draft MISP taxonomy format September 2017
"namespace": {
"type": "string"
},
"exclusive": {
"type": "boolean"
},
"type": {
"type": "array",
Dulaunoy & Iklody Expires March 8, 2018 [Page 13]
Internet-Draft MISP taxonomy format September 2017
"uniqueItems": true,
"items": {
"type": "string",
@ -755,6 +1170,14 @@ Internet-Draft MISP taxonomy format September 2017
"$ref": "#/defs/values"
}
},
Dulaunoy & Iklody Expires June 2, 2018 [Page 21]
Internet-Draft MISP taxonomy format November 2017
"required": [
"namespace",
"description",
@ -774,40 +1197,47 @@ Internet-Draft MISP taxonomy format September 2017
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, <https://www.rfc-
editor.org/info/rfc2119>.
Dulaunoy & Iklody Expires March 8, 2018 [Page 14]
Internet-Draft MISP taxonomy format September 2017
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC4627] Crockford, D., "The application/json Media Type for
JavaScript Object Notation (JSON)", RFC 4627,
DOI 10.17487/RFC4627, July 2006, <https://www.rfc-
editor.org/info/rfc4627>.
DOI 10.17487/RFC4627, July 2006,
<https://www.rfc-editor.org/info/rfc4627>.
7.2. Informative References
[JSON-SCHEMA]
"JSON Schema: A Media Type for Describing JSON Documents",
2016, <https://tools.ietf.org/html/draft-wright-json-
schema>.
2016,
<https://tools.ietf.org/html/draft-wright-json-schema>.
[machine-tags]
"Machine tags", 2007,
<https://www.flickr.com/groups/51035612836@N01/
discuss/72157594497877875/>.
[MISP-P] MISP, , "MISP Project - Malware Information Sharing
Platform and Threat Sharing", <https://github.com/MISP>.
[MISP-P] MISP, "MISP Project - Malware Information Sharing Platform
and Threat Sharing", <https://github.com/MISP>.
[MISP-T] MISP, , "MISP Taxonomies - shared and common vocabularies
of tags", <https://github.com/MISP/misp-taxonomies>.
[MISP-T] MISP, "MISP Taxonomies - shared and common vocabularies of
tags", <https://github.com/MISP/misp-taxonomies>.
Dulaunoy & Iklody Expires June 2, 2018 [Page 22]
Internet-Draft MISP taxonomy format November 2017
7.3. URIs
[1] https://fpf.org/2016/04/25/a-visual-guide-to-practical-data-de-
identification/
Authors' Addresses
@ -837,4 +1267,22 @@ Authors' Addresses
Dulaunoy & Iklody Expires March 8, 2018 [Page 15]
Dulaunoy & Iklody Expires June 2, 2018 [Page 23]