GithubHelp home page GithubHelp logo

rusakovichma / tictaac Goto Github PK

View Code? Open in Web Editor NEW
54.0 4.0 13.0 763 KB

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

License: Apache License 2.0

Java 96.56% Batchfile 0.99% Shell 1.74% Dockerfile 0.71%
threat-modeling threat-modeling-tool application-security threat-models threat-modeling-from-code threat-model threat secure-development appsec devsecops

tictaac's Introduction

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


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

Preface

"One day the customer asked to perform threat modeling for our product. Of course, we have heard about it a lot from different teams, I have even read several articles and looked through a book to get familiar with this process, but they were too abstract as for me and didn't give me a certainty at all. Then we have faced several enterprise - level products which theoretically would help us, but we didn't want to deploy the whole security program because of it, we just wanted to get the prioritized threats list for our product to put it in our security backlog. Nothing else"

Anonymous Developer

Idea

The idea behind this product is clear - I want to create something simple that would help to solve this difficult problem. Ideally, with one click or a command and with a possibility to integrate it into a pipeline and do it continuously if needed. Inspired by dependency-check architecture and simplicity plus taking in mind that developers just love mapping everything in code, I've created "TicTaaC", which means "Threat modeling-as-a-Code in a Tick"

Usage

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

Command Line

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

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

On Windows:

> .\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.

Quickstart on Windows:

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

*nix script:

#!/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

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

License

Copyright (c) Mikhail Rusakovich

Licensed under the Apache License version 2.0

tictaac's People

Contributors

gitter-badger avatar rusakovichma avatar stefwe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

tictaac's Issues

source

Hi,

Do you have any guide for the install from source? or any prerequisite list?

I got this when I wanna execute like that:
./tic-taac.sh -h
Error: Could not find or load main class com.github.rusakovichma.tictaac.Launcher
Caused by: java.lang.ClassNotFoundException: com.github.rusakovichma.tictaac.Launcher

Thanks

Lack of documentation

I would appreciate a bit more documentation about elements types meaning (e.g. difference between consumed-assets and processed-assets) and use cases.
Same here with elements types and other values differences(Values: interactor, proxy-server, web-server, database, external-service, internal-service, process).
What of these would be frontend: proxy-server or external-service?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.