threatdown

friendly notation for threat models

threatdown is an open standard empowering teams and security experts to build threat modeling into all phases of development.

How it works

Threatdown is a markdown-ish bulleted outline describing attack vectors using conditions, assumptions, and mitigations combined by boolean logic:

How it looks


__Attacker's goal__
  - method which in order to be viable
    + requires this condition to be true
    + and this condition which depends on either
      - x to be true
      - or y to be true
    + hey this condition must be true too
      - [ ] but this would prevent it
  - another method here too
    - a condition which depends on assumptions
      +? this might be a problem
        - [x] prevents it, though
      +? but only if this happens
        -? which assumes this also happens
          > You can make inline comments as well
          > in order to further explain stuff

Generating graphs

Run a simple command to generate a visualization of your threatdown tree:

npx threatdown inputfile -t svg

You’ll get:

visualization of threatdown graph described above

Contributing

threatdown is an open standard inviting anyone to help develop, extend, and improve it.

Join us on GitHub.