SkillAgentSearch skills...

TicTaaC

Easy-to-use Threat modeling-as-a-Code (TaaC) solution following DevSecOps principles. Simple CI/CD integration as well as console usage. Sugar-Free and Secure: no any external dependencies except for chart plotting are used

Install / Use

/learn @rusakovichma/TicTaaC

README

TicTaaC Join the chat at https://gitter.im/TicTaaC/TicTaaC-support CI Testing

<br> Threat modeling-as-a-Code in a Tick (TicTaaC) Lightweight and easy-to-use Threat modeling solution following DevSecOps principles

Preface

"At one point, a customer requested that we conduct threat modeling for our product. While we were familiar with the concept—having heard about it extensively from various teams—I found the available resources, such as articles and books, to be overly abstract and lacking in practical clarity. When we explored several enterprise-level solutions that purported to assist with threat modeling, we realized they were designed to support comprehensive security programs. However, our goal was far more focused: we simply wanted to generate a prioritized list of threats specific to our product so we could incorporate them into our security backlog. Nothing more, nothing less."

<p align="right"><em>Anonymous Developer</em></p>

Idea

The concept behind this product is straightforward: I aim to create a simple yet effective solution to address a complex problem. Ideally, it should work with <em>a single click</em> or <em>command</em>, while also offering the flexibility to integrate seamlessly into a pipeline for <em>continuous use</em>, if necessary. Drawing inspiration from the architecture and simplicity of <em>dependency-check</em> tools—and recognizing that developers have a strong preference for mapping <em>everything in code</em>—I developed <strong>"TicTaaC"</strong>, which stands for <em>"<strong>T</strong>hreat modeling-<strong>a</strong>s-<strong>a</strong>-<strong>C</strong>ode in a <strong>Tic</strong>k"</em>

Usage

All the tool is needed is a <strong>data flow code file</strong> described in the <em>yml-like format</em> specially designed for this.<br> <strong>The examples</strong> of these files with verbose comments describing every aspect may be found here. <br>

Command Line

More detailed instructions can be found on the github wiki. The latest CLI can be downloaded from github in the releases section. <br> <strong>On *nix:</strong>

$ ./bin/tic-taac.sh -h
$ ./bin/tic-taac.sh --out . --threatModel [path to threat model file(s) or folder to scan]

<strong>On Windows:</strong>

> .\bin\tic-taac.bat -h
> .\bin\tic-taac.bat --out . --threatModel [path to threat model file(s) or folder to scan]

Docker

See TicTaaC Docker Hub repository.

<strong>Quickstart on Windows:</strong>

> docker run --volume /D/threat-model:/threat-model --volume /D/report:/report rusakovichma/tic-taac:latest --threatModel /threat-model/ --out /report

<strong>*nix script:</strong>

#!/bin/sh

TT_VERSION="latest"
THREAT_MODEL_DIR=$HOME/threat-model

# Make sure we are using the latest version
docker pull rusakovichma/tic-taac:$TT_VERSION

docker run --rm \
    -e user=$USER \
    -u $(id -u ${USER}):$(id -g ${USER}) \
    --volume $THREAT_MODEL_DIR:/threat-model:z \
    --volume $(pwd)/report:/report:z \
    rusakovichma/tic-taac:$TT_VERSION \
    --threatModel /threat-model \
    --outFormat html \
    --out /report
    # Set mitigation strategy for the corresponding threats
    # see https://github.com/rusakovichma/TicTaaC/blob/master/expl/mitigations.yml 
    # --mitigations /threat-model/mitigations.yml 
    # or set the folder where scan the mitigations files: --mitigations /mitigations

Jenkins pipeline

For TicTaaC usage at Jenkins pipeline, see Jenkinsfile example.

Data Flows Examples

Generated report example

Threat Modeling Report Example

Features

  • [x] Automatic Data Flow generation in a report
  • [x] Ideal for Security Teams - it has flexible Threats Library logic customization in a separate file with special expression language support
  • [x] Suitable for CICD pipeline integration
  • [X] Setting Quality Gate that can block the product release in case if unmitigated threats are presented
  • [x] No required additional dependencies
  • [x] Special lightweight and easy-to-understand format for data flows description
  • [x] Automatic Threats Attack Vector & Risk Score calculation based on the data flow context
  • [x] Threats classification by OWASP Top 10 and Microsoft STRIDE
  • [x] Setting Threats mitigation strategy in one place
  • [x] Reporting in html or json format

License

Copyright (c) Mikhail Rusakovich

Licensed under the Apache License version 2.0

View on GitHub
GitHub Stars70
CategoryDevelopment
Updated9d ago
Forks17

Languages

Java

Security Score

100/100

Audited on Mar 18, 2026

No findings