
نموذج تهديدات للبنية التحتية كرمز (IaC) باستخدام أطر STRIDE و MITRE ATT&CK و PASTA. يدعم REST API و GraphQL و Docker لتطبيقات Terraform و CloudFormation و Kubernetes.
أداة نمذجة تهديدات البنية التحتية ككود (IaC) ثابتة تقوم بتحليل ملفات Terraform وCloudFormation وKubernetes وإنتاج تقارير منظمة للتهديدات باستخدام أطر STRIDE أو MITRE ATT&CK أو PASTA. لا حاجة لاستدعاءات شبكة أو بيانات اعتماد سحابية، تعمل بالكامل دون اتصال بالإنترنت. تُشغَّل كأداة CLI أو REST API أو خدمة حاوية.
CLI:
pip install threatmap
threatmap scan ./examples --output report.md --fail-on HIGH
Docker:
docker run -v $(pwd):/workspace bogdynn/threatmap:2.1.0 threatmap scan /workspace --output /workspace/report.md
خادم REST API:
threatmap serve --host 0.0.0.0 --port 8000
# أو عبر Docker:
docker run -p 8000:8000 bogdynn/threatmap:2.1.0
# نقاط نهاية API: /health, /version, /rules, /analyze
GraphQL API:
docker run -p 8000:8000 bogdynn/threatmap:2.1.0
# نقطة نهاية GraphQL: http://localhost:8000/graphql
# استعلامات: health, version, rules
# تحويرات: analyze(content, filename, framework)
| الصيغة | الموفّر | الامتداد |
|---|---|---|
| Terraform HCL | AWS, Azure, GCP | .tf |
| CloudFormation | AWS | .yaml, .yml, .json |
| Kubernetes manifests | Kubernetes | .yaml, .yml |
التثبيت من PyPI:
pip install threatmap
أو للتطوير المحلي:
git clone https://github.com/bogdanticu88/threatmap.git
cd threatmap
pip install -e .
مسح دليل وطباعة تقرير Markdown إلى المخرجات القياسية:
threatmap scan ./terraform/
مسح مسارات متعددة وكتابة تقرير JSON إلى ملف:
threatmap scan ./terraform/ ./k8s/ ./cloudformation/ --format json --output report.json
توليد تقرير HTML تفاعلي أو تقرير SARIF لأمان GitHub:
threatmap scan ./infra/ --format html --output report.html
threatmap scan ./infra/ --format sarif --output report.sarif
بوابة CI — رمز خروج 1 إذا وُجد أي تهديد من درجة CRITICAL أو HIGH:
threatmap scan ./infra/ --fail-on HIGH --output threat-report.md
طباعة جدول ملخص طرفي فقط، دون كتابة تقرير كامل:
threatmap scan ./infra/ --summary
استخدام مؤشرات شدة بنظام ASCII فقط (بدون رموز تعبيرية) للبيئات التي لا تدعم Unicode:
threatmap scan ./infra/ --ascii --output report.md
التحليل باستخدام أطر نمذجة تهديدات مختلفة:
# STRIDE (افتراضي)
threatmap scan ./infra/ --framework stride
# MITRE ATT&CK (يرسم إلى تكتيكات وتقنيات)
threatmap scan ./infra/ --framework mitre --format json
# PASTA (نمذجة تهديدات متمحورة حول الأصول)
threatmap scan ./infra/ --framework pasta --format json
STRIDE (73 قاعدة)
MITRE ATT&CK (11 قاعدة, 14 تكتيكًا)
PASTA (12 قاعدة, متمحور حول الأصول)
تشغيل threatmap scan ./examples --output report.md مقابل الأمثلة المرفقة ينتج تقرير Markdown كامل. فيما يلي مقتطف تمثيلي.
| المعرف | الشدة | فئة STRIDE | المورد | الوصف |
|---|---|---|---|---|
| T-001 | 🔴 حرج | Information Disclosure | AuditBucket | دلو S3 'AuditBucket' ليس لديه حظر وصول عام مهيأ — قد يكون الدلو متاحًا للعامة. |
| T-002 | 🔴 حرج | Spoofing | WebSecurityGroup | مجموعة الأمان 'WebSecurityGroup' تعرض SSH/RDP (المنفذ 22/3389) إلى 0.0.0.0/0. |
| T-003 | 🔴 حرج | Elevation of Privilege | app_contributor | تعيين الدور 'app_contributor' يمنح الدور المميز 'Contributor'. |
| T-006 | 🟠 عالٍ | Information Disclosure | AuditBucket | دلو S3 'AuditBucket' ليس لديه تشفير من جانب الخادم مهيأ. |
| T-008 | 🟠 عالٍ | Elevation of Privilege | api | الحاوية 'api' في Deployment 'api' قد تعمل كجذر (لا يوجد runAsNonRoot=true أو runAsUser=0). |
| T-011 | 🟠 عالٍ | Elevation of Privilege | web | مثيل EC2 'web' يسمح بـ IMDSv1 — خدمة البيانات الوصفية متاحة بدون رموز جلسة، مما يتيح سرقة بيانات الاعتماد عبر SSRF. |
### T-002 — Spoofing (حرج)
المورد: AWS::EC2::SecurityGroup.WebSecurityGroup
الخاصية: ingress.ssh_rdp_open
النتيجة: مجموعة الأمان 'WebSecurityGroup' تعرض SSH/RDP (المنفذ 22/3389) إلى 0.0.0.0/0.
التخفيف: إزالة الوصول العام لـ SSH/RDP. استخدم AWS Systems Manager Session Manager
أو مضيف وسيط مع قيود IP.
يُلحق التقرير مخطط Mermaid flowchart LR. الألوان حسب أسوأ شدة (🔴 أحمر = حرج, 🟠 برتقالي = عالٍ). الصق الكتلة في أي عارض Mermaid أو اعرضها مباشرة على GitHub.