Compare commits

...

24 Commits

Author SHA1 Message Date
Alexandre Dulaunoy b5a87d228a
Merge branch 'main' 2024-03-13 16:42:47 +01:00
Alexandre Dulaunoy 6f141c736c
chg: [malware_classification] add `Stalkerware` from #275 2024-03-13 16:39:04 +01:00
Alexandre Dulaunoy 9f4f72c175
Merge pull request #275 from vxsh4d0w/patch-5
Update machinetag.json
2024-03-13 16:35:35 +01:00
V c5566e0d03
Update machinetag.json
Added Stalkerware, ad defined by Kaspersky "commercially available software that can be discreetly installed on smartphone devices, enabling a perpetrator to monitor an individual’s private life without their knowledge"
2024-03-13 13:56:28 +00:00
Alexandre Dulaunoy 5f580a3bb5
chg: [MANIFEST] updated 2024-03-04 10:10:41 +01:00
Alexandre Dulaunoy 5fc23d4795
chg: [tools] clean-up python script to generate the asciidoctor files 2024-03-04 10:06:48 +01:00
Alexandre Dulaunoy a62a3bdad7
Merge pull request #274 from JRC-T2/main
Dark-Web Ransomware support
2024-03-04 10:06:21 +01:00
Alexandre Dulaunoy 5e93071832
fix: [tools] Fix #273 in markdown generator 2024-03-04 09:57:26 +01:00
JRC-T2 08cab31a89
Update machinetag.json
Added darknet ransomware activity support
2024-03-04 09:46:03 +01:00
Alexandre Dulaunoy 8cd705ba62
chg: [exercise] updated 2024-02-16 16:18:09 +01:00
Alexandre Dulaunoy 6b593ea8c1
Merge pull request #272 from DCSO/courseofaction-nodiscover
Add 'course-of-action:passive=nodiscover'
2024-02-07 06:36:57 +01:00
Hendrik Baecker 41e8bdc4f3 Added 'course-of-action:passive=nodiscover' 2024-02-06 14:28:16 +01:00
Alexandre Dulaunoy 3d61b20e7e
chg: [doc] list updated 2023-12-31 08:42:44 +01:00
Alexandre Dulaunoy 92948d2cba
chg: [doc] doc and manifest updated 2023-12-31 08:38:49 +01:00
Christian Studer 47ca23022b
Merge pull request #270 from chrisr3d/main
Deduplicated some entries
2023-12-07 16:03:14 +01:00
Christian Studer 32b2afd795
fix: [doping-substances] Deduplicated some entries 2023-12-07 15:57:46 +01:00
Alexandre Dulaunoy 8d957d224e
chg: [MANIFEST] updated 2023-11-22 11:38:45 +01:00
Alexandre Dulaunoy 6efa8c3075
fix: [tlp] updated TLP:AMBER+strict description based on #261 by @vba-anssi 2023-11-22 11:32:14 +01:00
Alexandre Dulaunoy 873fc6209f
fix: [PAP] following pull-request from @vba-anssi #261
PAP aligned with TLP version 2
2023-11-22 11:28:15 +01:00
Alexandre Dulaunoy d4b54e3f63
fix: [srbcert] various fixes
- Duplicates removed
- Numerical value added
2023-11-15 14:30:05 +01:00
Alexandre Dulaunoy 9f481f4aee
new: [srbcert] New taxonomy for the SRB-CERT 2023-11-15 14:09:51 +01:00
Alexandre Dulaunoy 1472de2c10
Merge pull request #266 from vxsh4d0w/master
Update Cryptocurrency Threat Taxonomy
2023-07-23 08:27:36 +02:00
V 135f62cace
Update machinetag.json 2023-07-22 21:50:11 +00:00
V d44ef96000
Update machinetag.json 2023-07-22 21:49:39 +00:00
13 changed files with 862 additions and 143 deletions

View File

@ -26,7 +26,7 @@
{
"description": "The Permissible Actions Protocol - or short: PAP - was designed to indicate how the received information can be used.",
"name": "PAP",
"version": 2
"version": 3
},
{
"description": "The access method used to remotely access a system.",
@ -89,9 +89,9 @@
"version": 2
},
{
"description": "CIRCL Taxonomy - Schemes of Classification in Incident Response and Detection",
"description": "CIRCL Taxonomy - Schemes of Classification in Incident Response and Detection.",
"name": "circl",
"version": 5
"version": 6
},
{
"description": "La presente taxonomia es la primera versión disponible para el Centro Nacional de Seguridad Digital del Perú.",
@ -121,10 +121,10 @@
{
"description": "A Course Of Action analysis considers six potential courses of action for the development of a cyber security capability.",
"name": "course-of-action",
"version": 2
"version": 3
},
{
"description": "The Crowdsec behaviors and classifications taxonomy is the list of taxonomies used in Crowdsec to describe the behaviors and classifications of an IP address. The behaviors are a list of attack categories for which a given IP address was reported, where the classifications describe a list of categories associated to an IP address and, when applicable, a list of false positive categories.",
"description": "Crowdsec IP address classifications and behaviors taxonomy.",
"name": "crowdsec",
"version": 1
},
@ -176,7 +176,7 @@
{
"description": "Criminal motivation and content detection the dark web: A categorisation model for law enforcement. ref: Janis Dalins, Campbell Wilson, Mark Carman. Taxonomy updated by MISP Project and extended by the JRC (Joint Research Centre) of the European Commission.",
"name": "dark-web",
"version": 5
"version": 6
},
{
"description": "Data classification for data potentially at risk of exfiltration based on table 2.1 of Solving Cyber Risk book.",
@ -238,6 +238,11 @@
"name": "domain-abuse",
"version": 2
},
{
"description": "This taxonomy aims to list doping substances",
"name": "doping-substances",
"version": 2
},
{
"description": "A taxonomy based on the superclass and class of drugs. Based on https://www.drugbank.ca/releases/latest",
"name": "drugs",
@ -301,7 +306,7 @@
{
"description": "Exercise is a taxonomy to describe if the information is part of one or more cyber or crisis exercise.",
"name": "exercise",
"version": 10
"version": 11
},
{
"description": "Reasons why an event has been extended. This taxonomy must be used on the extended event. The competitive analysis aspect is from Psychology of Intelligence Analysis by Richard J. Heuer, Jr. ref:http://www.foo.be/docs/intelligence/PsychofIntelNew.pdf",
@ -511,7 +516,7 @@
{
"description": "MISP workflow taxonomy to support result of workflow execution.",
"name": "misp-workflow",
"version": 2
"version": 3
},
{
"description": "MONARC Threats Taxonomy",
@ -626,7 +631,7 @@
{
"description": "Runtime or software packer used to combine compressed or encrypted data with the decompression or decryption code. This 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.",
"name": "runtime-packer",
"version": 1
"version": 2
},
{
"description": "Flags describing the sample",
@ -658,6 +663,11 @@
"name": "social-engineering-attack-vectors",
"version": 1
},
{
"description": "SRB-CERT Taxonomy - Schemes of Classification in Incident Response and Detection",
"name": "srbcert",
"version": 3
},
{
"description": "A spectrum of state responsibility to more directly tie the goals of attribution to the needs of policymakers.",
"name": "state-responsibility",
@ -696,7 +706,7 @@
{
"description": "The Traffic Light Protocol (TLP) (v2.0) was created to facilitate greater sharing of potentially sensitive information and more effective collaboration. Information sharing happens from an information source, towards one or more recipients. TLP is a set of four standard labels (a fifth label is included in amber to limit the diffusion) used to indicate the sharing boundaries to be applied by the recipients. Only labels listed in this standard are considered valid by FIRST. This taxonomy includes additional labels for backward compatibility which are no more validated by FIRST SIG.",
"name": "tlp",
"version": 7
"version": 10
},
{
"description": "Taxonomy to describe Tor network infrastructure",
@ -741,14 +751,9 @@
{
"description": "Workflow support language is a common language to support intelligence analysts to perform their analysis on data and information.",
"name": "workflow",
"version": 11
},
{
"description": "This taxonomy aims to list doping substances",
"name": "doping-substances",
"version": 2
"version": 12
}
],
"url": "https://raw.githubusercontent.com/MISP/misp-taxonomies/main/",
"version": "20230514"
"version": "20240304"
}

View File

@ -2,23 +2,28 @@
"namespace": "PAP",
"expanded": "Permissible Actions Protocol",
"description": "The Permissible Actions Protocol - or short: PAP - was designed to indicate how the received information can be used.",
"version": 2,
"version": 3,
"exclusive": true,
"predicates": [
{
"value": "RED",
"expanded": "(PAP:RED) Non-detectable actions only. Recipients may not use PAP:RED information on the network. Only passive actions on logs, that are not detectable from the outside.",
"colour": "#ff0000"
"colour": "#ff2b2b"
},
{
"value": "AMBER",
"expanded": "(PAP:AMBER) Passive cross check. Recipients may use PAP:AMBER information for conducting online checks, like using services provided by third parties (e.g. VirusTotal), or set up a monitoring honeypot.",
"colour": "#ffa800"
"colour": "#ffc000"
},
{
"value": "GREEN",
"expanded": "(PAP:GREEN) Active actions allowed. Recipients may use PAP:GREEN information to ping the target, block incoming/outgoing traffic from/to the target or specifically configure honeypots to interact with the target.",
"colour": "#00ad1c"
"colour": "#33ff00"
},
{
"value": "CLEAR",
"expanded": "(PAP:CLEAR) No restrictions in using this information.",
"colour": "#ffffff"
},
{
"value": "WHITE",

View File

@ -100,7 +100,7 @@ Internal taxonomy for CCCS. [Overview](https://www.misp-project.org/taxonomies.h
### circl
[circl](https://github.com/MISP/misp-taxonomies/tree/main/circl) :
CIRCL Taxonomy - Schemes of Classification in Incident Response and Detection [Overview](https://www.misp-project.org/taxonomies.html#_circl)
CIRCL Taxonomy - Schemes of Classification in Incident Response and Detection. [Overview](https://www.misp-project.org/taxonomies.html#_circl)
### cnsd
@ -135,7 +135,7 @@ A Course Of Action analysis considers six potential courses of action for the de
### crowdsec
[crowdsec](https://github.com/MISP/misp-taxonomies/tree/main/crowdsec) :
The Crowdsec behaviors and classifications taxonomy is the [list of taxonomies used in Crowdsec](https://doc.crowdsec.net/docs/next/cti_api/taxonomy) to describe the behaviors and classifications of an IP address. The behaviors are a list of attack categories for which a given IP address was reported, where the classifications describe a list of categories associated to an IP address and, when applicable, a list of false positive categories. [Overview](https://www.misp-project.org/taxonomies.html#_crowdsec)
Crowdsec IP address classifications and behaviors taxonomy. [Overview](https://www.misp-project.org/taxonomies.html#_crowdsec)
### cryptocurrency-threat
@ -185,7 +185,7 @@ Taxonomy to describe desired actions for Cytomic Orion [Overview](https://www.mi
### dark-web
[dark-web](https://github.com/MISP/misp-taxonomies/tree/main/dark-web) :
Criminal motivation on the dark web: A categorisation model for law enforcement. ref: Janis Dalins, Campbell Wilson, Mark Carman. Taxonomy updated by MISP Project [Overview](https://www.misp-project.org/taxonomies.html#_dark_web)
Criminal motivation and content detection the dark web: A categorisation model for law enforcement. ref: Janis Dalins, Campbell Wilson, Mark Carman. Taxonomy updated by MISP Project and extended by the JRC (Joint Research Centre) of the European Commission. [Overview](https://www.misp-project.org/taxonomies.html#_dark_web)
### data-classification
@ -247,6 +247,11 @@ A subset of Information Security Marking Metadata ISM as required by Executive O
[domain-abuse](https://github.com/MISP/misp-taxonomies/tree/main/domain-abuse) :
Domain Name Abuse - taxonomy to tag domain names used for cybercrime. [Overview](https://www.misp-project.org/taxonomies.html#_domain_abuse)
### doping-substances
[doping-substances](https://github.com/MISP/misp-taxonomies/tree/main/doping-substances) :
This taxonomy aims to list doping substances [Overview](https://www.misp-project.org/taxonomies.html#_doping_substances)
### drugs
[drugs](https://github.com/MISP/misp-taxonomies/tree/main/drugs) :
@ -427,6 +432,11 @@ How an incident is classified in its process to be resolved. The taxonomy is ins
[infoleak](https://github.com/MISP/misp-taxonomies/tree/main/infoleak) :
A taxonomy describing information leaks and especially information classified as being potentially leaked. The taxonomy is based on the work by CIRCL on the AIL framework. The taxonomy aim is to be used at large to improve classification of leaked information. [Overview](https://www.misp-project.org/taxonomies.html#_infoleak)
### information-origin
[information-origin](https://github.com/MISP/misp-taxonomies/tree/main/information-origin) :
Taxonomy for tagging information by its origin: human-generated or AI-generated. [Overview](https://www.misp-project.org/taxonomies.html#_information_origin)
### information-security-data-source
[information-security-data-source](https://github.com/MISP/misp-taxonomies/tree/main/information-security-data-source) :
@ -662,6 +672,11 @@ Threat taxonomy in the scope of securing smart airports by ENISA. https://www.en
[social-engineering-attack-vectors](https://github.com/MISP/misp-taxonomies/tree/main/social-engineering-attack-vectors) :
Attack vectors used in social engineering as described in 'A Taxonomy of Social Engineering Defense Mechanisms' by Dalal Alharthi and others. [Overview](https://www.misp-project.org/taxonomies.html#_social_engineering_attack_vectors)
### srbcert
[srbcert](https://github.com/MISP/misp-taxonomies/tree/main/srbcert) :
SRB-CERT Taxonomy - Schemes of Classification in Incident Response and Detection [Overview](https://www.misp-project.org/taxonomies.html#_srbcert)
### state-responsibility
[state-responsibility](https://github.com/MISP/misp-taxonomies/tree/main/state-responsibility) :

View File

@ -2,7 +2,7 @@
"namespace": "course-of-action",
"expanded": "Courses of Action",
"description": "A Course Of Action analysis considers six potential courses of action for the development of a cyber security capability.",
"version": 2,
"version": 3,
"predicates": [
{
"value": "passive",
@ -21,6 +21,10 @@
"value": "discover",
"expanded": "The discover action is a 'historical look at the data'. This action heavily relies on your capability to store logs for a reasonable amount of time and have them accessible for searching. Typically, this type of action is applied against security information and event management (SIEM) or stored network data. The goal is to determine whether you have seen a specific indicator in the past."
},
{
"value": "nodiscover",
"expanded": "The no-discover action is a negation of discover in case you want to explicit prohibit 'historical look at the data'. The goal is to exclude a specific indicator from searches of historical data."
},
{
"value": "detect",
"expanded": "The passive action is setting up detection rules of an indicator for future traffic. These actions are most often executed via an intrusion detection system (IDS) or a specific logging rule on your firewall or application. It can also be configured as an alert in a SIEM when a specific condition is triggered."

View File

@ -43,6 +43,10 @@
"value": "Crypto Robbing Ransomware",
"expanded": "Cyber-extortionists began distributing new malware that empties cryptocurrency wallets and steals private keys while holding user data hostage."
},
{
"value": "Rag Pull",
"expanded": "Crypto scam that occurs when a team pumps their projects token before disappearing with the funds, leaving their investors with a valueless asset."
},
{
"value": "Pig Butchering Scam",
"expanded": "Cryptocurrency investment fraud that lures individuals into investing their money in seemingly legitimate and profitable ventures."

View File

@ -2,7 +2,7 @@
"namespace": "dark-web",
"expanded": "Dark Web",
"description": "Criminal motivation and content detection the dark web: A categorisation model for law enforcement. ref: Janis Dalins, Campbell Wilson, Mark Carman. Taxonomy updated by MISP Project and extended by the JRC (Joint Research Centre) of the European Commission.",
"version": 5,
"version": 6,
"predicates": [
{
"value": "topic",
@ -359,6 +359,11 @@
"expanded": "videos",
"description": "Videos and streaming"
},
{
"value": "ransomware-post",
"expanded": "ransomwarePost",
"description": "Ransomware post published by a ransomware group"
},
{
"value": "unclear",
"expanded": "unclear",
@ -473,6 +478,31 @@
"value": "pgp-public-key-block",
"expanded": "pgpPublicKeyBlock",
"description": "PGP public key block identified in the dark-web site"
},
{
"value": "country",
"expanded": "country",
"description": "Associated country detected on the code of the dark-web site, following ISO 3166-1 alpha-2"
},
{
"value": "company-name",
"expanded": "companyName",
"description": "Company name identified in a dark-web site"
},
{
"value": "company-link",
"expanded": "companyLink",
"description": "Company link identified in a dark-web site"
},
{
"value": "victim-address",
"expanded": "victimAddress",
"description": "Business address identified in a dark-web site"
},
{
"value": "victim-TLD",
"expanded": "victimTLD",
"description": "Business Top Level Domain (TLD) of a company identified in a dark-web site"
}
]
}

View File

@ -451,9 +451,6 @@
{
"value": "fenoterol"
},
{
"value": "formoterol"
},
{
"value": "higenamine"
},
@ -472,12 +469,6 @@
{
"value": "reproterol"
},
{
"value": "salbutamol"
},
{
"value": "salmeterol"
},
{
"value": "terbutaline"
},
@ -488,9 +479,6 @@
{
"value": "tulobuterol"
},
{
"value": "vilanterol"
},
{
"value": "salbutamol",
"expanded": "inhaled salbutamol: maximum 1600 micrograms over 24 hours in divided doses not to exceed 600 micrograms over 8 hours starting from any dose"

View File

@ -45,6 +45,11 @@
{
"predicate": "cyber-europe",
"entry": [
{
"value": "2024",
"expanded": "2024",
"description": "7th pan European cyber crisis exercise: Cyber Europe 2024 (CE2024)"
},
{
"value": "2022",
"expanded": "2022",
@ -104,6 +109,16 @@
"value": "2022",
"expanded": "2022",
"description": "Locked Shields 2022"
},
{
"value": "2023",
"expanded": "2023",
"description": "Locked Shields 2023"
},
{
"value": "2024",
"expanded": "2024",
"description": "Locked Shields 2024"
}
]
},
@ -193,7 +208,7 @@
]
}
],
"version": 10,
"version": 11,
"description": "Exercise is a taxonomy to describe if the information is part of one or more cyber or crisis exercise.",
"expanded": "Exercise",
"namespace": "exercise"

View File

@ -1,7 +1,7 @@
{
"namespace": "malware_classification",
"description": "Classification based on different categories. Based on https://www.sans.org/reading-room/whitepapers/incident/malware-101-viruses-32848",
"version": 2,
"version": 3,
"predicates": [
{
"value": "malware-category",
@ -52,6 +52,10 @@
"value": "Adware",
"expanded": "Adware"
},
{
"value": "Stalkerware",
"expanded": "Stalkerware"
},
{
"value": "Spyware",
"expanded": "Spyware"

193
srbcert/machinetag.json Normal file
View File

@ -0,0 +1,193 @@
{
"namespace": "srbcert",
"description": "SRB-CERT Taxonomy - Schemes of Classification in Incident Response and Detection",
"version": 3,
"predicates": [
{
"value": "incident-type",
"expanded": "Incident Type"
},
{
"value": "incident-criticality-level",
"expanded": "Incident Criticality Level"
}
],
"values": [
{
"predicate": "incident-type",
"entry": [
{
"value": "virus",
"expanded": "virus",
"description": "Virus is a piece of malicious code that aims to spread from computer to computer by attacking executable files and documents and can cause deliberate deletion of files from the hard drive and similar damage"
},
{
"value": "worm",
"expanded": "worm",
"description": "Worm is a program that contains malicious code that spreads over a network, in such a way that it can reproduce and transfer , which reproduces and transfers independently, i.e. it does not depend on the files of the infected person device. Worms spread to email addresses from the victim's contact list or exploit the vulnerabilities of network applications and, due to the high speed of propagation, serve for transmission of other types of malicious software "
},
{
"value": "ransomware",
"expanded": "Ransomware"
},
{
"value": "trojan",
"expanded": "Trojan"
},
{
"value": "spyware",
"expanded": "Spyware"
},
{
"value": "rootkit",
"expanded": "Rootkit"
},
{
"value": "malware",
"expanded": "Malware is a word derived from two words - Malicious Software, and represents any software that is written for malicious purposes, i.e. that aims to cause harm computer systems or networks"
},
{
"value": "port-scanning",
"expanded": "Port scanning"
},
{
"value": "sniffing",
"expanded": "Sniffing"
},
{
"value": "social-engineering",
"expanded": "Social engineering"
},
{
"value": "data-breaches",
"expanded": "Data breaches"
},
{
"value": "other-type-of-information-gathering",
"expanded": "Other type of information gathering"
},
{
"value": "phishing",
"expanded": "Phishing"
},
{
"value": "unauthorized-use-of-resources",
"expanded": "Unauthorized use of resources"
},
{
"value": "fraud",
"expanded": "Fraud"
},
{
"value": "exploiting-known-vulnerabilities",
"expanded": "Exploiting known vulnerabilities"
},
{
"value": "brute-force",
"expanded": "Brute force"
},
{
"value": "other-type-of-intrusion-attempts",
"expanded": "Other type of Intrusion Attempts"
},
{
"value": "privilege-account-compromise",
"expanded": "Privilege account compromise"
},
{
"value": "unprivileged-account-compromise",
"expanded": "Unprivileged account compromise"
},
{
"value": "application-compromise",
"expanded": "Application compromise"
},
{
"value": "botnet",
"expanded": "Botnet"
},
{
"value": "other-type-of-intrusions",
"expanded": "Other type of intrusions"
},
{
"value": "dos",
"expanded": "DoS"
},
{
"value": "ddos",
"expanded": "DDoS"
},
{
"value": "sabotage",
"expanded": "Sabotage"
},
{
"value": "outage",
"expanded": "Outage"
},
{
"value": "other-type-of-availability-incident",
"expanded": "Other type of Availability incident"
},
{
"value": "unauthorized-access-to-information",
"expanded": "Unauthorized access to information"
},
{
"value": "unauthorized-modification-of-information",
"expanded": "Unauthorized modification of information"
},
{
"value": "cryptographic-attack",
"expanded": "Cryptographic attack"
},
{
"value": "other-type-of-information-content-security-incident",
"expanded": "Other type of Information Content Security incident"
},
{
"value": "hardware-errors",
"expanded": "Hardware errors"
},
{
"value": "software-errors",
"expanded": "Software errors"
},
{
"value": "hardware-components-theft",
"expanded": "hardware-components-theft"
},
{
"value": "other",
"expanded": "Other"
}
]
},
{
"predicate": "incident-criticality-level",
"entry": [
{
"value": "low",
"expanded": "Low",
"numerical_value": 25
},
{
"value": "medium",
"expanded": "Medium",
"numerical_value": 50
},
{
"value": "high",
"expanded": "High",
"numerical_value": 75
},
{
"value": "very-high",
"expanded": "Very High",
"numerical_value": 100
}
]
}
]
}

View File

@ -1,5 +1,5 @@
# Taxonomies
- Generation date: 2022-01-22
- Generation date: 2023-12-31
- license: CC-0
- description: Manifest file of MISP taxonomies available.
@ -55,13 +55,29 @@
- 2
- 1
- 0
### GrayZone
- description: Gray Zone of Active defense includes all elements which lay between reactive defense elements and offensive operations. It does fill the gray spot between them. Taxo may be used for active defense planning or modeling.
- version: 3
- Predicates
- Adversary Emulation
- Beacons
- Deterrence
- Deception
- Tarpits, Sandboxes and Honeypots
- Threat Intelligence
- Threat Hunting
- Adversary Takedowns
- Ransomware
- Rescue Missions
- Sanctions, Indictments & Trade Remedies
### PAP
- description: The Permissible Actions Protocol - or short: PAP - was designed to indicate how the received information can be used.
- version: 2
- version: 3
- Predicates
- RED
- AMBER
- GREEN
- CLEAR
- WHITE
### access-method
- description: The access method used to remotely access a system.
@ -154,6 +170,33 @@
- cat4
- cat5
- cat6
### artificial-satellites
- description: This taxonomy was designed to describe artificial satellites
- version: 1
- Predicates
- Meteorological and Earth observation
- Indian Space Research
- GEO
- Tracking
- Search & Rescue
- Earth Ressources
- Disaster Monitoring
- GNSS
- Space & Earth Science
- Geodetic
- Engineering
- Education
### aviation
- description: A taxonomy describing security threats or incidents against the aviation sector.
- version: 1
- Predicates
- target
- target-systems
- target-sub-systems
- impact
- likelihood
- criticality
- certainty
### binary-class
- description: Custom taxonomy for types of binary file.
- version: 2
@ -179,11 +222,25 @@
- severity
- threat-vector
### circl
- description: CIRCL Taxonomy - Schemes of Classification in Incident Response and Detection
- version: 5
- description: CIRCL Taxonomy - Schemes of Classification in Incident Response and Detection.
- version: 6
- Predicates
- incident-classification
- topic
- significant
### cnsd
- description: La presente taxonomia es la primera versión disponible para el Centro Nacional de Seguridad Digital del Perú.
- version: 20220513
- Predicates
- Contenido abusivo
- Disponibilidad
- Fraude
- Fuga de información
- Intentos de intrusión
- Intrusión
- Malware
- Recopilación de información
- Otros
### coa
- description: Course of action taken within organization to discover, detect, deny, disrupt, degrade, deceive and/or destroy an attack.
- version: 2
@ -234,9 +291,9 @@
- passive
- active
### crowdsec
- description: The Crowdsec behaviors and classifications taxonomy is the list of taxonomies used in Crowdsec to describe the behaviors and classifications of an IP address. The behaviors are a list of attack categories for which a given IP address was reported, where the classifications describe a list of categories associated to an IP address and, when applicable, a list of false positive categories.
- description: Crowdsec IP address classifications and behaviors taxonomy.
- version: 1
- predicates
- Predicates
- behavior
- false-positive
- classification
@ -254,6 +311,7 @@
- Decentralized Stable Coins
- Email Extortion and Bomb Threats
- Crypto Robbing Ransomware
- Pig Butchering Scam
### csirt-americas
- description: Taxonomía CSIRT Américas.
- version: 1
@ -323,12 +381,14 @@
- Predicates
- action
### dark-web
- description: Criminal motivation on the dark web: A categorisation model for law enforcement. ref: Janis Dalins, Campbell Wilson, Mark Carman. Taxonomy updated by MISP Project
- version: 4
- description: Criminal motivation and content detection the dark web: A categorisation model for law enforcement. ref: Janis Dalins, Campbell Wilson, Mark Carman. Taxonomy updated by MISP Project and extended by the JRC (Joint Research Centre) of the European Commission.
- version: 5
- Predicates
- topic
- motivation
- structure
- service
- content
### data-classification
- description: Data classification for data potentially at risk of exfiltration based on table 2.1 of Solving Cyber Risk book.
- version: 1
@ -354,6 +414,143 @@
- Predicates
- Einstufung
- Schutzwort
### death-possibilities
- description: Taxonomy of Death Possibilities
- version: 1
- Predicates
- (001-009) Intestinal infectious diseases
- (010-018) Tuberculosis
- (020-027) Zoonotic bacterial diseases
- (030-041) Other bacterial diseases
- (042-042) Human immunodeficiency virus [HIV] infection
- (045-049) Poliomyelitis and other non-arthropod-borne viral diseases of central nervous system
- (050-057) Viral diseases accompanied by exanthem
- (060-066) Arthropod-borne viral diseases
- (070-079) Other diseases due to viruses and Chlamydiae
- (080-088) Rickettsioses and other arthropod-borne diseases
- (090-099) Syphilis and other venereal diseases
- (100-104) Other spirochaetal diseases
- (110-118) Mycoses
- (120-129) Helminthiases
- (130-136) Other infectious and parasitic diseases
- (137-139) Late effects of infectious and parasitic diseases
- (140-149) Malignant neoplasm of lip, oral cavity and pharynx
- (150-159) Malignant neoplasm of digestive organs and peritoneum
- (160-165) Malignant neoplasm of respiratory and intrathoracic organs
- (170-176) Malignant neoplasm of bone, connective tissue, skin and breast
- (179-189) Malignant neoplasm of genito-urinary organs
- (190-199) Malignant neoplasm of other and unspecified sites
- (200-208) Malignant neoplasm of lymphatic and haematopoietic tissue
- (210-229) Benign neoplasms
- (230-234) Carcinoma in situ
- (235-238) Neoplasms of uncertain behaviour
- (239-239) Neoplasms of unspecified nature
- (240-246) Disorders of thyroid gland
- (250-259) Diseases of other endocrine glands
- (260-269) Nutritional deficiencies
- (270-279) Other metabolic disorders and immunity disorders
- (280-289) Diseases of blood and blood-forming organs
- (290-294) Organic psychotic conditions
- (295-299) Other psychoses
- (300-316) Neurotic disorders, personality disorders and other nonpsychotic mental disorders
- (317-319) Mental retardation
- (320-326) Inflammatory diseases of the central nervous system
- (330-337) Hereditary and degenerative diseases of the central nervous system
- (340-349) Other disorders of the central nervous system
- (350-359) Disorders of the peripheral nervous system
- (360-379) Disorders of the eye and adnexa
- (380-389) Diseases of the ear and mastoid process
- (390-392) Acute rheumatic fever
- (393-398) Chronic rheumatic heart disease
- (401-405) Hypertensive disease
- (410-414) Ischaemic heart disease
- (415-417) Diseases of pulmonary circulation
- (420-429) Other forms of heart disease
- (430-438) Cerebrovascular disease
- (440-448) Diseases of arteries, arterioles and capillaries
- (451-459) Diseases of veins and lymphatics, and other diseases of circulatory system
- (460-466) Acute respiratory infections
- (470-478) Other diseases of upper respiratory tract
- (480-487) Pneumonia and influenza
- (490-496) Chronic obstructive pulmonary disease and allied conditions
- (500-508) Pneumoconioses and other lung diseases due to external agents
- (510-519) Other diseases of respiratory system
- (520-529) Diseases of oral cavity, salivary glands and jaws
- (530-537) Diseases of oesophagus, stomach and duodenum
- (540-543) Appendicitis
- (550-553) Hernia of abdominal cavity
- (555-558) Non-infective enteritis and colitis
- (560-569) Other diseases of intestines and peritoneum
- (570-579) Other diseases of digestive system
- (580-589) Nephritis, nephrotic syndrome and nephrosis
- (590-599) Other diseases of urinary system
- (600-608) Diseases of male genital organs
- (610-611) Disorders of breast
- (614-616) Inflammatory disease of female pelvic organs
- (617-629) Other disorders of female genital tract
- (630-633) Ectopic and molar pregnancy
- (634-639) Other pregnancy with abortive outcome
- (640-648) Complications mainly related to pregnancy
- (650-659) Normal delivery and other indications for care in pregnancy, labour and delivery
- (660-669) Complications occurring mainly in the course of labour and delivery
- (670-677) Complications of the puerperium
- (680-686) Infections of skin and subcutaneous tissue
- (690-698) Other inflammatory conditions of skin and subcutaneous tissue
- (700-709) Other diseases of skin and subcutaneous tissue
- (710-719) Arthropathies and related disorders
- (720-724) Dorsopathies
- (725-729) Rheumatism, excluding the back
- (730-739) Osteopathies, chondropathies and acquired musculoskeletal deformities
- (740-759) Congenital anomalies
- (760-763) Maternal causes of perinatal morbidity and mortality
- (764-779) Other conditions originating in the perinatal period
- (780-789) Symptoms
- (790-796) Nonspecific abnormal findings
- (797-799) Ill-defined and unknown causes of morbidity and mortality
- (800-804) Fracture of skull
- (805-809) Fracture of neck and trunk
- (810-819) Fracture of upper limb
- (820-829) Fracture of lower limb
- (830-839) Dislocation
- (840-848) Sprains and strains of joints and adjacent muscles
- (850-854) Intracranial injury, excluding those with skull fracture
- (860-869) Internal injury of chest, abdomen and pelvis
- (870-879) Open wound of head, neck and trunk
- (880-887) Open wound of upper limb
- (890-897) Open wound of lower limb
- (900-904) Injury to blood vessels
- (905-909) Late effects of injuries, poisonings, toxic effects and other external causes
- (910-919) Superficial injury
- (920-924) Contusion with intact skin surface
- (925-929) Crushing injury
- (930-939) Effects of foreign body entering through orifice
- (940-949) Burns
- (950-957) Injury to nerves and spinal cord
- (958-959) Certain traumatic complications and unspecified injuries
- (960-979) Poisoning by drugs, medicaments and biological substances
- (980-989) Toxic effects of substances chiefly nonmedicinal as to source
- (990-995) Other and unspecified effects of external causes
- (996-999) Complications of surgical and medical care, not elsewhere classified
- (E800-E807) Railway accidents
- (E810-E819) Motor vehicle traffic accidents
- (E820-E825) Motor vehicle nontraffic accidents
- (E826-E829) Other road vehicle accidents
- (E830-E838) Water transport accidents
- (E840-E845) Air and space transport accidents
- (E846-E848) Vehicle accidents not elsewhere classifiable
- (E849-E858) Accidental poisoning by drugs, medicaments and biologicals
- (E860-E869) Accidental poisoning by other solid and liquid substances, gases and vapours
- (E870-E876) Misadventures to patients during surgical and medical care
- (E878-E879) Surgical and medical procedures as the cause of abnormal reaction of patient or later complication, without mention of misadventure at the time of procedure
- (E880-E888) Accidental falls
- (E890-E899) Accidents caused by fire and flames
- (E900-E909) Accidents due to natural and environmental factors
- (E910-E915) Accidents caused by submersion, suffocation and foreign bodies
- (E916-E928) Other accidents
- (E929-E929) Late effects of accidental injury
- (E930-E949) Drugs, medicaments and biological substances causing adverse effects in therapeutic use
- (E950-E959) Suicide and self-inflicted injury
- (E960-E969) Homicide and injury purposely inflicted by other persons
### deception
- description: Deception is an important component of information operations, valuable for both offense and defense.
- version: 1
@ -365,6 +562,12 @@
- quality
- essence
- speech-act-theory
### dga
- description: A taxonomy to describe domain-generation algorithms often called DGA. Ref: A Comprehensive Measurement Study of Domain Generating Malware Daniel Plohmann and others.
- version: 2
- Predicates
- generation-scheme
- seeding
### dhs-ciip-sectors
- description: DHS critical sectors as in https://www.dhs.gov/critical-infrastructure-sectors
- version: 2
@ -379,6 +582,15 @@
- Capability
- Infrastructure
- Victim
### diamond-model-for-influence-operations
- description: The diamond model for influence operations analysis is a framework that leads analysts and researchers toward a comprehensive understanding of a malign influence campaign by addressing the socio-political, technical, and psychological aspects of the campaign. The diamond model for influence operations analysis consists of 5 components: 4 corners and a core element. The 4 corners are divided into 2 axes: influencer and audience on the socio-political axis, capabilities and infrastructure on the technical axis. Narrative makes up the core of the diamond.
- version: 1
- Predicates
- Influencer
- Capabilities
- Infrastructure
- Audience
- Narrative
### dni-ism
- description: A subset of Information Security Marking Metadata ISM as required by Executive Order (EO) 13526. As described by DNI.gov as Data Encoding Specifications for Information Security Marking Metadata in Controlled Vocabulary Enumeration Values for ISM
- version: 3
@ -398,6 +610,23 @@
- Predicates
- domain-status
- domain-access-method
### doping-substances
- description: This taxonomy aims to list doping substances
- version: 2
- Predicates
- anabolic agents
- peptide hormones, growth factors, related substances and mimetics
- beta-2 agonists
- hormone and metabolic modulators
- diuretics and masking agents
- manipulation of blood and blood components
- chemical and physical manipulation
- gene and cell doping
- stimulants
- narcotics
- cannabinoids
- glucocorticoids
- beta-blockers
### drugs
- description: A taxonomy based on the superclass and class of drugs. Based on https://www.drugbank.ca/releases/latest
- version: 2
@ -578,14 +807,15 @@
- cyber-sopex
- generic
### extended-event
- description: Reasons why an event has been extended.
- version: 1
- description: Reasons why an event has been extended. This taxonomy must be used on the extended event. The competitive analysis aspect is from Psychology of Intelligence Analysis by Richard J. Heuer, Jr. ref:http://www.foo.be/docs/intelligence/PsychofIntelNew.pdf
- version: 2
- Predicates
- competitive-analysis
- extended-analysis
- human-readable
- chunked-event
- update
- counter-analysis
### failure-mode-in-machine-learning
- description: The purpose of this taxonomy is to jointly tabulate both the of these failure modes in a single place. Intentional failures wherein the failure is caused by an active adversary attempting to subvert the system to attain her goals either to misclassify the result, infer private training data, or to steal the underlying algorithm. Unintentional failures wherein the failure is because an ML system produces a formally correct but completely unsafe outcome.
- version: 1
@ -594,7 +824,7 @@
- unintended-failures-summary
### false-positive
- description: This taxonomy aims to ballpark the expected amount of false positives.
- version: 5
- version: 7
- Predicates
- risk
- confirmed
@ -603,6 +833,15 @@
- version: 1
- Predicates
- type
### financial
- description: Financial taxonomy to describe financial services, infrastructure and financial scope.
- version: 7
- Predicates
- categories-and-types-of-services
- geographical-footprint
- online-exposition
- physical-presence
- services
### flesch-reading-ease
- description: Flesch Reading Ease is a revised system for determining the comprehension difficulty of written material. The scoring of the flesh score can have a maximum of 121.22 and there is no limit on how low a score can be (negative score are valid).
- version: 2
@ -827,6 +1066,13 @@
- submission
- output-format
- certainty
### information-origin
- description: Taxonomy for tagging information by its origin: human-generated or AI-generated.
- version: 2
- Predicates
- human-generated
- AI-generated
- uncertain-origin
### information-security-data-source
- description: Taxonomy to classify the information security data sources.
- version: 1
@ -978,6 +1224,14 @@
- misp2yara
- event-type
- ids
### misp-workflow
- description: MISP workflow taxonomy to support result of workflow execution.
- version: 3
- Predicates
- action-taken
- analysis
- mutability
- run
### monarc-threat
- description: MONARC Threats Taxonomy
- version: 1
@ -1022,6 +1276,19 @@
- nature-root-cause
- nature-severity
- test
### nis2
- description: The taxonomy is meant for large scale cybersecurity incidents, as mentioned in the Commission Recommendation of 13 May 2022, also known as the provisional agreement. It has two core parts: The nature of the incident, i.e. the underlying cause, that triggered the incident, and the impact of the incident, i.e. the impact on services, in which sector(s) of economy and society.
- version: 3
- Predicates
- impact-sectors-impacted
- impact-subsectors-impacted
- important-entities
- impact-subsectors-important-entities
- impact-severity
- impact-outlook
- nature-root-cause
- nature-severity
- test
### open_threat
- description: Open Threat Taxonomy v1.1 base on James Tarala of SANS http://www.auditscripts.com/resources/open_threat_taxonomy_v1.1a.pdf, https://files.sans.org/summit/Threat_Hunting_Incident_Response_Summit_2016/PDFs/Using-Open-Tools-to-Convert-Threat-Intelligence-into-Practical-Defenses-James-Tarala-SANS-Institute.pdf, https://www.youtube.com/watch?v=5rdGOOFC_yE, and https://www.rsaconference.com/writable/presentations/file_upload/str-r04_using-an-open-source-threat-model-for-prioritized-defense-final.pdf
- version: 1
@ -1072,6 +1339,12 @@
- state
- psychological-acceptability
- principle-of-persuasion
### poison-taxonomy
- description: Non-exhaustive taxonomy of natural poison
- version: 1
- Predicates
- Poisonous plant
- Poisonous fungus
### political-spectrum
- description: A political spectrum is a system to characterize and classify different political positions in relation to one another.
- version: 1
@ -1089,6 +1362,20 @@
- low
- baseline-minor
- baseline-negligible
### pyoti
- description: PyOTI automated enrichment schemes for point in time classification of indicators.
- version: 3
- Predicates
- checkdmarc
- disposable-email
- emailrepio
- iris-investigate
- virustotal
- circl-hashlookup
- reputation-block-list
- abuseipdb
- greynoise-riot
- googlesafebrowsing
### ransomware
- description: Ransomware is used to define ransomware types and the elements that compose them.
- version: 6
@ -1101,6 +1388,17 @@
- infection
- communication
- malicious-action
### ransomware-roles
- description: The seven roles seen in most ransomware incidents.
- version: 1
- Predicates
- 1 - Initial Access Broker
- 2 - Ransomware Affiliate
- 3 - Data Manager
- 4 - Ransomware Operator
- 5 - Negotiator
- 6 - Chaser
- 7 - Accountant
### retention
- description: Add a retenion time to events to automatically remove the IDS-flag on ip-dst or ip-src attributes. We calculate the time elapsed based on the date of the event. Supported time units are: d(ays), w(eeks), m(onths), y(ears). The numerical_value is just for sorting in the web-interface and is not used for calculations.
- version: 3
@ -1137,11 +1435,13 @@
- Predicates
- event-status
### runtime-packer
- description: 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.
- version: 1
- description: Runtime or software packer used to combine compressed or encrypted data with the decompression or decryption code. This 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.
- version: 2
- Predicates
- portable-executable
- dex
- elf
- macho
- pe
- cli-assembly
### scrippsco2-fgc
- description: Flags describing the sample
@ -1187,6 +1487,21 @@
- NZD
- PSA
- SPO
### sentinel-threattype
- description: Sentinel indicator threat types.
- version: 1
- Predicates
- Botnet
- C2
- CryptoMining
- Darknet
- DDoS
- MaliciousUrl
- Malware
- Phishing
- Proxy
- PUA
- WatchList
### smart-airports-threats
- description: Threat taxonomy in the scope of securing smart airports by ENISA. https://www.enisa.europa.eu/publications/securing-smart-airports
- version: 1
@ -1196,6 +1511,18 @@
- natural-and-social-phenomena
- third-party-failures
- malicious-actions
### social-engineering-attack-vectors
- description: Attack vectors used in social engineering as described in 'A Taxonomy of Social Engineering Defense Mechanisms' by Dalal Alharthi and others.
- version: 1
- Predicates
- technical
- non-technical
### srbcert
- description: SRB-CERT Taxonomy - Schemes of Classification in Incident Response and Detection
- version: 3
- Predicates
- incident-type
- incident-criticality-level
### state-responsibility
- description: A spectrum of state responsibility to more directly tie the goals of attribution to the needs of policymakers.
- version: 1
@ -1228,13 +1555,15 @@
- technical-sophistication-multiplier
### thales_group
- description: Thales Group Taxonomy - was designed with the aim of enabling desired sharing and preventing unwanted sharing between Thales Group security communities.
- version: 2
- version: 4
- Predicates
- distribution
- to_block
- minarm
- acn
- sigpart
- a_isac
- intercert_france
- ioc_confidence
- tlp:black
- Watcher
@ -1254,14 +1583,17 @@
- dns-server-attacks
- dns-abuse-or-misuse
### tlp
- description: 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.
- version: 5
- description: The Traffic Light Protocol (TLP) (v2.0) was created to facilitate greater sharing of potentially sensitive information and more effective collaboration. Information sharing happens from an information source, towards one or more recipients. TLP is a set of four standard labels (a fifth label is included in amber to limit the diffusion) used to indicate the sharing boundaries to be applied by the recipients. Only labels listed in this standard are considered valid by FIRST. This taxonomy includes additional labels for backward compatibility which are no more validated by FIRST SIG.
- version: 10
- Predicates
- red
- amber
- amber+strict
- green
- white
- clear
- ex:chr
- unclear
### tor
- description: Taxonomy to describe Tor network infrastructure
- version: 1
@ -1385,7 +1717,7 @@
- degré-de-probabilité
### workflow
- description: Workflow support language is a common language to support intelligence analysts to perform their analysis on data and information.
- version: 11
- version: 12
- Predicates
- todo
- state

View File

@ -15,7 +15,7 @@
{
"colour": "#FFC000",
"description": "Limited disclosure, recipients can only spread this on a need-to-know basis within their organization. Sources may use TLP:AMBER+STRICT when information requires support to be effectively acted upon, yet carries risk to privacy, reputation, or operations if shared outside of the organizations involved. Recipients may share TLP:AMBER+STRICT information with members of their own organization.",
"expanded": "Limited disclosure, recipients can only spread this on a need-to-know basis within their organization.",
"expanded": "(TLP:AMBER+STRICT) Limited disclosure, recipients can only spread this on a need-to-know basis within their organization.",
"value": "amber+strict"
},
{
@ -50,7 +50,7 @@
"refs": [
"https://www.first.org/tlp"
],
"version": 9,
"version": 10,
"description": "The Traffic Light Protocol (TLP) (v2.0) was created to facilitate greater sharing of potentially sensitive information and more effective collaboration. Information sharing happens from an information source, towards one or more recipients. TLP is a set of four standard labels (a fifth label is included in amber to limit the diffusion) used to indicate the sharing boundaries to be applied by the recipients. Only labels listed in this standard are considered valid by FIRST. This taxonomy includes additional labels for backward compatibility which are no more validated by FIRST SIG.",
"expanded": "Traffic Light Protocol",
"exclusive": true,

View File

@ -32,25 +32,35 @@ import argparse
import os
import sys
skip_list = ['death-possibilities', 'poison-taxonomy', 'doping-substances']
skip_list = ["death-possibilities", "poison-taxonomy", "doping-substances"]
taxonomies = []
# Get our current directory from file location
thisDir = os.path.dirname(__file__)
argParser = argparse.ArgumentParser(description='Dump Machine Tags (Triple Tags) from MISP taxonomies', epilog='Available taxonomies are {0}'.format(taxonomies))
argParser.add_argument('-e', action='store_true', help='Include expanded tags')
argParser.add_argument('-a', action='store_true', help='Generate asciidoctor document from MISP taxonomies')
argParser.add_argument('-v', action='store_true', help='Include descriptions')
argParser.add_argument('-n', default=False, help='Show only the specified namespace')
argParser.add_argument('--disable-skip-list', default=False, action='store_true', help='disable default skip list')
argParser = argparse.ArgumentParser(
description="Dump Machine Tags (Triple Tags) from MISP taxonomies",
epilog="Available taxonomies are {0}".format(taxonomies),
)
argParser.add_argument("-e", action="store_true", help="Include expanded tags")
argParser.add_argument(
"-a", action="store_true", help="Generate asciidoctor document from MISP taxonomies"
)
argParser.add_argument("-v", action="store_true", help="Include descriptions")
argParser.add_argument("-n", default=False, help="Show only the specified namespace")
argParser.add_argument(
"--disable-skip-list",
default=False,
action="store_true",
help="disable default skip list",
)
args = argParser.parse_args()
if args.disable_skip_list:
skip_list = ''
skip_list = ""
for folder in os.listdir(os.path.join(thisDir, '../')):
if os.path.isfile(os.path.join(thisDir, '../', folder, 'machinetag.json')):
for folder in os.listdir(os.path.join(thisDir, "../")):
if os.path.isfile(os.path.join(thisDir, "../", folder, "machinetag.json")):
if folder in skip_list:
continue
taxonomies.append(folder)
@ -58,23 +68,35 @@ for folder in os.listdir(os.path.join(thisDir, '../')):
taxonomies.sort()
doc = ''
doc = ""
if args.a:
dedication = "\n[dedication]\n== Funding and Support\nThe MISP project is financially and resource supported by https://www.circl.lu/[CIRCL Computer Incident Response Center Luxembourg ].\n\nimage:{images-misp}logo.png[CIRCL logo]\n\nA CEF (Connecting Europe Facility) funding under CEF-TC-2016-3 - Cyber Security has been granted from 1st September 2017 until 31th August 2019 as ***Improving MISP as building blocks for next-generation information sharing***.\n\nimage:{images-misp}en_cef.png[CEF funding]\n\nIf you are interested to co-fund projects around MISP, feel free to get in touch with us.\n\n"
doc = doc + ":toc: right\n"
doc = doc + ":toclevels: 1\n"
doc = doc + ":icons: font\n"
doc = doc + ":images-cdn: https://raw.githubusercontent.com/MISP/MISP/2.4/INSTALL/logos/\n"
doc = (
doc
+ ":images-cdn: https://raw.githubusercontent.com/MISP/MISP/2.4/INSTALL/logos/\n"
)
doc = doc + ":images-misp: https://www.misp-project.org/assets/images/\n"
doc = doc + "= MISP taxonomies and classification as machine tags\n\n"
doc = doc + "= Introduction\n"
doc = doc + "\nimage::{images-cdn}misp-logo.png[MISP logo]\n"
doc = doc + "The MISP threat sharing platform is a free and open source software helping information sharing of threat intelligence including cyber security indicators, financial fraud or counter-terrorism information. The MISP project includes multiple sub-projects to support the operational requirements of analysts and improve the overall quality of information shared.\n\n"
doc = (
doc
+ "The MISP threat sharing platform is a free and open source software helping information sharing of threat intelligence including cyber security indicators, financial fraud or counter-terrorism information. The MISP project includes multiple sub-projects to support the operational requirements of analysts and improve the overall quality of information shared.\n\n"
)
doc = doc + ""
doc = "{} {} {} {}".format(doc, "\nTaxonomies that can be used in MISP (2.4) and other information sharing tool and expressed in Machine Tags (Triple Tags).",
"A machine tag is composed of a namespace (MUST), a predicate (MUST) and an (OPTIONAL) value.",
"Machine tags are often called triple tag due to their format.\n")
doc = doc + "The following document is generated from the machine-readable JSON describing the https://github.com/MISP/misp-taxonomies[MISP taxonomies]."
doc = "{} {} {} {}".format(
doc,
"\nTaxonomies that can be used in MISP (2.4) and other information sharing tool and expressed in Machine Tags (Triple Tags).",
"A machine tag is composed of a namespace (MUST), a predicate (MUST) and an (OPTIONAL) value.",
"Machine tags are often called triple tag due to their format.\n",
)
doc = (
doc
+ "The following document is generated from the machine-readable JSON describing the https://github.com/MISP/misp-taxonomies[MISP taxonomies]."
)
doc = doc + "\n\n"
doc = doc + "<<<\n"
doc = doc + dedication
@ -87,31 +109,37 @@ if args.n:
taxonomies.append(args.n)
def asciidoc(content=False, adoc=doc, t='title', toplevel=False):
def asciidoc(content=False, adoc=doc, t="title", toplevel=False):
if not args.a:
return False
adoc = adoc + "\n"
if t == 'title':
content = '==== ' + content
elif t == 'predicate':
content = '=== ' + content
elif t == 'namespace':
content = '== ' + content + '\n'
content = "{}\n{}{} {}{}{} {}".format(content, 'NOTE: ', namespace, 'namespace available in JSON format at https://github.com/MISP/misp-taxonomies/blob/main/',
namespace, '/machinetag.json[*this location*]. The JSON format can be freely reused in your application',
'or automatically enabled in https://www.github.com/MISP/MISP[MISP] taxonomy.')
elif t == 'description' and toplevel is True:
if t == "title":
content = "==== " + content
elif t == "predicate":
content = "=== " + content
elif t == "namespace":
content = "== " + content + "\n"
content = "{}\n{}{} {}{}{} {}".format(
content,
"NOTE: ",
namespace,
"namespace available in JSON format at https://github.com/MISP/misp-taxonomies/blob/main/",
namespace,
"/machinetag.json[*this location*]. The JSON format can be freely reused in your application",
"or automatically enabled in https://www.github.com/MISP/MISP[MISP] taxonomy.",
)
elif t == "description" and toplevel is True:
content = "\n{} \n".format(content)
elif t == 'description' and toplevel is False:
elif t == "description" and toplevel is False:
try:
(n, value) = content.split(":", 1)
content = "\n{} \n".format(value)
except:
content = "\n{} \n".format(content)
elif t == 'numerical_value':
elif t == "numerical_value":
(n, value) = content.split(":", 1)
content = "\nAssociated numerical value=\"{}\" \n".format(value)
elif t == 'exclusive':
content = '\nAssociated numerical value="{}" \n'.format(value)
elif t == "exclusive":
(n, value) = content.split(":", 1)
if n:
content = "\nIMPORTANT: Exclusive flag set which means the values or predicate below must be set exclusively.\n"
@ -124,9 +152,9 @@ def machineTag(namespace=False, predicate=False, value=None):
if namespace is False or predicate is False:
return None
if value is None:
return (u'{0}:{1}'.format(namespace, predicate))
return "{0}:{1}".format(namespace, predicate)
else:
return (u'{0}:{1}=\"{2}\"'.format(namespace, predicate, value))
return '{0}:{1}="{2}"'.format(namespace, predicate, value)
for taxonomy in taxonomies:
@ -136,70 +164,166 @@ for taxonomy in taxonomies:
filename = os.path.join(thisDir, "../", taxonomy, "machinetag.json")
with open(filename) as fp:
t = json.load(fp)
namespace = t['namespace']
if t.get('expanded'):
expanded_namespace = t['expanded']
namespace = t["namespace"]
if t.get("expanded"):
expanded_namespace = t["expanded"]
else:
expanded_namespace = namespace
if args.a:
doc = asciidoc(content=t['namespace'], adoc=doc, t='namespace')
doc = asciidoc(content=t['description'], adoc=doc, t='description', toplevel = True)
if t.get('exclusive'):
doc = asciidoc(content=machineTag(namespace=namespace, predicate=t['exclusive']), adoc=doc, t='exclusive')
doc = asciidoc(content=t["namespace"], adoc=doc, t="namespace")
doc = asciidoc(
content=t["description"], adoc=doc, t="description", toplevel=True
)
if t.get("exclusive"):
doc = asciidoc(
content=machineTag(namespace=namespace, predicate=t["exclusive"]),
adoc=doc,
t="exclusive",
)
if args.v:
print('{0}'.format(t['description']))
for predicate in t['predicates']:
print("{0}".format(t["description"]))
for predicate in t["predicates"]:
if args.a:
doc = asciidoc(content=predicate['value'], adoc=doc, t='predicate')
if predicate.get('description'):
doc = asciidoc(content=machineTag(namespace=namespace, predicate=predicate['description']), adoc=doc, t='description')
if predicate.get('exclusive'):
doc = asciidoc(content=machineTag(namespace=namespace, predicate=predicate['exclusive']), adoc=doc, t='exclusive')
doc = asciidoc(content=predicate["value"], adoc=doc, t="predicate")
if predicate.get("description"):
doc = asciidoc(
content=machineTag(
namespace=namespace, predicate=predicate["description"]
),
adoc=doc,
t="description",
)
if predicate.get("exclusive"):
doc = asciidoc(
content=machineTag(
namespace=namespace, predicate=predicate["exclusive"]
),
adoc=doc,
t="exclusive",
)
if t.get('values') is None:
if t.get("values") is None:
if args.a:
doc = asciidoc(content=machineTag(namespace=namespace, predicate=predicate['value']), adoc=doc)
doc = asciidoc(content=machineTag(namespace=namespace, predicate=predicate['expanded']), adoc=doc, t='description')
if predicate.get('description'):
doc = asciidoc(content=machineTag(namespace=namespace, predicate=predicate['description']), adoc=doc, t='description')
if predicate.get('numerical_value'):
doc = asciidoc(content=machineTag(namespace=namespace, predicate=predicate['numerical_value']), adoc=doc, t='description')
if predicate.get('exclusive'):
doc = asciidoc(content=machineTag(namespace=namespace, predicate=predicate['exclusive']), adoc=adoc, t='exclusive')
doc = asciidoc(
content=machineTag(
namespace=namespace, predicate=predicate["value"]
),
adoc=doc,
)
doc = asciidoc(
content=machineTag(
namespace=namespace, predicate=predicate["expanded"]
),
adoc=doc,
t="description",
)
if predicate.get("description"):
doc = asciidoc(
content=machineTag(
namespace=namespace, predicate=predicate["description"]
),
adoc=doc,
t="description",
)
if predicate.get("numerical_value"):
doc = asciidoc(
content=machineTag(
namespace=namespace, predicate=predicate["numerical_value"]
),
adoc=doc,
t="description",
)
if predicate.get("exclusive"):
doc = asciidoc(
content=machineTag(
namespace=namespace, predicate=predicate["exclusive"]
),
adoc=doc,
t="exclusive",
)
else:
print(machineTag(namespace=namespace, predicate=predicate['value']))
print(machineTag(namespace=namespace, predicate=predicate["value"]))
if args.e:
print("--> " + machineTag(namespace=expanded_namespace, predicate=predicate['expanded']))
if predicate.get('description'):
print("--> " + predicate['description'])
print(
"--> "
+ machineTag(
namespace=expanded_namespace, predicate=predicate["expanded"]
)
)
if predicate.get("description"):
print("--> " + predicate["description"])
else:
for e in t['values']:
if e['predicate'] == predicate['value']:
if 'expanded' in predicate:
expanded = predicate['expanded']
for v in e['entry']:
if args.a and 'expanded' in v:
doc = asciidoc(content=machineTag(namespace=namespace, predicate=e['predicate'], value=v['value']), adoc=doc)
doc = asciidoc(content=machineTag(namespace=namespace, predicate=v['expanded']), adoc=doc, t='description')
if 'description' in v:
doc = asciidoc(content=machineTag(namespace=namespace, predicate=v['description']), adoc=doc, t='description')
if v.get('numerical_value'):
doc = asciidoc(content=machineTag(namespace=namespace, predicate=v['numerical_value']), adoc=doc, t='numerical_value')
for e in t["values"]:
if e["predicate"] == predicate["value"]:
if "expanded" in predicate:
expanded = predicate["expanded"]
for v in e["entry"]:
if args.a and "expanded" in v:
doc = asciidoc(
content=machineTag(
namespace=namespace,
predicate=e["predicate"],
value=v["value"],
),
adoc=doc,
)
doc = asciidoc(
content=machineTag(
namespace=namespace, predicate=v["expanded"]
),
adoc=doc,
t="description",
)
if "description" in v:
doc = asciidoc(
content=machineTag(
namespace=namespace, predicate=v["description"]
),
adoc=doc,
t="description",
)
if v.get("numerical_value"):
doc = asciidoc(
content=machineTag(
namespace=namespace,
predicate=v["numerical_value"],
),
adoc=doc,
t="numerical_value",
)
else:
print(machineTag(namespace=namespace, predicate=e['predicate'], value=v['value']))
print(
machineTag(
namespace=namespace,
predicate=e["predicate"],
value=v["value"],
)
)
if args.e:
if'expanded' in v:
print("--> " + machineTag(namespace=namespace, predicate=expanded, value=v['expanded']))
if "expanded" in v:
print(
"--> "
+ machineTag(
namespace=namespace,
predicate=expanded,
value=v["expanded"],
)
)
with open('../mapping/mapping.json') as mapping:
with open("../mapping/mapping.json") as mapping:
m = json.load(mapping)
output = '\n= Mapping of taxonomies\n'
output = '{}{}'.format(output, 'Analysts relying on taxonomies don\'t always know the appropriate namespace to use but know which value to use for classification. The MISP mapping taxonomy allows to map a single classification into a series of machine-tag synonyms.\n')
output = "\n= Mapping of taxonomies\n"
output = "{}{}".format(
output,
"Analysts relying on taxonomies don't always know the appropriate namespace to use but know which value to use for classification. The MISP mapping taxonomy allows to map a single classification into a series of machine-tag synonyms.\n",
)
for value in sorted(m.keys()):
output = '{}{} **{}**{}{}\n'.format(output,'\n.Mapping table - ',value,'\n|===\n|',value)
for mapped in m[value]['values']:
output = '{}|{}\n'.format(output,mapped)
output = '{}|===\n'.format(output)
output = "{}{} **{}**{}{}\n".format(
output, "\n.Mapping table - ", value, "\n|===\n|", value
)
for mapped in m[value]["values"]:
output = "{}|{}\n".format(output, mapped)
output = "{}|===\n".format(output)
doc = doc + output
if args.a: