Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pytm — إطار عمل بايثوني لنمذجة التهديدات | Kitploit
أدوات/GitHubGitHub/izar/pytm
تحليل الثغرات الأمنيةDevSecOpsاستخبارات التهديداتالتعلم والتعليم
GitHubizar/pytm

pytm

إطار عمل بايثوني لنمذجة التهديدات

عرض المستودع
22120منذ 16 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

build+test OpenSSF Best Practices

pytm: إطار عمل بايثوني لنمذجة التهديدات

pytm logo

مقدمة

غالبًا ما يأتي نمذجة التهديدات التقليدية متأخرًا عن الحاجة، أو لا يأتي أحيانًا على الإطلاق. بالإضافة إلى ذلك، يمكن أن يكون إنشاء تدفقات البيانات والتقارير يدويًا مستهلكًا للوقت للغاية. الهدف من 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 مثبتًا (متوفر افتراضيًا على توزيعات 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. عادةً ما يكون هذا أقل تكلفة وأكثر ملاءمة كبديل لنهج حاوية OCI.

  • تثبيت Devbox على Linux/MacOS: curl -fsSL https://get.jetify.com/devbox | bash
  • تثبيت Devbox على Windows/WSL
  • التحديث إلى أحدث إصدار من devbox: devbox version update
  • عيّن رمز الوصول الخاص بـ GitHub في ملف ~/.config/nix/nix.conf: access-tokens = github.com=YOUR_TOKEN_HERE
  • أنشئ بيئة shell جديدة ومعزولة تتضمن جميع الأدوات والحزم المحددة في ملف 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
  • اخرج من بيئة shell الخاصة بـ Devbox: exit

البدء - نسخة الذكاء الاصطناعي

"لكنني ظننت أننا انتهينا من مسألة 'كتابة الكود' هذه!" - هذه النسخة مخصصة لأولئك منا الذين يستمتعون بالحديث المفرط مع مساعدي الذكاء الاصطناعي: اطّلع على https://github.com/izar/tm_skills لبعض الطرق لإضافة OWASP pytm إلى مساعد البرمجة الخاص بك (ستظل بحاجة إلى تثبيت يعمل من pytm!).

الاستخدام

جميع الوسائط المتاحة:

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

تسعى وسيطة stale_days إلى تحديد مدى التباعد بالأيام بين نص النموذج (الذي تكتبه) والكود الذي ينفّذ النظام المُنمذَج. من الناحية المثالية، ينبغي أن يكونا متقاربين جدًا في معظم حالات نظام قيد التطوير النشط. يمكنك تشغيل هذا بشكل دوري لقياس نبض مشروعك و"حداثة" نموذج التهديد الخاص بك.

العناصر المتاحة حاليًا هي: TM، وElement، وServer، وExternalEntity، وDatastore، وActor، وProcess، وDataflow، وBoundary، وLambda، وLLM، وAgent.

يمكن سرد الخصائص المتاحة لعنصر ما باستخدام --describe متبوعًا باسم العنصر:

تنزيل الأداة