Pular para o conteúdo principal

🔄 Aplicação de Threat Modeling no Ciclo de Vida

Este anexo prescreve como aplicar sistematicamente as práticas de Threat Modeling definidas no Capítulo 3 ao longo do ciclo de desenvolvimento, garantindo rastreabilidade, proporcionalidade ao risco e integração com os requisitos de segurança.

Inclui modelos reutilizáveis de user stories, ações por papel, artefactos esperados e quadros de aplicação por nível de criticidade (L1–L3).


📅 Quando aplicar Threat Modeling

Fase / EventoAção esperadaQuem participaArtefacto principal
Início de projeto / épicoRealizar sessão inicial de threat modelingDevOps/SRE, Product Owner, Arquitetos de Software, AppSec EngineerDFD + lista inicial de ameaças
Grooming / PlaneamentoAtualizar modelos com base em novas featuresDeveloper + AppSec EngineerBacklog + threats.yaml
Revisão de ArquiteturaValidar ameaças antes de design finalArquitetos de Software + AppSec EngineerFicha de solução + mitigations.md
Alterações críticasAtualizar modelos após integrações/refactorsDeveloper + QA / Test Engineer + AppSec EngineerModelo atualizado
Release / Go-liveValidar riscos e exceções aceitesQA / Test Engineer + AppSec EngineerChecklist + decisions.md
CI/CD pipelineValidar atualidade do modelo em build/releaseDevOps/SRE + AppSec EngineerValidação automática

👥 Quem faz o quê

Papel / FunçãoResponsabilidades-chave
Arquitetos de SoftwareFacilitar sessões, manter modelos atualizados e documentados
DeveloperIdentificar fluxos, pontos de entrada e lógica de negócio
QA / Test EngineerValidar critérios de aceitação derivados das ameaças
AppSec EngineerIdentificar ameaças técnicas, apoiar mitigação e rever exceções
Product OwnerPriorizar mitigação e validar impacto no negócio
DevOps/SREAutomatizar validações de threat modeling em pipelines

📝 User Stories e Cartões Reutilizáveis

US-01 - Criação do modelo de ameaça

Contexto.
No início do projeto, deve ser criado um modelo de ameaça proporcional ao risco da aplicação.

User Story

História.
Como Arquitetos de Software e Team Lead / Scrum Master, quero criar um modelo de ameaça inicial com DFDs e STRIDE/LINDDUN, para que os riscos de arquitetura sejam visíveis e tratados desde o início.

Critérios de aceitação (BDD).

  • Dado que o projeto inicia
    Quando construo o modelo de ameaça com DFDs
    Então todas as ameaças são registadas e ligadas a controlos/requisitos

Checklist.

  • Sessão de threat modeling realizada
  • DFDs criados e documentados
  • Ameaças catalogadas (STRIDE, LINDDUN, PASTA)
  • Ameaças ligadas a requisitos de mitigação
  • Evidência arquivada em repositório de arquitetura

Artefactos & evidências.

  • Artefacto: modelo de ameaça inicial (ferramenta ou Markdown)
  • Evidência: ligação a backlog THREAT-*

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalChecklist simplificada
L2SimModelos formais com STRIDE
L3SimModelos completos com STRIDE/LINDDUN/PASTA

Integração no SDLC.

FaseTriggerResponsávelSLA
InícioKick-off do projetoArquitetos de Software + AppSec EngineerAntes do backlog inicial

Ligações úteis.


US-02 - Validação de arquitetura com threat modeling

Contexto.
As revisões de arquitetura devem incluir threat modeling para identificar ameaças estruturais.

User Story

História.
Como Arquitetos de Software e AppSec Engineer, quero validar a arquitetura através de threat modeling, para identificar ameaças críticas antes de decisões de design.

Critérios de aceitação (BDD).

  • Dado que ocorre revisão da arquitetura
    Quando aplico threat modeling
    Então ameaças estruturais são registadas e mitigadas

Checklist.

  • Revisão de arquitetura formal realizada
  • Modelo de ameaça atualizado
  • Decisões de design documentadas
  • Evidência arquivada

Artefactos & evidências.

  • Artefacto: relatórios de revisão de arquitetura
  • Evidência: ameaças registadas ligadas a requisitos

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalRevisão simplificada
L2SimRevisão da arquitetura com threat modeling
L3SimRevisão detalhada + validação independente

Integração no SDLC.

FaseTriggerResponsávelSLA
Design / RevisãoRevisão da arquiteturaArquitetos de Software + AppSec EngineerAntes da aprovação de design

US-03 - Atualização do modelo após alteração técnica

Contexto.
Sempre que ocorrer uma alteração significativa (nova feature, integração ou refactor), o modelo de ameaça deve ser atualizado.

User Story

História.
Como Arquitetos de Software e DevOps/SRE, quero atualizar o modelo de ameaça sempre que há alterações significativas, para que o modelo permaneça válido e útil.

Critérios de aceitação (BDD).

  • Dado que ocorre alteração significativa
    Quando atualizo o modelo
    Então ameaças novas ou alteradas ficam registadas e mapeadas para requisitos

Checklist.

  • Alteração significativa identificada
  • Modelo de ameaça atualizado
  • Ameaças novas registadas
  • Evidência arquivada

Artefactos & evidências.

  • Artefacto: modelo de ameaça atualizado
  • Evidência: commit ou issue ligada a alteração

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalApenas integrações externas
L2SimTodas as mudanças críticas
L3SimQualquer alteração da arquitetura

Integração no SDLC.

FaseTriggerResponsávelSLA
Refactor / AlteraçãoAlteração significativaArquitetos de Software + Team Lead / Scrum MasterAntes da release

Ligações úteis.


US-04 - Justificação formal de risco aceite

Contexto.
Nem todas as ameaças podem ser mitigadas; riscos residuais devem ser formalmente documentados, aprovados e revistos.

User Story

História.
Como AppSec Engineer e GRC/Compliance, quero documentar e aprovar formalmente riscos residuais identificados no threat modeling, para que decisões de aceitação sejam transparentes e auditáveis.

Critérios de aceitação (BDD).

  • Dado que há ameaças não mitigadas
    Quando registo risco aceite
    Então decisão é documentada, aprovada e arquivada

Checklist.

  • Risco residual identificado
  • Justificação documentada
  • Aprovação formal por AppSec
  • Prazo e reavaliação definidos
  • Evidência anexada ao repositório de riscos

Artefactos & evidências.

  • Artefacto: ficheiros riscos/*.md
  • Evidência: issue ou PR com aprovação

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalAceitação informal
L2SimDocumentação formal
L3SimDocumentação formal + mitigação compensatória

Integração no SDLC.

FaseTriggerResponsávelSLA
Planeamento/ReleaseIdentificação de risco não mitigadoAppSec EngineerAntes do go-live

Ligações úteis.


US-05 - Integração com CI/CD

Contexto.
O threat modeling deve ser integrado com pipelines CI/CD, garantindo que alterações significativas acionam revisão automática do modelo e validações associadas.

User Story

História.
Como DevOps/SRE e AppSec Engineer, quero integrar validações de threat modeling no pipeline, para que cada alteração relevante seja revista automaticamente.

Critérios de aceitação (BDD).

  • Dado que uma alteração é feita
    Quando a pipeline é executada
    Então verificações de threat modeling são acionadas e resultados registados

Checklist.

  • Pipeline CI/CD inclui job de threat modeling
  • Resultados armazenados automaticamente
  • Requisitos derivados atualizados no backlog
  • Evidência disponível em logs de pipeline

Artefactos & evidências.

  • Artefacto: pipelines CI/CD
  • Evidência: logs de execução com validações

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1Não aplicável-
L2SimRevisão periódica em pipeline
L3SimAutomação obrigatória e bloqueante

Integração no SDLC.

FaseTriggerResponsávelSLA
Implementação / CIExecução de pipelineDevOps/SREEm cada commit/release

Ligações úteis.


US-06 - Validação de impacto no negócio

Contexto.
As ameaças identificadas devem ser priorizadas com base no impacto para o negócio, e não apenas em métricas técnicas.

User Story

História.
Como Product Owner, quero priorizar as ameaças identificadas no modelo de acordo com impacto no negócio, para otimizar mitigação e investimento.

Critérios de aceitação (BDD).

  • Dado que ameaças foram identificadas
    Quando as avalio pelo impacto de negócio
    Então prioridades são registadas e comunicadas

Checklist.

  • Impacto avaliado (financeiro, reputacional, legal)
  • Priorização documentada
  • Requisitos derivados priorizados no backlog
  • Evidência arquivada

Artefactos & evidências.

  • Artefacto: matriz de impacto vs ameaça
  • Evidência: backlog priorizado

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalAvaliação simplificada
L2SimAnálise de impacto formal
L3SimAnálise formal + revisão executiva

Integração no SDLC.

FaseTriggerResponsávelSLA
Planeamento / GroomingAvaliação de impactoProduct Owner + Gestão Executiva/CISOAntes de priorização de sprint

Ligações úteis.


US-07 - Automação e reutilização de modelos

Contexto.
Ferramentas de threat modeling (ex.: OWASP Threat Dragon, Microsoft TMT, IriusRisk) devem ser usadas para automatizar e reutilizar modelos, garantindo consistência e eficiência.

User Story

História.
Como DevOps/SRE + AppSec Engineer, quero usar ferramentas para automação e reutilização de modelos de ameaça, para garantir consistência e reduzir trabalho manual.

Critérios de aceitação (BDD).

  • Dado que realizo threat modeling
    Quando uso ferramenta automatizada
    Então o modelo é gerado/reutilizado com consistência e armazenado

Checklist.

  • Ferramenta definida e adotada
  • Modelos armazenados em repositório central
  • Reutilização de modelos em novos projetos validada
  • Evidência de execução disponível

Artefactos & evidências.

  • Artefacto: modelos em ferramenta ou repositório central
  • Evidência: relatórios automáticos exportados

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalModelos simplificados
L2SimAutomação recomendada
L3SimAutomação obrigatória e reutilização padronizada

Integração no SDLC.

FaseTriggerResponsávelSLA
Design / GroomingCriação e manutenção de modelosArquitetos de Software + DevOps/SREPor projeto e atualização contínua

Ligações úteis.


US-08 - Aplicação LINDDUN quando existir tratamento de dados pessoais (novo)

Contexto.
Quando o sistema trata dados pessoais, a análise de privacidade deve complementar a análise de segurança.

User Story

História.
Como Arquitetos de Software + AppSec Engineer, quero aplicar LINDDUN quando exista tratamento de dados pessoais, para garantir cobertura de ameaças de privacidade.

Critérios de aceitação (BDD).

  • Dado que o sistema trata dados pessoais
    Quando executo Threat Modeling
    Então incluo análise LINDDUN com ameaças, mitigação e mapeamento para REQ-PRIV-*
  • E crio privacy-dfd com trust boundaries específicos

Checklist.

  • privacy-dfd criado
  • Lista LINDDUN preenchida
  • Ligação a REQ-PRIV-* do Cap. 2
  • Ameaças classificadas quanto a severidade e mitigação
  • Evidência arquivada no repositório de arquitetura

Artefactos & evidências.

  • privacy-dfd.*
  • privacy-threats.md
  • Relatório LINDDUN exportado / validado

Proporcionalidade por risco.

NívelObrigatório?Ajustes
L1OpcionalChecklist simplificada
L2SimAnálise formal de privacidade
L3SimLINDDUN completo + validação independente (DPO)

Integração no SDLC.

FaseTriggerResponsávelSLA
Design / RevisãoPresença de dados pessoaisArquitetos de Software + GRC/ComplianceAntes da aprovação de design

Ligações úteis.

⚖️ Aplicação proporcional por nível de risco (L1–L2–L3)

⚖️ Aplicação proporcional por nível de risco (L1–L2–L3)

Prática / AtividadeL1 (baixo risco)L2 (médio risco)L3 (alto risco)
Sessões de Threat ModelingBásicas (checklist STRIDE simplificada)Modelos formais com STRIDEModelos completos com STRIDE e LINDDUN (quando aplicável) + PASTA + automação
Revisão de arquiteturaOpcionalInclusão obrigatóriaSempre obrigatória com revisão independente
Integração em CI/CDNão aplicávelRevisão periódicaAutomação integrada e bloqueante
Risco aceiteInformalDocumentadoFormal, aprovado por AppSec e com sunset definido
Automação / ReutilizaçãoNão aplicávelRecomendado (ferramenta ou script)Obrigatório (ferramenta centralizada, integração contínua)
Análise LINDDUN (privacidade)Não aplicávelObrigatória se houver dados pessoaisSempre obrigatória, com revisão por DPO

📄 Templates e artefactos esperados

ArtefactoFormato sugeridoOnde guardar / referenciar
Modelo de ameaça inicial (STRIDE)Ferramenta / .mdDiretório docs/ ou repositório
Modelo de privacidade (LINDDUN)Ferramenta / .mdDiretório docs/privacy/ ou subpasta do modelo
Atualizações de modelosFerramenta / .mdDiretório docs/ ou repositório
Cartões derivados (THREAT-*)Board / JiraBacklog da equipa
Cartões de privacidade (PRIV-*)Board / JiraBacklog da equipa
Justificação de risco aceiteMarkdown / issueDiretório riscos/ ou board
Relatórios de rastreabilidadeExport / .csvArquivo de auditoria
Relatórios LINDDUNExport / .pdf/.csvDiretório docs/privacy/ ou auditoria
Modelos automatizadosFerramentaRepositório central de modelos