diff --git a/Gemfile b/Gemfile index 02e01cb..cf65dc8 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,5 @@ source "https://rubygems.org" gem "jekyll", "~> 4.1" -gem "jekyll-environment-variables" \ No newline at end of file +gem "jekyll-environment-variables" +gem 'jemoji' diff --git a/_config.yml b/_config.yml index 353d565..b071efc 100755 --- a/_config.yml +++ b/_config.yml @@ -36,3 +36,4 @@ sass: plugins: - jekyll-environment-variables + - jemoji diff --git a/_services/concept.md b/_services/concept.md new file mode 100644 index 0000000..78291c5 --- /dev/null +++ b/_services/concept.md @@ -0,0 +1,64 @@ +--- +title: "CyCAT - Core Concept" +date: 2021-02-19T01:33:46+10:00 +featured: true +weight: 1 +layout: service +--- + +# Concept of CyCAT url + +A CyCAT url is composed of a publisher short name, a project short name and the associated UUID of the specific item. An item can be any part of the collection produced +by this publisher under a specific project. The CyCAT url is composed of two namespaces separated by colon and a final UUID appended after a colon. The CyCAT url is in UTF-8 format. + +`publisher-short-name`:`project-short-name`:`UUID` + +## What is an UUID? + +A [universally unique identifier (UUID)](https://en.wikipedia.org/wiki/Universally_unique_identifier) is a 128-bit number used to identify information in computer systems also known as GUID. +CyCAT use such UUID to reference items produced in a collection. CyCAT, by default, will use any existing UUID already assigned by the publisher. If not present or there is no item present, +a fixed value is then calculated from the UUID namespace of CyCAT combined with `publisher-short-name:project-short-name`. + +## Publisher namespace + +A publisher can be any organisation, project or individual requesting a publisher to CyCAT. + +| Field name | Description | Required | +| ------------- |:---------------------------| ---------:| +| `name` | Name of the publisher (full name)| :heavy_check_mark: | +| `short-name` | Name of the publisher (short name) | :heavy_check_mark: | +| `description` | Description of the publisher | :heavy_check_mark: | +| `cycat-oid` | assigned CyCAT OID | :heavy_check_mark: | +| `link` | Internet link referencing the publisher | :heavy_check_mark: | +| `timestamp` | Last update of the publisher record (unix timestamp) | :heavy_check_mark: | +| `maintainer` | owner, external, cycat | - | + +Publisher examples: `mitre`, `circl`, `misp` + +## Project namespace + +A publisher can request one or more project to CyCAT associated to the publisher namespace. + +| Field name | Description | Required | +| ------------- |:---------------------------| ---------:| +| `name` | Name of the project (full name)| :heavy_check_mark: | +| `short-name` | Name of the project (short name) | :heavy_check_mark: | +| `description` | Description of the project | :heavy_check_mark: | +| `cycat-oid` | assigned CyCAT OID | :heavy_check_mark: | +| `link` | Internet link referencing the project | :heavy_check_mark: | +| `license` | License(s) of the project in SPX identifier (array) | :heavy_check_mark: | +| `type` | [Taxonomy type](https://github.com/CyCat-project/cycat-taxonomy) of the project from CyCAT taxonomy | :heavy_check_mark: | +| `scope` | [Taxonomy scope](https://github.com/CyCat-project/cycat-taxonomy) of the project from CyCAT taxonomy | :heavy_check_mark: | +| `timestamp` | Last update of the project record (unix timestamp)| :heavy_check_mark: | +| `maintainer` | owner, external, cycat | - | + +## URL example + +## How to generate a CyCAT url for non-registered url or missing item in a collection + +CyCAT has a fixed UUID namespace `690b3b43-d689-481c-aa61-5351963a36f2`. + +```shell +% uuidgen --sha1 -n "690b3b43-d689-481c-aa61-5351963a36f2" -N "samratashok:nishang:" +2605ff5e-342c-5326-8744-96a34b7e581e +``` diff --git a/services.md b/services.md index 367812f..1b544cb 100644 --- a/services.md +++ b/services.md @@ -10,4 +10,4 @@ intro_image_hide_on_mobile: false CyCAT will provide a public catalogue including an open API. The alpha version of the system is planned to be launched during the next EU ATT&CK Community workshop, on 1 June 2021. -We are currently in the initial feedback and peer review phase of the [White Paper](services/whitepaper/) and the [draft taxonomy](https://github.com/CyCat-project/cycat-taxonomy) behind the concept. This phase will end on 31 March 2021 and then we'll set out to build the aforementioned alpha version. +We are currently in the initial feedback and peer review phase of the [White Paper](whitepaper/) and the [draft taxonomy](https://github.com/CyCat-project/cycat-taxonomy) behind the concept. This phase will end on 31 March 2021 and then we'll set out to build the aforementioned alpha version.