This repository is uses to generate STIX objects used by DOGESEC products.
The python scripts found in generators/ is what are used to generate the STIX objects in this repository.
If you just want to grab a copy of the STIX objects already in this repo, these steps are not required.
If you do want to add new objects or modify existing ones, install the code as follows;
# clone the latest code
git clone https://github.com/muchdogesec/stix4doge
# create a venv
cd stix4doge
python3 -m venv stix4doge-venv
source stix4doge-venv/bin/activate
pip3 install requirements.txtMake your modifications.
And then run each of the scripts as required.
rm -rf objects && \
python3 generators/identity.py && \
python3 generators/marking-definition.pyThis repository includes a workflow that automatically syncs JSON objects to S3/R2 whenever a commit is merged into main.
- Workflow file:
.github/workflows/s3-sync.yml - Trigger: pushes to
mainthat changeobjects/*/*.json - Sync scope:
objects/*/*.json - Destination prefix:
stix4doge/ - Behavior: uploads new or changed files and deletes removed files so the bucket mirrors the repository for those paths under
stix4doge/ - GitHub environment:
s3_env
The workflow expects these environment secrets to be configured in s3_env:
CLOUDFLARE_ACCOUNT_IDCLOUDFLARE_ACCESS_KEY_IDCLOUDFLARE_ACCESS_KEY_SECRETS3_BUCKET_NAME
Note, all of the SDO and SMO ids in this repo are generated by the namespace 1abb62b9-e513-5f55-8e73-8f6d7b55c237. This is a randomly generated UUIDv4. It is used to ensure the objects generated by the code in this repo have persistent UUIDs on each update.
Minimal support provided via the DOGESEC community.
- Existing STIX 2.1 schemas: cti-stix2-json-schemas: OASIS TC Open Repository: Non-normative schemas and examples for STIX 2
- To generate STIX 2.1 extensions: stix2 Python Lib
- STIX 2.1 specifications for objects: STIX 2.1 docs
