Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
threatmap — IaC-Bedrohungsmodellierer mit STRIDE, MITRE ATT&CK und PASTA-Frameworks. REST-API-, GraphQL- und Docker-Unterstützung für Terraform, CloudFormation und Kubernetes. | Kitploit
Tools/GitHubGitHub/bogdanticu88/threatmap
Statische AnalyseContainer-SicherheitSchwachstellenanalyseKonfigurationsprüfungCloud-SicherheitDevSecOpsBedrohungsanalyseAPI-Sicherheit
GitHubbogdanticu88/threatmap

threatmap

IaC-Bedrohungsmodellierer mit STRIDE, MITRE ATT&CK und PASTA-Frameworks. REST-API-, GraphQL- und Docker-Unterstützung für Terraform, CloudFormation und Kubernetes.

Repository anzeigen
619vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
2026-03-25_12-36

threatmap

CI Version PyPI Python Docker STRIDE MITRE PASTA GraphQL API License: MIT Offline

Statischer IaC-Bedrohungsmodellierer, der Terraform-, CloudFormation- und Kubernetes-Manifeste analysiert und strukturierte Bedrohungsmodellberichte unter Verwendung der Frameworks STRIDE, MITRE ATT&CK oder PASTA erstellt. Keine Netzwerkaufrufe, keine Cloud-Anmeldedaten, vollständig offline. Läuft als CLI, REST-API oder containerisierter Dienst.


Schnellstart

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-Server:

root@kitploit:~
threatmap serve --host 0.0.0.0 --port 8000
# Oder via Docker:
docker run -p 8000:8000 bogdynn/threatmap:2.1.0
# API-Endpunkte: /health, /version, /rules, /analyze

GraphQL-API:

root@kitploit:~
docker run -p 8000:8000 bogdynn/threatmap:2.1.0
# GraphQL-Endpunkt: http://localhost:8000/graphql
# Queries: health, version, rules
# Mutationen: analyze(content, filename, framework)

Unterstützte Formate und Anbieter


Installation

Installation von PyPI:

root@kitploit:~
pip install threatmap

Oder für die lokale Entwicklung:

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

Verwendung

Ein Verzeichnis scannen und einen Markdown-Bericht auf der Standardausgabe ausgeben:

root@kitploit:~
threatmap scan ./terraform/

Mehrere Pfade scannen und einen JSON-Bericht in eine Datei schreiben:

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

Einen interaktiven HTML-Bericht oder einen SARIF-Bericht für GitHub Security erstellen:

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

CI-Gate – Exit-Code 1, wenn eine KRITISCHE oder HOHE Bedrohung gefunden wird:

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

Nur eine terminale Zusammenfassungstabelle ausgeben, ohne einen vollständigen Bericht zu schreiben:

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

Nur ASCII-Schweregrad-Indikatoren (keine Emojis) in Umgebungen verwenden, die Unicode nicht unterstützen:

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

Analyse mit verschiedenen Bedrohungsmodellierungs-Frameworks:

root@kitploit:~
# STRIDE (Standard)
threatmap scan ./infra/ --framework stride

# MITRE ATT&CK (wird auf Taktiken und Techniken abgebildet)
threatmap scan ./infra/ --framework mitre --format json

# PASTA (asset-zentrierte Bedrohungsmodellierung)
threatmap scan ./infra/ --framework pasta --format json

Bedrohungsmodellierungs-Frameworks

STRIDE (73 Regeln)

  • Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege
  • Bedrohungszentrierter Ansatz, ideal zur Identifizierung der Angriffsfläche
  • Anbieterspezifisch: AWS (22 Regeln), Azure (19 Regeln), GCP (15 Regeln), Kubernetes (17 Regeln)
  • Am besten geeignet für: Traditionelle Bedrohungsmodellierung, Sicherheitsarchitektur-Reviews

MITRE ATT&CK (11 Regeln, 14 Taktiken)

  • Bildet Infrastrukturbedrohungen auf reale Angreifertaktiken und -techniken ab
  • Ressourcenbewusste Technikauswahl für eine genaue TTP-Zuordnung
  • Taktiken: Reconnaissance, Initial Access, Execution, Persistence, Privilege Escalation, Defense Evasion, Credential Access, Discovery, Collection, Command & Control, Exfiltration, Impact, Lateral Movement
  • Am besten geeignet für: Ausrichtung an Bedrohungsinformationen, Incident-Response-Planung, Red-Team-Übungen

PASTA (12 Regeln, asset-zentriert)

  • Prozess zur Angriffssimulation und Bedrohungsanalyse
  • Asset-zentrierter Ansatz, der sich auf das konzentriert, was geschützt werden muss
  • Asset-Typen: Daten, Identität, Compute, Netzwerk, Infrastruktur
  • Bedrohungsakteure: Intern, Extern, Fehlkonfiguration, Lieferkette
  • Am besten geeignet für: Risikobasierte Priorisierung, Asset-Schutzstrategien, Lieferkettenbedrohungen

Beispiel für Berichtsausgabe

Die Ausführung von threatmap scan ./examples --output report.md gegen die mitgelieferten Beispiele erzeugt einen vollständigen Markdown-Bericht. Nachfolgend ein repräsentativer Auszug.

STRIDE-Bedrohungstabelle

Abhilfe-Detail (Auszug)

root@kitploit:~
### T-002 — Spoofing (KRITISCH)

Ressource:   AWS::EC2::SecurityGroup.WebSecurityGroup
Eigenschaft: ingress.ssh_rdp_open
Befund:      Sicherheitsgruppe 'WebSecurityGroup' macht SSH/RDP (Port 22/3389) für 0.0.0.0/0 verfügbar.
Abhilfe:     Entfernen Sie den öffentlichen SSH/RDP-Zugriff. Verwenden Sie AWS Systems Manager Session Manager
             oder einen Bastion-Host mit IP-Einschränkungen.

Datenflussdiagramm (Mermaid)

Der Bericht fügt ein Mermaid flowchart LR-Diagramm an. Knoten sind nach dem worst-case Schweregrad eingefärbt (🔴 rot = KRITISCH, 🟠 orange = HOCH). Fügen Sie den Block in einen beliebigen Mermaid-Renderer ein oder betrachten Sie ihn direkt auf 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

Erweiterte Funktionen (v2.1.0+)

Graphbasierte Angriffspfadanalyse

threatmap enthält jetzt eine Graph-Intelligenz, die Beziehungen zwischen Ressourcen verfolgt. Es identifiziert automatisch "verkettete" Bedrohungen, bei denen eine Kompromittierung einer Ressource (z. B. einer internetexponierten EC2) direkt zu einer anderen führt (z. B. einem privaten S3-Bucket), und kennzeichnet diese als Elevation of Privilege-Angriffspfade.

Benutzerdefinierte YAML-Regeln

Sie können interne Sicherheitsanforderungen definieren, indem Sie eine threatmap_rules.yaml in Ihrem Projektstammverzeichnis erstellen.

root@kitploit:~
rules:
  - resource_type: "aws_s3_bucket"
    property: "force_destroy"
    expected: false
    stride: "Tampering"
    severity: "MEDIUM"
    description: "Produktions-Buckets sollten force_destroy nicht aktiviert haben."
    mitigation: "Setze force_destroy = false."

Abhilfetipps

Die meisten Ergebnisse enthalten jetzt ein remediation-Feld (sichtbar in JSON-, HTML- und SARIF-Berichten), das den genauen Codeausschnitt zur Behebung des Sicherheitsproblems bereitstellt.


Architektur

STRIDE-Analyzer – Anbieterspezifische Bedrohungsregeln:

root@kitploit:~
threatmap/analyzers/
├── aws.py         # 22 Regeln – S3, IAM, EC2, RDS, EKS, CloudTrail, KMS, Lambda
├── azure.py       # 19 Regeln – Storage, Key Vault, NSG, RBAC, AKS, ACR, SQL
├── gcp.py         # 15 Regeln – GCS, Firewall, Compute, Cloud SQL, GKE, IAM, KMS
└── kubernetes.py  # 17 Regeln – Workloads, RBAC, Netzwerk, Secrets

MITRE ATT&CK-Analyzer – 11 Regeln, abgebildet auf MITRE-Taktiken:

  • Ressourcenbewusste Technikauswahl
  • Unterstützt: IAM, Storage, Netzwerk, Compute, Kubernetes, Datenbanken
  • Bietet Taktik→Technik-Zuordnung zur Ausrichtung an Bedrohungsinformationen

PASTA-Analyzer – 12 Regeln mit asset-zentriertem Fokus:

  • Klassifiziert Ressourcen nach Asset-Typ (Daten, Identität, Compute, Netzwerk, Infrastruktur)
  • Identifiziert Bedrohungsakteure (intern, extern, Fehlkonfiguration, Lieferkette)
  • Weist für jede Bedrohung Angriffsszenarien zu

APIs:

  • REST-API: /health, /version, /rules, /analyze, /analyze/file
  • GraphQL-API: /graphql mit Query (health, version, rules) und Mutation (analyze)

Jede Regel ist eine Funktion, die ein Resource-Objekt (normalisiert aus dem geparsten Quellformat) erhält und ein Threat-Objekt zurückgibt, wenn die Bedingung erfüllt ist. Regeln sind reine Python-Bedingungen – kein DSL, keine Regex-Engine, keine externen Regelsatzdateien.

Wie Schweregrade zugewiesen werden

Der Schweregrad spiegelt sowohl die Ausnutzbarkeit als auch den Schadensradius wider:

SchweregradBedeutung
KRITISCHDirekt ausnutzbar ohne zusätzliche Vorbedingungen (z. B. SSH offen für 0.0.0.0/0, Wildcard-IAM-Richtlinie, cluster-admin-Bindung an anonym)

Wie Fehlalarme vermieden werden

  • Keine Heuristiken oder ML – jede Regel feuert auf einen konkreten, eindeutigen Eigenschaftswert (z. B. publicly_accessible = true, Principal: "*").
  • Konservative Voreinstellungen – wenn eine Eigenschaft fehlt, nimmt die Regel die unsichere Voreinstellung an (z. B. kein metadata_options-Block auf einer EC2-Instanz bedeutet IMDSv1 ist aktiv, da dies AWS' Standard ist).
  • Kein Cross-Account- oder Laufzeitzustand – das Werkzeug betrachtet nur, was in der Vorlage deklariert ist. Es versucht nicht, SCPs, Berechtigungsgrenzen oder Laufzeitkonfigurationen zu erschließen, die einen Befund abschwächen könnten.
  • Deduplizierung in der Engine – Befunde werden nach (stride_category, resource_name, trigger_property) geschlüsselt, sodass dasselbe logische Problem nie zweimal gemeldet wird, selbst wenn es in mehreren Dateiformaten erscheint.

CI-Integration

root@kitploit:~
# .github/workflows/threat-model.yml
name: Bedrohungsmodell

on: [pull_request]

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

      - name: Python einrichten
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: threatmap installieren
        run: pip install threatmap

      - name: Bedrohungsmodell-Scan ausführen
        run: |
          threatmap scan ./infra/ \
            --format markdown \
            --output threat-report.md \
            --fail-on HIGH

      - name: Bedrohungsbericht hochladen
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: threat-report
          path: threat-report.md

Das Flag --fail-on HIGH bewirkt, dass der Job mit Exit-Code 1 beendet wird, wenn eine HOHE oder KRITISCHE Bedrohung gefunden wird, und blockiert so den PR-Merge. Das hochgeladene Artefakt gibt Prüfern den vollständigen Bericht, ohne den Pull-Request verlassen zu müssen.


STRIDE-Regelabdeckung

AnbieterRegeln
AWS (Terraform + CloudFormation)22
Azure (Terraform)

Abgedeckte Kategorien pro Anbieter:

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


Entwicklung

Tests ausführen:

root@kitploit:~
pytest tests/ -v

Mit Abdeckung ausführen:

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

Mitwirken

  1. Repository forken
  2. Regeln in threatmap/analyzers/<provider>.py nach dem bestehenden Muster hinzufügen
  3. Eine Fixture in tests/fixtures/ hinzufügen, die die neue Regel auslöst
  4. Assertions in tests/test_analyzers.py hinzufügen
  5. Einen Pull-Request öffnen
Tool herunterladen
FormatAnbieterErweiterung
Terraform HCLAWS, Azure, GCP.tf
CloudFormationAWS.yaml, .yml, .json
Kubernetes-ManifesteKubernetes.yaml, .yml
IDSchweregradSTRIDE-KategorieRessourceBeschreibung
T-001🔴 KRITISCHInformation DisclosureAuditBucketS3-Bucket 'AuditBucket' hat keinen öffentlichen Zugriffsblock konfiguriert – der Bucket könnte öffentlich zugänglich sein.
T-002🔴 KRITISCHSpoofingWebSecurityGroupSicherheitsgruppe 'WebSecurityGroup' macht SSH/RDP (Port 22/3389) für 0.0.0.0/0 verfügbar.
T-003🔴 KRITISCHElevation of Privilegeapp_contributorRollenzuweisung 'app_contributor' gewährt die privilegierte Rolle 'Contributor'.
T-006🟠 HOCHInformation DisclosureAuditBucketS3-Bucket 'AuditBucket' hat keine serverseitige Verschlüsselung konfiguriert.
T-008🟠 HOCHElevation of PrivilegeapiContainer 'api' in Deployment 'api' könnte als Root ausgeführt werden (kein runAsNonRoot=true oder runAsUser=0).
T-011🟠 HOCHElevation of PrivilegewebEC2-Instanz 'web' erlaubt IMDSv1 – Metadatendienst ohne Sitzungstoken zugänglich, was SSRF-basierten Credential-Diebstahl ermöglicht.
HOCHSignifikantes Risiko, das einen zusätzlichen Schritt erfordert (z. B. unverschlüsselte RDS mit öffentlichem Zugriff, IMDSv1 auf einer EC2-Instanz)
MEDIUMFehlende Sicherheitsmaßnahmen in der Tiefe – geringeres unmittelbares Risiko, verletzt aber Sicherheitsbaselines (z. B. keine Versionierung, kein Logging, keine Ressourcenlimits)
NIEDRIGBest-Practice-Lücken mit begrenzter eigenständiger Ausnutzbarkeit (z. B. Lambda nicht in VPC)
19
GCP (Terraform)15
Kubernetes17
Gesamt73
AnbieterSTRIDE
AWS✓✓✓✓✓✓
Azure✓✓✓✓—✓
GCP✓✓✓✓—✓
Kubernetes✓✓—✓✓✓