ATT&CK Workbench Docker Install Update Guide for v1.3.1 to v2.0.0
April 3, 2025 ยท View on GitHub
When updating from ATT&CK Workbench v1.3.1 to v2.0.0, the major changes are the removal of the Collection Manager component and the migration to a named volume. The change to a named volume may result in data on the current anonymous volume being lost. This document describes how to backup your existing ATT&CK Workbench data and restore it after the update. This process only needs to be completed once.
1. Identify anonymous volume
The mongodb container has two anonymous volumes, only one of which contains the ATT&CK Workbench data. To find the name of the anonymous volume you should backup, perform the following command and make note of the string that precedes "/data/db". This will later be referred to as old_volume.
docker inspect --format "{{range .Mounts}}{{.Name}} {{println .Destination}}{{end}}" attack-workbench-database
2. Backup the volume
Create a temporary named volume
docker volume create --name temp
Run the following command, replacing <old_volume> with the string identified in Step 1
docker run --rm -it -v <old_volume>:/from:ro -v temp:/to alpine ash -c "cd /from ; cp -av . /to"
This will install an alpine image and mount the volumes to a temporary container to perform the backup. Once this step is complete, the temp volume contains a backup of the database.
3. Stop the ATT&CK Workbench and remove outdated Docker containers
cd attack-workbench-frontend
docker compose down
4. Remove Collection Manager repository
rm -r ../attack-workbench-collection-manager
5. Backup custom environment configurations
If you have existing custom ATT&CK Workbench environment configurations, backup the corresponding environment files. They will be overwritten with next step when the ATT&CK Workbench is updated.
Configuration files for ATT&CK Workbench Frontend are found here:
6. Update to the latest version of ATT&CK Workbench
Clone the latest version of ATT&CK Workbench Frontend and REST API
cd attack-workbench-frontend
git checkout master
git pull origin master
cd attack-workbench-rest-api
git checkout master
git pull origin master
7. Restore custom environment configurations
Following from Step 5, if you have custom environment settings, you will need to update the settings in the new environment files. NOTE: The new environment files do not have a collection_manager section; do not re-add that section back in to the environment file(s).
Configuration files for ATT&CK Workbench Frontend are found here:
8. Restart ATT&CK Workbench
Rebuild the ATT&CK Workbench with updated Frontend and REST API components.
cd attack-workbench-frontend
docker compose up --build
Alternatively, if using custom SSL certs
cd attack-workbench-frontend
docker compose -f compose.yml -f compose.certs.yml up --build
The persistent database is now in use.
9. Restore data from backup
docker run --rm -it -v temp:/from:ro -v attack-workbench-frontend_db-data:/to alpine ash -c "cd /from ; cp -av . /to"
docker restart attack-workbench-database
After restarting the database container, confirm that the data backup was restored in the ATT&CK Workbench by visiting localhost in your browser.
Only delete the temp volume after confirming the database has been restored.
docker volume rm temp