/ TL;DR

Threat modeling clássico (STRIDE, PASTA) dá 3 dias de workshop. Squad de 4 pessoas não sobrevive a isso. Este é um framework de 1 hora, feito uma vez por trimestre, que resolve 80% do valor de threat modeling profissional.

Threat modeling faz diferença real. Mas frameworks clássicos são pesados demais pra squad de 4-8 pessoas de startup. Este é o framework enxuto que a Varredura recomenda: 1 hora, uma vez por trimestre.

Quando rodar

  • No começo de projeto grande (feature nova que muda arquitetura).
  • Antes de subir para produção pela primeira vez.
  • Trimestralmente em produtos maduros.
  • Depois de incidente relevante.

Framework de 4 perguntas

Em 1 hora, o time responde:

1. O que estamos construindo? (10 min)

Desenha o diagrama num quadro branco:

  • Componentes (services, DBs, caches, filas).
  • Fronteiras de confiança (o que é público, o que é interno).
  • Dados que fluem (o que trafega em cada seta).

Nada elaborado. Rabisco de quadro branco basta.

2. O que pode dar errado? (30 min)

Para cada componente e fluxo, o time cita 2-3 formas de "dar errado". Use STRIDE como cheat sheet:

  • Spoofing (fingir ser outro).
  • Tampering (alterar dado em trânsito ou repouso).
  • Repudiation (negar que fez).
  • Information disclosure (vazar).
  • Denial of service (derrubar).
  • Elevation of privilege (ganhar acesso além do permitido).

Só puxa a categoria que faz sentido. Não perde tempo em todas.

3. O que vamos fazer? (15 min)

Para cada risco listado:

  • Aceitar: documenta e segue. Ex: risco baixíssimo.
  • Mitigar: vira ticket com prazo.
  • Transferir: cobre por seguro ou terceiro.
  • Evitar: repensa a feature.

Anti-padrão comum

  • Fazer só na cabeça de uma pessoa. Precisa ser conversa do time.
  • Documento de 30 páginas ninguém lê depois. Rabisco + tickets no Jira/Linear basta.
  • Não voltar depois. Trimestral, sério.

Saída esperada

  • Diagrama no quadro branco fotografado no Notion.
  • 3-8 tickets criados no backlog com prazo.
  • 1-2 riscos aceitos com documentação de por quê.

Exemplo real (SaaS de 10 pessoas)

1 hora em outubro. Diagrama de 6 componentes. STRIDE aplicado.

Riscos identificados:

  1. Info disclosure em endpoint export (não tinha rate limit). → Ticket com prazo 1 semana.
  2. Spoofing em webhook (não valida assinatura). → Ticket com prazo 2 semanas.
  3. Elevation via API key compartilhada entre ambientes. → Ticket com prazo 3 dias.
  4. DoS em endpoint de busca (query pesada). → Aceito por 3 meses, revisar próximo threat model.

Tempo total investido: 1h de squad + 3 dias de correção = risco P0 evitado.

Ferramentas úteis

  • Threat Dragon (OWASP): free, web-based, opcional.
  • draw.io / Excalidraw: pra formalizar diagrama depois.
  • Só Notion + foto: também funciona.

TL;DR

  • 1h por trimestre.
  • 4 perguntas.
  • STRIDE como cheat sheet, não bíblia.
  • Saída: tickets + diagrama.
  • Ligue com o backlog do trimestre.

Depois do threat model, a Varredura testa contra os vetores identificados. Ver como.

EV

Equipe Varredura

Time de pesquisa de segurança · Varredura

Sua app em produção passa por essa análise?

Rode uma varredura autônoma em ~60 segundos. Sem cadastro.

Analisar minha aplicação →