.. | ||
api | ||
models | ||
utils | ||
config.json | ||
main.py | ||
README.md |
Tidal Cyber API
This is a tool generating MISP galaxies and clusters from Tidal Cyber API.
Endpoints
https://app-api.tidalcyber.com/api/v1/technique
https://app-api.tidalcyber.com/api/v1/references
https://app-api.tidalcyber.com/api/v1/tactic
https://app-api.tidalcyber.com/api/v1/campaigns/
https://app-api.tidalcyber.com/api/v1/software/
https://app-api.tidalcyber.com/api/v1/groups/
Configuration
The configuration file is located in config.json
and maps the fields of the Tidal API to the Galaxy and Cluster fields. It consists of the following sections:
UUID
: The UUID of the galaxy to be createdGALAXY_CONFIGS
: The configuration of the galaxies to be created in thegalaxies
folder of the MISP-galaxy repositoryname
: The name of the galaxynamespace
: The namespace of the galaxydescription
: The description of the galaxytype
: The type of the galaxyuuid
: The UUID of the galaxy (will be inserted from theUUID
section)
CLUSTER_CONFIGS
: The configuration of the clusters to be created in theclusters
folder of the MISP-galaxy repositoryauthors
: The authors of the clustercategory
: The category of the clusterdescription
: The description of the clustername
: The name of the clustersource
: The source of the clustertype
: The type of the clusteruuid
: The UUID of the cluster (will be inserted from theUUID
section)values
: The values of the cluster (will be inserted from theVALUE_FIELDS
section)
VALUE_FIELDS
: Defines the mapping of the fields in the Tidal Cyber API to the fields in the MISP cluster values arraydescription
: The description of the cluster valuemeta
: The metadata of the cluster valuerelated
: The related cluster values of the cluster value (you can define atype
for each relation type in the config which will not be mapped to a field of the API)uuid
: The UUID of the cluster valuevalue
: The value of the cluster value
Note: The fields
meta
can be formatted as the format of the data the API provides sometimes does not match the format defined by the MISP galaxy format. You can configure this using an extraction configuration.
Extraction Configuration
The extraction configuration is a dictionary that maps the fields of the Tidal Cyber API to the fields of the MISP galaxy. It can be used to extract data stored in a array or object in the API response. The extraction configuration looks like this:
{
"extract": "<mode>",
"key": "<key>",
"subkey": "<subkey>"
}
Extract modes:
single
: Extracts a single value from the API responsemultiple
: Extracts multiple values from the API responsereverse
: Gets the value of the key and writes it into an array (no subkey needed)
Usage
python3 main.py create-galaxy -v <version> --type <galaxy_to_create>
To build all galaxies and clusters, run the following command:
python3 main.py create-galaxy -v <version> --all