CI/CD IntegrationΒΆ

Our tool FlowStrider can be easily integrated into a CI/CD pipeline.

You need to specify the location of your data-flow diagram (dfd) file. In our case, we use a folder named threat_models, which contains both the dfd and the corresponding management file. Additionally, we use the --fail-on-threat undecided option to ensure that the pipeline fails if any undecided threats are detected.

Below is a simple .gitlab-ci.yml configuration:

stages:
- security

default:
before_script:
    - git config --global user.email "you@example.com"
    - git config --global user.name "Your Name"
    - pip install -U pip
    - apt-get update && apt-get install -y graphviz

threat_modeling:
stage: security
image: python:3.10
script:
    - pip install flowstrider
    - echo "Running threat modeling..."
    - flowstrider elicit --output off --management-path $CI_PROJECT_DIR/threat_models/threat_management.json --fail-on-threat undecided $CI_PROJECT_DIR/threat_models/example_tool_paper.json
only:
    - main
    - merge_requests
allow_failure: False