Template de modelagem de ameaças
Roteiro com as quatro perguntas, tabela STRIDE e registro de decisões.
Material complementar · Módulo 4 — Riscos e evolução
Como usar este template
Copie as seções abaixo para o documento do seu workload (ou para o Threat Composer) e preencha em sessão com quem constrói, opera e é dono do produto. O roteiro segue as quatro perguntas do Threat Modeling Manifesto, também adotadas na SEC01-BP07. A teoria está nas lições 13 e 14.
1. No que estamos trabalhando?
Escopo
ObrigatórioO que está dentro e fora da análise: componentes, contas, Regiões, versão da arquitetura.
Ativos
ObrigatórioO que tem valor e precisa de proteção: dados (com classificação), credenciais, disponibilidade do serviço, reputação.
Atores
ObrigatórioQuem interage com o sistema, legítimo ou não: usuários finais, parceiros, operadores, pipelines, atacante externo, insider.
Diagrama e limites de confiança
ObrigatórioDiagrama de fluxo de dados com entidades externas, processos, repositórios e fluxos; marque cada ponto em que o dado muda de zona de confiança (internet → API, conta → conta, VPC → serviço de terceiro).
Suposições
RecomendadoO que você considera verdadeiro e não vai analisar ("o IdP exige MFA", "a conta já tem o baseline da organização"). Cada suposição tem um dono que pode confirmá-la.
2. O que pode dar errado? — guia STRIDE
| Categoria | Pergunta-guia | Exemplo AWS | Mitigação típica |
|---|---|---|---|
| Spoofing | Alguém pode se passar por outro usuário ou sistema? | Chave de acesso de longo prazo vazada em repositório. | Roles com credenciais temporárias, MFA, federação. |
| Tampering | Alguém pode alterar dados, código ou configuração sem autorização? | Objetos de log ou artefatos de build alterados em um bucket S3. | S3 Object Lock, versionamento, validação de integridade de logs do CloudTrail. |
| Repudiation | Alguém pode negar uma ação por falta de registro? | Mudança feita com usuário compartilhado, sem trilha. | Trail da organização no CloudTrail, identidades individuais, logs em conta separada. |
| Information disclosure | Dados podem ser vistos por quem não deveria? | Bucket ou snapshot compartilhado publicamente. | S3 Block Public Access, AWS KMS, IAM Access Analyzer. |
| Denial of service | O serviço pode ficar indisponível ou caro demais? | Inundação de requisições em uma API pública. | AWS WAF com regras baseadas em taxa, throttling do API Gateway, AWS Shield. |
| Elevation of privilege | Alguém pode ganhar mais permissão do que deveria? | Role com iam:PassRole ou iam:* amplo. | Menor privilégio, permissions boundaries, SCPs. |
Escreva cada ameaça na gramática usada pela AWS: "uma [fonte de ameaça] com [pré-requisitos] pode [ação] levando a [impacto], afetando [ativos]".
3. O que vamos fazer a respeito? — registro de ameaças
| ID | Ameaça | STRIDE | Prob. | Impacto | Prioridade | Mitigação | Dono | Status |
|---|---|---|---|---|---|---|---|---|
| T-01 | Atacante externo com uma chave vazada lista e baixa objetos do bucket de uploads. | S, I | 2 | 3 | 6 — alta | Remover chaves de longo prazo; role para a aplicação; bucket policy restrita à VPC. | Time da API | Em andamento |
| T-02 | Cliente mal-intencionado inunda a API pública e a deixa indisponível. | D | 3 | 2 | 6 — alta | Regra baseada em taxa no AWS WAF; throttling por estágio no API Gateway. | Plataforma | Aberta |
| T-03 | Operador altera configuração de produção sem trilha individual. | R | 1 | 2 | 2 — baixa | Acesso via IAM Identity Center; trail da organização. | Segurança | Mitigada |
Escala sugerida: 1 = baixo, 2 = médio, 3 = alto; prioridade = probabilidade × impacto. Para cada linha, registre também a resposta escolhida (mitigar, evitar, transferir, aceitar), o risco residual e a data de revisão.
4. Fizemos um bom trabalho?
- Todo limite de confiança do diagrama tem ao menos uma ameaça analisada?
- Toda ameaça de prioridade alta tem mitigação com dono e prazo, ou aceite formal?
- As suposições foram confirmadas pelos donos?
- Está definido o gatilho para revisitar (mudança de arquitetura, serviço novo, ameaça nova)?
- O que faria a próxima sessão ser mais rápida ou melhor?