Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pytm — Ein pythonisches Framework für die Bedrohungsmodellierung | Kitploit
Tools/GitHubGitHub/owasp/pytm
SchwachstellenanalyseCode-AnalyseDevSecOpsLernen & Bildung
GitHubowasp/pytm

pytm

Ein pythonisches Framework für die Bedrohungsmodellierung

Repository anzeigen
1.2k22415vor 14 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

build+test OpenSSF Best Practices

pytm: Ein pythonisches Framework für Threat Modeling

pytm logo

Einführung

Traditionelles Threat Modeling kommt oft zu spät oder manchmal gar nicht. Darüber hinaus kann die manuelle Erstellung von Datenflüssen und Berichten extrem zeitaufwändig sein. Das Ziel von pytm ist es, Threat Modeling nach links zu verschieben und es automatisierter und entwicklerzentrierter zu machen.

Funktionen

Basierend auf Ihren Eingaben und der Definition des Architekturdesigns kann pytm automatisch die folgenden Elemente generieren:

  • Data Flow Diagram (DFD)
  • Sequenzdiagramm
  • Relevante Bedrohungen für Ihr System

Anforderungen

  • Linux/MacOS
  • Python 3.11+
  • Graphviz-Paket
  • Java (OpenJDK 10 oder 11)
  • plantuml.jar

Erste Schritte

Die tm.py ist ein Beispielmodell. Sie können sie ausführen, um den Bericht und die Diagrammbilddateien zu generieren, auf die sie verweist:

mkdir -p tm
./tm.py --report docs/basic_template.md | pandoc -f markdown -t html > tm/report.html
./tm.py --dfd | dot -Tpng -o tm/dfd.png
./tm.py --seq | java -Djava.awt.headless=true -jar $PLANTUML_PATH -tpng -pipe > tm/seq.png

Es gibt auch ein Beispiel-Makefile, das all dies in Targets verpackt, die leicht für mehrere Modelle geteilt werden können. Wenn Sie GNU make installiert haben (standardmäßig auf Linux-Distributionen verfügbar, aber nicht auf OSX), führen Sie einfach aus:

make MODEL=the_name_of_your_model_minus_.py

Du solltest entweder plantuml.jar im selben Verzeichnis wie dein Modell haben oder PLANTUML_PATH setzen.

Um die Installation aller Abhängigkeiten wie pandoc oder Java zu vermeiden, kann das Skript in einem Container ausgeführt werden:

# do this only once
export USE_DOCKER=true
make image

# call this after every change in your model
make

Erste Schritte - Devbox-Variante

Um die Nutzung zu vereinfachen, können die Host-Abhängigkeiten von pytm vollständig isoliert werden mit Devbox. Dies ist normalerweise eine geringerer Overhead und eine bequemere Alternative zum OCI-Container-Ansatz.

  • Installiere Devbox unter Linux/MacOS: curl -fsSL https://get.jetify.com/devbox | bash
  • Installiere Devbox unter Windows/WSL
  • Aktualisiere auf die neueste Version von devbox: devbox version update
  • Setze deinen GitHub-Zugriffstoken in der Datei ~/.config/nix/nix.conf: access-tokens = github.com=YOUR_TOKEN_HERE
  • Erstelle eine neue, isolierte Shell-Umgebung, die alle Tools und Pakete enthält, die in der devbox.json-Datei des Projekts angegeben sind: devbox shell
  • Zeige den vollständigen Pfad zur Python-Executable an, die verwendet wird, wenn du einfach python in deinem Terminal eingibst, indem du den Befehl which python verwendest. Die Ausgabe sollte der folgende Pfad sein: .devbox/nix/profile/default/bin/python
  • Teste, indem du den folgenden Befehl ausführst, der ein DFD als PNG-Datei namens sample.png generieren sollte: ./tm.py --dfd | dot -Tpng -o sample.png
  • Verlasse die Devbox-Shell-Umgebung: exit

Erste Schritte - KI-Variante

"Aber ich dachte, wir wären mit diesem 'Code schreiben'-Ding durch!" - diese hier ist für diejenigen unter uns, die es genießen, zu viel mit KI-Assistenten zu reden: schau dir https://github.com/izar/tm_skills an, um einige Möglichkeiten zu finden, OWASP pytm zu deinem Coding-Assistenten hinzuzufügen (du benötigst trotzdem eine funktionierende Installation von pytm!).

Verwendung

Alle verfügbaren Argumente:

usage: tm.py [-h] [--debug] [--dfd] [--report REPORT] [--exclude EXCLUDE]
             [--seq] [--list] [--colormap] [--describe DESCRIBE]
             [--list-elements] [--json JSON] [--levels LEVELS [LEVELS ...]]
             [--stale_days STALE_DAYS]

options:
  -h, --help            show this help message and exit
  --debug               print debug messages
  --dfd                 output DFD
  --report REPORT       output report using the named template file (sample
                        template file is under docs/basic_template.md)
  --exclude EXCLUDE     specify threat IDs to be ignored
  --seq                 output sequential diagram
  --list                list all available threats
  --colormap            color the risk in the diagram
  --describe DESCRIBE   describe the properties available for a given element
  --list-elements       list all elements which can be part of a threat model
  --json JSON           output a JSON file
  --levels LEVELS [LEVELS ...]
                        Select levels to be drawn in the threat model (int
                        separated by comma).
  --stale_days STALE_DAYS
                        checks if the delta between the TM script and the code
                        described by it is bigger than the specified value in
                        days

Das Argument stale_days versucht zu bestimmen, wie viele Tage das Modellskript (das Sie schreiben) von dem Code entfernt ist, der das modellierte System implementiert. Idealerweise sollten sie in den meisten Fällen eines aktiv entwickelten Systems ziemlich nahe beieinander liegen. Sie können dies regelmäßig ausführen, um den Puls Ihres Projekts und die „Aktualität“ Ihres Bedrohungsmodells zu messen.

Derzeit verfügbare Elemente sind: TM, Element, Server, ExternalEntity, Datastore, Actor, Process, Dataflow, Boundary, Lambda, LLM und Agent.

Die verfügbaren Eigenschaften eines Elements können mit --describe gefolgt vom Namen eines Elements aufgelistet werden:

Tool herunterladen