Giter Site home page Giter Site logo

sttk's Introduction

Gradle build

STTK

STTK - Security Threatmodel Toolkit

In a nutshell

With STTK developers, architects and also security exports shall be able to define a textual based model contain meta data about

  • system (c4 model: system context, container, components etc.)
  • technology
  • threat model (stride)

Technology

Model

This is java based - see src/test/java/de/jcup/sttk/example/ExampleModel1.java so its very easy to define own models.

So when a technology changes or something is added to the system which is security relevant, developers can easily add or update the simple model.

Output

When model has been designed, we generate the output by using generators.

See src/test/java/de/jcup/sttk/example/GenerateExample1TestMain.java

We generate output in following formats

You are able to show up output by dedicated editors, e.g. Eclipse Asciidoctor Editor which is able to provide WYSIWYG for asciidoc and plantuml.

Development

Import project

Eclipse

Please do ./gradlew cleanEclipse eclipse from repository root on your terminal. After gradle tasks has been done, just import project as existing one into eclipse and you are done.

Or you can try to import as gradle project (but first described variant will always work)

Other IDEs

Try to import as gradle project.

sttk's People

Contributors

de-jcup avatar jeeppler avatar

Watchers

 avatar  avatar  avatar  avatar

sttk's Issues

Allow to model network protocols

Network protocols are used to communicate. Each protocol has certain properties. Properties like encrypted and how are of special interest for security practitioners. Allow to model network protocols in general and provide some common protocols and their properties.

Identifier id should contain also name parts

Currently we should do

identifier.getId() ->id_1, id_2 ,...

when identifier has name "Admin of xyz" it would be nice to have an Id like:
"admin_of_xyz_1", "admin_of_xyz_2"

so generated output is much more readable - and maintainable...

Allow to model interfaces

Systems usually offer an interface which allows to access system resources. The exception are "air gaped" systems. Those systems can be attacked using physical attacks. However, "air gaped" systems are less interesting for IT security practitioners trying to secure a system against cyber attacks.

The systems which are interesting are the once allowing remote access, such as via REST API, SOAP or by any other means. Those interfaces can allow attackers access to resources. The question is, what methods are used to prevent the attacker from gaining access (passwords, 2FA etc.). Allow to model interfaces and their properties.

Draw DFD diagram for STRIDE

Draw a DFD diagram for STRIDE. The DFD diagram will be the same as C4 Context, Container… the main difference between C4 and DFD is the notation.

STRIDE requires to know what component is an external entity, data store, data flow and process. This has to be added to the model to draw the DFD diagram.

Proposal: Generate asciidoc files for STRIDE proposals

UNDER CONSTRUCTION:

Stride proposal files (empty) + description asciidoc files having includes

With the information from sttk model, we know which parts of model do correspond to which part of S T R I D E
see https://en.wikipedia.org/wiki/STRIDE_(security)

So we can generate for each of the

  • External entity
  • Process
  • Data flow
  • Data storage

dedicated, but empty asciidoc files

Example 1

sttk/common/asciidoc/common_sttk_config.adoc
/sttk/stride/asciidoc/my_webapplication/spoofing.adoc
/sttk/stride/asciidoc/my_webapplication/tampering.adoc
/sttk/stride/asciidoc/my_webapplication/repuiation.adoc
/sttk/stride/asciidoc/my_webapplication/information_disclosure.adoc

Example 2

sttk/stride/threat/spoofing-description.adoc
sttk/stride/threat/tampering-description.adoc
sttk/stride/threat/spoofing/my_webbaplication_integrity.adoc
sttk/stride/threat/tampering/my_webbaplication_authenticity.adoc
...

All of those threat asciidoc files are generated empty - and do also NOT overwrite existing files
so normally ignored by git and also when used as includes inside asciidoc

in sttk_config.adoc all identifiers are available as variables:
sttk_name_my_webapplication="My Webapplication"
sttk_desc_my_webapplication="Description of web application..."
sttk_stride_desc_r_xyz=...default_parts to describe a problem, so reusable...

When developer edits
/sttk/stride/asciidoc/my_webapplication/s.adoc
he/she will be able to write

=== {sttk_name_my_webapplication}
sttk_desc_my_webapplication
sttk_stride_desc_r_xyz

So after a new generation, all files are available.

We need a stride.adoc file which is generated and includes all files from sttk/stride/asciidoc subfolders
(when empty they will be ignored by asciidoc)

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.