Tudo o que vimos até agora ajuda a entender ataques que já aconteceram ou que estão em curso. O threat modeling inverte a seta do tempo: é o exercício disciplinado de antecipar ameaças a um sistema antes que elas sejam exploradas — de preferência antes mesmo de o sistema existir, ainda na prancheta. É a mentalidade que separa a segurança reativa (correr atrás do prejuízo) da proativa (projetar defesa desde o início), e é uma habilidade que torna o pentester valioso não só para quebrar sistemas, mas para ajudar a construí-los seguros. Esta aula te dá as metodologias nomeadas que faltavam no seu vocabulário.

STRIDE, letra por letra

A pergunta fundamental do threat modeling é enganosamente simples: "o que pode dar errado?". Para respondê-la de forma sistemática — e não deixar ameaças escaparem por esquecimento —, usam-se frameworks. O mais popular é o STRIDE, criado na Microsoft, um acrônimo em que cada letra é uma categoria de ameaça que você deve verificar contra cada componente do sistema. Spoofing (falsificação de identidade), Tampering (adulteração de dados), Repudiation (repúdio — negar ter feito algo, ligado à falta de auditoria), Information disclosure (vazamento de informação), Denial of service (negação de serviço) e Elevation of privilege (elevação de privilégio). Note a beleza da simetria: cada categoria do STRIDE é a violação de uma propriedade de segurança que você já conhece. Spoofing viola a autenticação; Tampering viola a integridade; Repudiation viola a auditoria; Information disclosure viola a confidencialidade; DoS viola a disponibilidade; Elevation viola a autorização. STRIDE é, no fundo, a tríade CIA e o AAA da aula A tríade CIA e o modelo AAA: o vocabulário da defesa virados do avesso — as propriedades vistas pelo lado do que as quebra.

O formulário de login sob as seis letras

Na prática, aplica-se o STRIDE percorrendo o sistema componente a componente. Para um simples formulário de login, o raciocínio fica assim:

Componente: tela de login
S - alguém pode se passar por outro usuário? (roubo de credencial, brute force)
T - os dados enviados podem ser adulterados em trânsito? (falta de TLS)
R - há registro de quem tentou logar e quando? (logs de auditoria)
I - a resposta vaza se o usuário existe ou não? (enumeração de usuários)
D - o login pode ser derrubado por excesso de requisições?
E - um usuário comum consegue acessar funções de admin após logar?

Perceba como o framework força a completude — você não "esquece" de pensar em auditoria ou em enumeração de usuários, porque o R e o I estão lá, cobrando. Essa disciplina é exatamente o valor de uma metodologia nomeada.

DREAD: priorizar o que foi identificado

Uma vez identificadas as ameaças, é preciso priorizá-las, e aqui entra o DREAD, um modelo de pontuação que classifica cada ameaça por cinco fatores: Damage (dano potencial), Reproducibility (facilidade de reproduzir), Exploitability (facilidade de explorar), Affected users (quantos são afetados) e Discoverability (facilidade de descobrir). Some ou pondere esses fatores e você obtém um ranking do que atacar (ou defender) primeiro. O DREAD caiu um pouco em desuso por ser subjetivo — o que é "dano 7 e não 6"? —, e hoje muitos preferem o CVSS que veremos na aula CVE, CVSS e CWE: a linguagem das vulnerabilidades para pontuar vulnerabilidades concretas; mas como ferramenta de raciocínio sobre priorização, o DREAD ainda ensina bem quais dimensões importam.

PASTA e a árvore de ataque

Para modelagens mais robustas e centradas em cenários de negócio existe o PASTA (Process for Attack Simulation and Threat Analysis), um método de sete estágios que parte dos objetivos de negócio e desce até a simulação de ataques concretos, integrando o threat modeling à gestão de risco que vimos na aula Governança, risco e compliance: por que o cliente realmente paga. É mais pesado e usado em contextos corporativos maduros; você não precisa dominá-lo agora, mas precisa reconhecer o nome. E há uma ferramenta visual complementar a qualquer metodologia: as attack trees (árvores de ataque). Você coloca o objetivo do atacante na raiz e vai ramificando os caminhos possíveis para alcançá-lo, decompondo cada um em sub-passos. Um esboço:

OBJETIVO: acessar a conta bancária da vítima
├── OU: obter as credenciais
│      ├── phishing de página falsa
│      ├── keylogger no dispositivo
│      └── vazamento de senha reutilizada
├── OU: sequestrar a sessão ativa
│      ├── roubo de cookie via XSS
│      └── man-in-the-middle sem TLS
└── OU: burlar o segundo fator
       ├── SIM swap
       └── engenharia social do suporte

A árvore torna visível que a segurança do todo é limitada pelo ramo mais fraco — não adianta uma senha fortíssima se o segundo fator cai por engenharia social do suporte. Essa visão de "caminho de menor resistência" é exatamente como um atacante real raciocina.

Antes do teste e na prancheta

Para o pentester, o threat modeling tem duplo uso. Antes do teste, ele estrutura o planejamento: modelar as ameaças ao alvo ajuda a priorizar onde investir as horas limitadas do engajamento — você ataca primeiro os ramos mais prováveis e danosos da árvore. Depois, e cada vez mais, empresas contratam profissionais de segurança para participar do design de sistemas, revisando arquiteturas e apontando falhas no papel, quando corrigir custa uma fração do que custaria depois de pronto. Um pentester que sabe fazer threat modeling não é só quem quebra o que está pronto — é quem ajuda a não construir quebrado. Do lado defensivo, essa é literalmente a contramedida: incorporar threat modeling ao ciclo de desenvolvimento (o "shift left" da segurança) é uma das práticas de maior retorno que uma organização pode adotar.

Fontes e leituras recomendadas

Exercícios

  1. O que diferencia o threat modeling das análises que vimos antes (Kill Chain, ATT&CK, Diamond) em relação ao tempo?

    ✓ Resposta:

    Threat modeling é proativo e antecipatório — busca prever ameaças antes que sejam exploradas, idealmente na fase de design —, enquanto os outros modelos analisam ataques já ocorridos ou em andamento.

  2. Escreva o que significa cada letra de STRIDE e associe cada categoria à propriedade de segurança que ela viola.

    ✓ Resposta:

    Spoofing (viola autenticação), Tampering (viola integridade), Repudiation (viola auditoria/não-repúdio), Information disclosure (viola confidencialidade), Denial of service (viola disponibilidade), Elevation of privilege (viola autorização).

  3. Aplique mentalmente o "I" e o "E" do STRIDE a uma funcionalidade de upload de foto de perfil: que ameaça cada um levanta?

    ✓ Resposta:

    "I" (Information disclosure): o upload pode revelar caminhos internos do servidor ou metadados sensíveis da imagem. "E" (Elevation of privilege): um arquivo malicioso enviado como "foto" poderia ser executado no servidor e conceder acesso privilegiado. (Respostas equivalentes são válidas.)

  4. Quais são os cinco fatores do DREAD e para que serve o modelo? Cite uma crítica a ele.

    ✓ Resposta:

    Damage, Reproducibility, Exploitability, Affected users e Discoverability. Serve para pontuar e priorizar ameaças. Crítica: é subjetivo, pois as notas dependem de julgamento pessoal, o que dificulta consistência.

  5. Em uma attack tree, por que se diz que a segurança do objetivo é limitada pelo "ramo mais fraco"?

    ✓ Resposta:

    Porque o atacante escolhe o caminho de menor resistência; se qualquer ramo leva ao objetivo, basta o mais fácil deles ser viável para comprometer o todo, independentemente de quão fortes sejam os outros caminhos.