Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
threatmap — نموذج تهديدات للبنية التحتية كرمز (IaC) باستخدام أطر STRIDE و MITRE ATT&CK و PASTA. يدعم REST API و GraphQL و Docker لتطبيقات Terraform و CloudFormation و Kubernetes. | Kitploit
أدوات/GitHubGitHub/bogdanticu88/threatmap
التحليل الثابتأمن الحاوياتتحليل الثغرات الأمنيةتدقيق التكوينأمن السحابةDevSecOpsاستخبارات التهديداتأمن واجهات برمجة التطبيقات
GitHubbogdanticu88/threatmap

threatmap

نموذج تهديدات للبنية التحتية كرمز (IaC) باستخدام أطر STRIDE و MITRE ATT&CK و PASTA. يدعم REST API و GraphQL و Docker لتطبيقات Terraform و CloudFormation و Kubernetes.

عرض المستودع
6195منذ 2 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
2026-03-25_12-36

threatmap

CI Version PyPI Python Docker STRIDE MITRE

PASTA
GraphQL API
License: MIT
Offline

أداة نمذجة تهديدات البنية التحتية ككود (IaC) ثابتة تقوم بتحليل ملفات Terraform وCloudFormation وKubernetes وإنتاج تقارير منظمة للتهديدات باستخدام أطر STRIDE أو MITRE ATT&CK أو PASTA. لا حاجة لاستدعاءات شبكة أو بيانات اعتماد سحابية، تعمل بالكامل دون اتصال بالإنترنت. تُشغَّل كأداة CLI أو REST API أو خدمة حاوية.


بداية سريعة

CLI:

root@kitploit:~
pip install threatmap
threatmap scan ./examples --output report.md --fail-on HIGH

Docker:

root@kitploit:~
docker run -v $(pwd):/workspace bogdynn/threatmap:2.1.0 threatmap scan /workspace --output /workspace/report.md

خادم REST API:

root@kitploit:~
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:

root@kitploit:~
docker run -p 8000:8000 bogdynn/threatmap:2.1.0
# نقطة نهاية GraphQL: http://localhost:8000/graphql
# استعلامات: health, version, rules
# تحويرات: analyze(content, filename, framework)

الصيغ والموفّرون المدعومون

الصيغةالموفّرالامتداد
Terraform HCLAWS, Azure, GCP.tf
CloudFormationAWS.yaml, .yml, .json
Kubernetes manifestsKubernetes.yaml, .yml

التثبيت

التثبيت من PyPI:

root@kitploit:~
pip install threatmap

أو للتطوير المحلي:

root@kitploit:~
git clone https://github.com/bogdanticu88/threatmap.git
cd threatmap
pip install -e .

الاستخدام

مسح دليل وطباعة تقرير Markdown إلى المخرجات القياسية:

root@kitploit:~
threatmap scan ./terraform/

مسح مسارات متعددة وكتابة تقرير JSON إلى ملف:

root@kitploit:~
threatmap scan ./terraform/ ./k8s/ ./cloudformation/ --format json --output report.json

توليد تقرير HTML تفاعلي أو تقرير SARIF لأمان GitHub:

root@kitploit:~
threatmap scan ./infra/ --format html --output report.html
threatmap scan ./infra/ --format sarif --output report.sarif

بوابة CI — رمز خروج 1 إذا وُجد أي تهديد من درجة CRITICAL أو HIGH:

root@kitploit:~
threatmap scan ./infra/ --fail-on HIGH --output threat-report.md

طباعة جدول ملخص طرفي فقط، دون كتابة تقرير كامل:

root@kitploit:~
threatmap scan ./infra/ --summary

استخدام مؤشرات شدة بنظام ASCII فقط (بدون رموز تعبيرية) للبيئات التي لا تدعم Unicode:

root@kitploit:~
threatmap scan ./infra/ --ascii --output report.md

التحليل باستخدام أطر نمذجة تهديدات مختلفة:

root@kitploit:~
# 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 قاعدة)

  • Spoofing (انتحال), Tampering (عبث), Repudiation (إنكار), Information Disclosure (كشف معلومات), Denial of Service (حرمان من الخدمة), Elevation of Privilege (رفع صلاحيات)
  • نهج متمحور حول التهديدات مثالي لتحديد سطح الهجوم
  • خاص بالموفّر: AWS (22 قاعدة), Azure (19 قاعدة), GCP (15 قاعدة), Kubernetes (17 قاعدة)
  • الأنسب لـ: نمذجة التهديدات التقليدية, مراجعات بنية الأمان

MITRE ATT&CK (11 قاعدة, 14 تكتيكًا)

  • يرسم تهديدات البنية التحتية إلى تكتيكات وتقنيات الخصوم الواقعية
  • اختيار تقنية مراعي للمورد لرسم TTP دقيق
  • التكتيكات: Reconnaissance (استطلاع), Initial Access (وصول أولي), Execution (تنفيذ), Persistence (ثبات), Privilege Escalation (رفع صلاحيات), Defense Evasion (تجنب دفاعي), Credential Access (وصول إلى بيانات الاعتماد), Discovery (اكتشاف), Collection (جمع), Command & Control (قيادة وتحكم), Exfiltration (إخراج), Impact (تأثير), Lateral Movement (حركة جانبية)
  • الأنسب لـ: التوافق مع استخبارات التهديدات, تخطيط الاستجابة للحوادث, تمارين الفريق الأحمر

PASTA (12 قاعدة, متمحور حول الأصول)

  • عملية محاكاة الهجوم وتحليل التهديدات
  • نهج متمحور حول الأصول يركز على ما يحتاج إلى حماية
  • أنواع الأصول: Data (بيانات), Identity (هوية), Compute (حوسبة), Network (شبكة), Infrastructure (بنية تحتية)
  • الجهات الفاعلة للتهديد: Internal (داخلي), External (خارجي), Misconfiguration (تكوين خاطئ), Supply Chain (سلسلة توريد)
  • الأنسب لـ: ترتيب الأولويات القائم على المخاطر, استراتيجيات حماية الأصول, تهديدات سلسلة التوريد

نموذج مخرجات التقرير

تشغيل threatmap scan ./examples --output report.md مقابل الأمثلة المرفقة ينتج تقرير Markdown كامل. فيما يلي مقتطف تمثيلي.

جدول تهديدات STRIDE

المعرفالشدةفئة STRIDEالموردالوصف
T-001🔴 حرجInformation DisclosureAuditBucketدلو S3 'AuditBucket' ليس لديه حظر وصول عام مهيأ — قد يكون الدلو متاحًا للعامة.
T-002🔴 حرجSpoofingWebSecurityGroupمجموعة الأمان 'WebSecurityGroup' تعرض SSH/RDP (المنفذ 22/3389) إلى 0.0.0.0/0.
T-003🔴 حرجElevation of Privilegeapp_contributorتعيين الدور 'app_contributor' يمنح الدور المميز 'Contributor'.
T-006🟠 عالٍInformation DisclosureAuditBucketدلو S3 'AuditBucket' ليس لديه تشفير من جانب الخادم مهيأ.
T-008🟠 عالٍElevation of Privilegeapiالحاوية 'api' في Deployment 'api' قد تعمل كجذر (لا يوجد runAsNonRoot=true أو runAsUser=0).
T-011🟠 عالٍElevation of Privilegewebمثيل EC2 'web' يسمح بـ IMDSv1 — خدمة البيانات الوصفية متاحة بدون رموز جلسة، مما يتيح سرقة بيانات الاعتماد عبر SSRF.

تفاصيل التخفيف (مقتطف)

root@kitploit:~
### 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)

يُلحق التقرير مخطط Mermaid flowchart LR. الألوان حسب أسوأ شدة (🔴 أحمر = حرج, 🟠 برتقالي = عالٍ). الصق الكتلة في أي عارض Mermaid أو اعرضها مباشرة على GitHub.

root@kitploit:~
flowchart LR
    Internet((Internet))
    subgraph Networking
        aws_security_group_web_sg{web_sg}
        NetworkPolicy_default_deny{default-deny}
        azurerm_network_security_group_app_nsg{app_nsg}
    end
    subgraph Compute
        aws_instance_web[web]
    end
    subgraph Kubernetes
        Namespace_myapp[myapp]
        Deployment_api[api]
        Service_api_svc[api-svc]
        Ingress_api_ingress[api-ingress]
    end
    subgraph Data
        aws_s3_bucket_app_data[(app_data)]
        aws_db_instance_app_db[(app_db)]
        azurerm_storage_account_app_storage[(app_storage)]
    end
    subgraph Security
        azurerm_key_vault_app_kv[app_kv]
    end
    subgraph Identity
        azurerm_role_assignment_app_contributor[/app_contributor/]
    end
    AWS__S3__Bucket_AppBucket -->|ref| AWS__S3__Bucket_AuditBucket
    AWS__CloudTrail__Trail_AppTrail -->|ref| AWS__S3__Bucket_AuditBucket
    Internet -->|HTTPS| Ingress_api_ingress
    style aws_security_group_web_sg fill:#ff4444,color:#fff
    style aws_s3_bucket_app_data fill:#ff4444,color:#fff
    style aws_instance_web fill:#ff8800,color:#fff
    style Deployment_api fill:#ff8800,color:#fff
    style azurerm_key_vault_app_kv fill:#ffcc00,color:#000
    style azurerm_network_security_group_app_nsg fill:#ff8800,color:#fff
    style azurerm_role_assignment_app_contributor fill:#ff4444,color:#fff

ميزات متقدمة (v2.1.0+)

تحليل مسار الهجوم القائم على الرسم البياني

يتضمن threatmap الآن ذكاءً رسوميًا يتتبع العلاقات بين الموارد. ويحدد تلقائيًا التهديدات "المتسلسلة" حيث يؤدي اختراق مورد واحد (مثل EC2 معرض للإنترنت) مباشرة إلى آخر (مثل دلو S3 خاص)، ويضع علامة عليها كمسارات هجوم Elevation of Privilege.

قواعد YAML مخصصة

يمكنك تعريف متطلبات أمان داخلية عن طريق إنشاء ملف threatmap_rules.yaml في جذر مشروعك.

root@kitploit:~
rules:
  - resource_type: "aws_s3_bucket"
    property: "force_destroy"
    expected: false
    stride: "Tampering"
    severity: "MEDIUM"
    description: "لا ينبغي تمكين force_destroy في دلّاء الإنتاج."
    mitigation: "اضبط force_destroy = false."

تلميحات المعالجة

تتضمن معظم النتائج الآن حقل remediation (مرئي في تقارير JSON وHTML وSARIF) الذي يوفر مقتطف الشفرة الدقيق اللازم لإصلاح المشكلة الأمنية.


العمارة

محلل STRIDE — قواعد تهديدات خاصة بالموفّر:

root@kitploit:~
threatmap/analyzers/
├── aws.py         # 22 قاعدة — S3, IAM, EC2, RDS, EKS, CloudTrail, KMS, Lambda
├── azure.py       # 19 قاعدة — Storage, Key Vault, NSG, RBAC, AKS, ACR, SQL
├── gcp.py         # 15 قاعدة — GCS, Firewall, Compute, Cloud SQL, GKE, IAM, KMS
└── kubernetes.py  # 17 قاعدة — workloads, RBAC, network, secrets

محلل MITRE ATT&CK — 11 قاعدة مرتبة بتكتيكات MITRE:

  • اختيار تقنية مراعي للمورد
  • يدعم: IAM, Storage, Network, Compute, Kubernetes, Databases
  • يوفر رسم تكتيك→تقنية للتوافق مع استخبارات التهديدات

محلل PASTA — 12 قاعدة مع تركيز متمحور حول الأصول:

  • يصنف الموارد حسب نوع الأصل (بيانات، هوية، حوسبة، شبكة، بنية تحتية)
  • يحدد الجهات الفاعلة للتهديد (داخلي، خارجي، تكوين خاطئ، سلسلة توريد)
  • يعين سيناريوهات هجوم لكل تهديد

واجهات API:

  • REST API: /health, /version, /rules, /analyze, /analyze/file
  • GraphQL API: /graphql مع Query (health, version, rules) وMutation (analyze)

كل قاعدة هي دالة تستقبل كائن Resource (مُوحَّد من أي صيغة مصدر تم تحليلها) وتعيد Threat إذا تحقق الشرط. القواعد هي شروط Python عادية — لا DSL ولا محرك تعبيرات منتظمة ولا ملفات قواعد خارجية.

كيف تُعيّن درجات الشدة

تعكس الشدة كلاً من قابلية الاستغلال ونطاق الانفجار:

الشدةالمعنى
حرج (CRITICAL)قابل للاستغلال مباشرة دون شروط مسبقة إضافية (مثل SSH مفتوح إلى 0.0.0.0/0، سياسة IAM بطاقة بدل، ربط cluster-admin بمجهول)
عالٍ (HIGH)خطر كبير يتطلب خطوة إضافية واحدة (مثل RDS غير مشفر مع وصول عام، IMDSv1 على مثيل EC2)
متوسط (MEDIUM)ضوابط دفاع متعمقة مفقودة — خطر فوري أقل لكنه ينتهك المعايير الأمنية الأساسية (مثل عدم وجود إصدارات، عدم تسجيل، عدم وجود حدود موارد)
منخفض (LOW)فجوات في أفضل الممارسات مع قابلية استغلال محدودة بمفردها (مثل Lambda غير موجودة في VPC)

كيف تُتجنب النتائج الإيجابية الخاطئة

  • لا استدلال أو تعلم آلي — كل قاعدة تعمل على قيمة خاصية واضحة لا لبس فيها (مثل publicly_accessible = true, Principal: "*").
  • افتراضيات متحفظة — إذا كانت الخاصية غائبة، تفترض القاعدة القيمة الافتراضية غير الآمنة (مثل عدم وجود كتلة metadata_options على مثيل EC2 يعني أن IMDSv1 نشط، لأن هذا هو الافتراضي لدى AWS).
  • لا حالة عبر الحسابات أو وقت التشغيل — الأداة تنظر فقط إلى ما هو معلن في القالب. لا تحاول استنتاج ما قد تخففه SCPs أو حدود الأذونات أو تكوينات وقت التشغيل من نتيجة.
  • إزالة التكرار في المحرك — النتائج مفاتيحها (stride_category, resource_name, trigger_property) بحيث لا يتم الإبلاغ عن نفس المشكلة المنطقية مرتين حتى لو ظهرت عبر صيغ ملفات متعددة.

تكامل CI

root@kitploit:~
# .github/workflows/threat-model.yml
name: نموذج تهديد

on: [pull_request]

jobs:
  threatmap:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: إعداد Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: تثبيت threatmap
        run: pip install threatmap

      - name: تشغيل مسح نموذج التهديد
        run: |
          threatmap scan ./infra/ \
            --format markdown \
            --output threat-report.md \
            --fail-on HIGH

      - name: رفع تقرير التهديد
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: threat-report
          path: threat-report.md

يجعل العلم --fail-on HIGH المهمة تخرج برمز 1 إذا وُجد أي تهديد من درجة HIGH أو CRITICAL، مما يمنع دمج الـ PR. القطعة المرفوعة تمنح المراجعين التقرير الكامل دون مغادرة طلب السحب.


تغطية قواعد STRIDE

الموفّرالقواعد
AWS (Terraform + CloudFormation)22
Azure (Terraform)19
GCP (Terraform)15
Kubernetes17
الاجمالي73

الفئات المغطاة لكل موفّر:

الموفّرSTRIDE
AWS✓✓✓✓✓✓
Azure✓✓✓✓—✓
GCP✓✓✓✓—✓
Kubernetes✓✓—✓✓✓

(S=Spoofing, T=Tampering, R=Repudiation, I=Information Disclosure, D=Denial of Service, E=Elevation of Privilege)


التطوير

تشغيل الاختبارات:

root@kitploit:~
pytest tests/ -v

تشغيل مع التغطية:

root@kitploit:~
pytest tests/ --cov=threatmap --cov-report=term-missing

المساهمة

  1. انسخ المستودع (Fork)
  2. أضف القواعد في threatmap/analyzers/<provider>.py باتباع النمط الموجود
  3. أضف اختبارًا تجريبيًا (fixture) في tests/fixtures/ يؤدي إلى تشغيل القاعدة الجديدة
  4. أضف تأكيدات في tests/test_analyzers.py
  5. افتح طلب سحب (Pull Request)
تنزيل الأداة