Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
threatmap — Modelador de ameaças de IaC com os frameworks STRIDE, MITRE ATT&CK e PASTA. Suporte a REST API, GraphQL e Docker para Terraform, CloudFormation e Kubernetes. | Kitploit
Ferramentas/GitHubGitHub/bogdanticu88/threatmap
Análise EstáticaSegurança de ContêineresAnálise de VulnerabilidadesAuditoria de ConfiguraçãoSegurança na NuvemDevSecOpsInteligência de AmeaçasSegurança de API
GitHubbogdanticu88/threatmap

threatmap

Modelador de ameaças de IaC com os frameworks STRIDE, MITRE ATT&CK e PASTA. Suporte a REST API, GraphQL e Docker para Terraform, CloudFormation e Kubernetes.

Ver Repositório
619há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
2026-03-25_12-36

threatmap

CI Version PyPI Python Docker STRIDE MITRE

PASTA
GraphQL API
License: MIT
Offline

Modelador de ameaças IaC estático que analisa manifestos Terraform, CloudFormation e Kubernetes e produz relatórios estruturados de modelagem de ameaças usando os frameworks STRIDE, MITRE ATT&CK ou PASTA. Sem chamadas de rede, sem credenciais de nuvem, totalmente offline. Funciona como CLI, API REST ou serviço containerizado.


Início Rápido

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

Servidor de API REST:

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

API GraphQL:

root@kitploit:~
docker run -p 8000:8000 bogdynn/threatmap:2.1.0
# Endpoint GraphQL: http://localhost:8000/graphql
# Consultas: health, version, rules
# Mutações: analyze(content, filename, framework)

Formatos e Provedores Suportados

FormatoProvedorExtensão
Terraform HCLAWS, Azure, GCP.tf
CloudFormationAWS.yaml, .yml, .json
Manifestos KubernetesKubernetes.yaml, .yml

Instalação

Instale a partir do PyPI:

root@kitploit:~
pip install threatmap

Ou para desenvolvimento local:

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

Uso

Digitalize um diretório e imprima um relatório Markdown na saída padrão:

root@kitploit:~
threatmap scan ./terraform/

Digitalize múltiplos caminhos e escreva um relatório JSON em um arquivo:

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

Gere um relatório HTML interativo ou um relatório SARIF para o GitHub Security:

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

Gate de CI — código de saída 1 se qualquer ameaça CRÍTICA ou ALTA for encontrada:

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

Imprima apenas uma tabela de resumo no terminal, sem gerar um relatório completo:

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

Use indicadores de severidade somente ASCII (sem emojis) para ambientes que não suportam Unicode:

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

Analise usando diferentes frameworks de modelagem de ameaças:

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

# MITRE ATT&CK (mapeia para táticas e técnicas)
threatmap scan ./infra/ --framework mitre --format json

# PASTA (modelagem de ameaças centrada em ativos)
threatmap scan ./infra/ --framework pasta --format json

Frameworks de Modelagem de Ameaças

STRIDE (73 regras)

  • Spoofing, Adulteração, Repúdio, Divulgação de Informação, Negação de Serviço, Elevação de Privilégio
  • Abordagem centrada em ameaças, ideal para identificar superfície de ataque
  • Específico por provedor: AWS (22 regras), Azure (19 regras), GCP (15 regras), Kubernetes (17 regras)
  • Melhor para: Modelagem de ameaças tradicional, revisões de arquitetura de segurança

MITRE ATT&CK (11 regras, 14 táticas)

  • Mapeia ameaças de infraestrutura para táticas e técnicas de adversários do mundo real
  • Seleção de técnicas com ciência de recursos para mapeamento preciso de TTP
  • Táticas: Reconhecimento, Acesso Inicial, Execução, Persistência, Elevação de Privilégio, Defesa por Evasão, Acesso a Credenciais, Descoberta, Coleta, Comando & Controle, Exfiltração, Impacto, Movimento Lateral
  • Melhor para: Alinhamento com inteligência de ameaças, planejamento de resposta a incidentes, exercícios de red team

PASTA (12 regras, centrado em ativos)

  • Processo para Simulação de Ataque e Análise de Ameaças
  • Abordagem centrada em ativos, focando no que precisa de proteção
  • Tipos de ativos: Dados, Identidade, Computação, Rede, Infraestrutura
  • Atores de ameaça: Interno, Externo, Configuração Incorreta, Cadeia de Suprimentos
  • Melhor para: Priorização baseada em risco, estratégias de proteção de ativos, ameaças à cadeia de suprimentos

Exemplo de Saída de Relatório

Executar threatmap scan ./examples --output report.md contra os exemplos incluídos produz um relatório Markdown completo. Abaixo está um trecho representativo.

Tabela de Ameaças STRIDE

IDSeveridadeCategoria STRIDERecursoDescrição
T-001🔴 CRÍTICADivulgação de InformaçãoAuditBucketBucket S3 'AuditBucket' não possui bloqueio de acesso público configurado — o bucket pode estar acessível publicamente.
T-002🔴 CRÍTICASpoofingWebSecurityGroupGrupo de segurança 'WebSecurityGroup' expõe SSH/RDP (porta 22/3389) para 0.0.0.0/0.
T-003🔴 CRÍTICAElevação de Privilégioapp_contributorAtribuição de função 'app_contributor' concede a função privilegiada 'Contributor'.
T-006🟠 ALTADivulgação de InformaçãoAuditBucketBucket S3 'AuditBucket' não possui criptografia do lado do servidor configurada.
T-008🟠 ALTAElevação de PrivilégioapiContêiner 'api' no Deployment 'api' pode ser executado como root (sem runAsNonRoot=true ou runAsUser=0).
T-011🟠 ALTAElevação de PrivilégiowebInstância EC2 'web' permite IMDSv1 — serviço de metadados acessível sem tokens de sessão, possibilitando roubo de credenciais via SSRF.

Detalhe de Mitigação (trecho)

root@kitploit:~
### T-002 — Spoofing (CRÍTICA)

Recurso:     AWS::EC2::SecurityGroup.WebSecurityGroup
Propriedade: ingress.ssh_rdp_open
Descoberta:  Grupo de segurança 'WebSecurityGroup' expõe SSH/RDP (porta 22/3389) para 0.0.0.0/0.
Mitigação:   Remova o acesso público SSH/RDP. Use o AWS Systems Manager Session Manager
             ou um bastion host com restrições de IP.

Diagrama de Fluxo de Dados (Mermaid)

O relatório anexa um diagrama flowchart LR Mermaid. Os nós são coloridos pela severidade do pior caso (🔴 vermelho = CRÍTICA, 🟠 laranja = ALTA). Cole o bloco em qualquer renderizador Mermaid ou visualize diretamente no 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

Funcionalidades Avançadas (v2.1.0+)

Análise de Caminhos de Ataque Baseada em Grafo

O threatmap agora inclui Inteligência de Grafo que rastreia relações entre recursos. Ele identifica automaticamente ameaças "encadeadas" onde o comprometimento de um recurso (ex.: uma EC2 exposta à Internet) leva diretamente a outro (ex.: um bucket S3 privado), sinalizando-as como caminhos de ataque de Elevação de Privilégio.

Regras YAML Personalizadas

Você pode definir requisitos de segurança internos criando um arquivo threatmap_rules.yaml na raiz do seu projeto.

root@kitploit:~
rules:
  - resource_type: "aws_s3_bucket"
    property: "force_destroy"
    expected: false
    stride: "Tampering"
    severity: "MEDIUM"
    description: "Buckets de produção não devem ter force_destroy habilitado."
    mitigation: "Defina force_destroy = false."

Dicas de Remediação

A maioria das descobertas agora inclui um campo remediation (visível em relatórios JSON, HTML e SARIF) que fornece o trecho de código exato necessário para corrigir o problema de segurança.


Arquitetura

Analisador STRIDE — Regras de ameaça específicas por provedor:

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

Analisador MITRE ATT&CK — 11 regras mapeadas para táticas MITRE:

  • Seleção de técnicas com ciência de recursos
  • Suporta: IAM, Storage, Network, Compute, Kubernetes, Databases
  • Fornece mapeamento tática→técnica para alinhamento com inteligência de ameaças

Analisador PASTA — 12 regras com foco centrado em ativos:

  • Classifica recursos por tipo de ativo (dados, identidade, computação, rede, infraestrutura)
  • Identifica atores de ameaça (interno, externo, configuração incorreta, cadeia de suprimentos)
  • Atribui cenários de ataque para cada ameaça

APIs:

  • API REST: /health, /version, /rules, /analyze, /analyze/file
  • API GraphQL: /graphql com Query (health, version, rules) e Mutation (analyze)

Cada regra é uma função que recebe um objeto Resource (normalizado a partir de qualquer formato de origem analisado) e retorna um Threat se a condição for atendida. As regras são condicionais Python simples — sem DSL, sem mecanismo de regex, sem arquivos de regras externas.

Como as severidades são atribuídas

A severidade reflete tanto a explorabilidade quanto o raio de explosão:

SeveridadeSignificado
CRÍTICADiretamente explorável sem pré-condições adicionais (ex.: SSH aberto para 0.0.0.0/0, política IAM curinga, vinculação cluster-admin para anônimo)
ALTARisco significativo que requer uma etapa adicional (ex.: RDS não criptografado com acesso público, IMDSv1 em uma instância EC2)
MÉDIAControles de defesa em profundidade ausentes — risco imediato menor, mas viola as linhas de base de segurança (ex.: sem versionamento, sem logging, sem limites de recursos)
BAIXALacunas de melhores práticas com explorabilidade limitada isolada (ex.: Lambda não em VPC)

Como falsos positivos são evitados

  • Sem heurísticas ou ML — cada regra dispara em um valor de propriedade concreto e inequívoco (ex.: publicly_accessible = true, Principal: "*").
  • Padrões conservadores — se uma propriedade estiver ausente, a regra assume o padrão inseguro (ex.: nenhum bloco metadata_options em uma instância EC2 significa que IMDSv1 está ativo, pois esse é o padrão da AWS).
  • Sem estado entre contas ou runtime — a ferramenta apenas observa o que está declarado no template. Ela não tenta inferir se SCPs, limites de permissão ou configurações de runtime podem mitigar uma descoberta.
  • Deduplicação no motor — as descobertas são chaveadas por (stride_category, resource_name, trigger_property), portanto, o mesmo problema lógico nunca é relatado duas vezes, mesmo que apareça em múltiplos formatos de arquivo.

Integração CI

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

on: [pull_request]

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

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

      - name: Install threatmap
        run: pip install threatmap

      - name: Run threat model scan
        run: |
          threatmap scan ./infra/ \
            --format markdown \
            --output threat-report.md \
            --fail-on HIGH

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

A flag --fail-on HIGH faz o job sair com código 1 se qualquer ameaça ALTA ou CRÍTICA for encontrada, bloqueando o merge do PR. O artefato enviado dá aos revisores o relatório completo sem sair do pull request.


Cobertura de Regras STRIDE

ProvedorRegras
AWS (Terraform + CloudFormation)22
Azure (Terraform)19
GCP (Terraform)15
Kubernetes17
Total73

Categorias cobertas por provedor:

ProvedorSTRIDE
AWS✓✓✓✓✓✓
Azure✓✓✓✓—✓
GCP✓✓✓✓—✓
Kubernetes✓✓—✓✓✓

(S=Spoofing, T=Adulteração, R=Repúdio, I=Divulgação de Informação, D=Negação de Serviço, E=Elevação de Privilégio)


Desenvolvimento

Execute os testes:

root@kitploit:~
pytest tests/ -v

Execute com cobertura:

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

Contribuição

  1. Faça um fork do repositório
  2. Adicione regras em threatmap/analyzers/<provider>.py seguindo o padrão existente
  3. Adicione uma fixture em tests/fixtures/ que acione a nova regra
  4. Adicione asserções em tests/test_analyzers.py
  5. Abra um pull request
Baixar ferramenta