Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/owasp/pytm
Анализ уязвимостейАнализ КодаDevSecOpsОбучение и Образование
GitHubowasp/pytm

pytm

Python-фреймворк для моделирования угроз

Репозиторий
1.2k224101 месяц назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

build+test OpenSSF Best Practices

pytm: Pythonic-фреймворк для моделирования угроз

логотип pytm

Введение

Традиционное моделирование угроз часто приходит слишком поздно, а иногда и вовсе не происходит. Кроме того, создание ручных потоков данных и отчетов может занимать очень много времени. Цель pytm — сместить моделирование угроз влево, сделав его более автоматизированным и ориентированным на разработчиков.

Возможности

На основе вашего ввода и определения архитектурного проекта, pytm может автоматически генерировать следующие элементы:

  • Диаграмма потоков данных (DFD)
  • Диаграмма последовательностей
  • Релевантные угрозы для вашей системы

Требования

  • Linux/MacOS
  • Python 3.11+
  • Пакет Graphviz
  • Java (OpenJDK 10 или 11)
  • plantuml.jar

Начало работы

tm.py — это пример модели. Вы можете запустить его, чтобы сгенерировать отчет и файлы изображений диаграмм, на которые он ссылается:``` 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

Также есть пример `Makefile`, который объединяет всё это в цели, которые можно легко использовать для нескольких моделей. Если у вас установлен [GNU make](https://www.gnu.org/software/make/) (доступен по умолчанию в дистрибутивах Linux, но не в OSX), просто выполните:```
make MODEL=the_name_of_your_model_minus_.py

У вас должен быть либо plantuml.jar в той же директории, что и ваша модель, либо задан PLANTUML_PATH.

Чтобы избежать установки всех зависимостей, таких как pandoc или Java, скрипт можно запустить внутри контейнера:```

do this only once

export USE_DOCKER=true make image

call this after every change in your model

make

### Начало работы - Вариант с Devbox

Чтобы упростить использование `pytm`, хост-зависимости можно полностью изолировать
с помощью [`Devbox`](https://github.com/jetify-com/devbox). Обычно это более
легковесная и удобная альтернатива подходу с OCI-контейнерами.

- Установите Devbox на Linux/MacOS: `curl -fsSL https://get.jetify.com/devbox | bash`
- Установите Devbox на [Windows/WSL](https://www.jetify.com/docs/devbox/installing-devbox/index#installing-wsl2)
- Обновите до последней версии devbox: `devbox version update`
- Установите токен доступа GitHub в файле `~/.config/nix/nix.conf`: `access-tokens = github.com=YOUR_TOKEN_HERE`
- Создайте новую изолированную среду оболочки, включающую все инструменты и пакеты, указанные в файле `devbox.json` проекта: `devbox shell`
- Отобразите полный путь к исполняемому файлу Python, который будет использоваться при вводе `python` в терминале, с помощью команды which python. Результат должен быть следующим путем: `.devbox/nix/profile/default/bin/python`
- Проверьте, выполнив следующую команду, которая должна сгенерировать DFD в виде PNG-файла с именем `sample.png`: `./tm.py --dfd | dot -Tpng -o sample.png`
- Выйдите из среды оболочки Devbox: `exit`


## Использование

Все доступные аргументы:```text
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/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

Аргумент stale_days пытается определить, насколько далеко по дням скрипт модели (который вы пишете) отстоит от кода, реализующего моделируемую систему. В идеале для активно разрабатываемой системы они должны быть достаточно близки в большинстве случаев. Вы можете запускать этот параметр периодически, чтобы измерять пульс вашего проекта и «свежесть» вашей модели угроз.

В настоящее время доступны следующие элементы: TM, Element, Server, ExternalEntity, Datastore, Actor, Process, SetOfProcesses, Dataflow, Boundary, Lambda, LLM и Agent.

Скачать инструмент