OWASP / OWASP/pytm

Initial TM creation is a pain and requires a lot of typing

Open
#12 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue Hacktoberfest
Dominant language
Python
Stars
1.2k
Forks
229
PR merge metrics
No merged PRs in 30d

Description

... well it was anyway.

https://github.com/izar/pytm/commit/9bccd8f45d5ce440b1f42f40ef8d62097cd45823

I added a python script to take a CSV with pairs of elements. I then create generic Element definitions for each unique name and create dataflow for each pair.

After editing the file to replace Element with Actor, Server, Process, etc I can generate a basic TM DFD then start to annotate each element and add boundaries as needed.

Before I do any more with this take a look and lets discuss. Initially I wanted the csv to be as lightweight as possible but we could have it contain various more data like variableName, displayName, element type, or various annotations.

I've committed the geneate.py file, a sample csv, the generate sample.py and sample.png and then a modified (Element->Actor,Process, etc) py and png so you can see what its doing.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the committed geneate.py script, sample CSV, generate sample.py, and the modified Python and PNG outputs to understand the proposed CSV-driven threat-model creation flow. Clarify which CSV fields and generated element types are required before defining the feature's scope; done should be an agreed, repeatable way to generate a basic threat-model DFD from CSV input.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.