Modelagem de Ameaças - Introdução
Tags: threatmodeling, appsec, devsecops, security
Published: 2023-02-22 21:43:09

> TL:DR
Neste artigo compartilho uma introdução à Modelagem de Ameaças, a partir dos meus estudos sobre o tema.

## Objetivos da Modelagem de Ameaças

Entender quem são seus "inimigos". O que os motiva e quais são seus objetivos.
Conhecer bem o seu próprio sistema.
Criar camadas de proteção.
Mitigar os riscos.

Corrigir um problema de segurança **depois** que o produto está desenvolvido e em produção pode **custar centenas de vezes mais** que prevenir ele em sua construção.

## Visão Geral

A modelagem de ameaças é uma representação estruturada de todas as informações que afetam a segurança de um aplicativo, analisando através da perspectiva de um invasor em potencial, em oposição ao ponto de vista de um defensor. Em essência, é uma visão do aplicativo e seu ambiente pelas lentes da segurança.

Um modelo de ameaça geralmente inclui:

-   Descrição do assunto a ser modelado
-   Suposições que podem ser verificadas ou contestadas no futuro conforme mudanças no cenário de ameaças
-   Ameaças potenciais ao sistema
-   Ações que podem ser tomadas para mitigar cada ameaça
-   Uma forma de validação do modelo e ameaças, e verificação do sucesso das ações tomadas

O processo de modelagem de ameaças pode ser decomposto em três etapas:

1. Decompor o aplicativo
2. Determinar e Classificar as Ameaças
3. Determinar contramedidas e mitigação

## Modelagem de ameaças em todo o ciclo de vida

A modelagem de ameaças é melhor **aplicada continuamente** ao longo de um projeto de desenvolvimento de software. O processo é essencialmente o mesmo em diferentes níveis de abstração, embora as informações fiquem cada vez mais granulares ao longo do ciclo de vida. 

Idealmente, um modelo de ameaça de alto nível deve ser definido no início do conceito ou fase de planejamento e, em seguida, refinado ao longo do ciclo de vida. À medida que mais detalhes são adicionados ao sistema, novos vetores de ataque são criados e expostos. O processo contínuo de modelagem de ameaças deve examinar, diagnosticar e abordar essas ameaças.

A atualização dos modelos de ameaças é aconselhável após eventos como:

-   Um novo recurso é lançado
-   Ocorre um incidente de segurança
-   Mudanças arquitetônicas ou de infraestrutura

A estrutura de quatro perguntas a seguir pode ajudar a organizar a modelagem de ameaças:

-   Em que estamos trabalhando? => **Avalie o escopo** - Isso pode ser tão pequeno quanto um sprint ou tão grande quanto um sistema inteiro.

-   O que pode dar errado? => **Identifique o que pode dar errado** - Isso pode ser tão simples quanto um brainstorm ou tão estruturado quanto usar STRIDE, Kill Chains ou Attack Trees.

-   O que você irá fazer sobre isso? => **Identifique contramedidas ou gerencie riscos** - Decida o que você fará com cada ameaça. Isso pode ser para implementar uma mitigação ou aplicar as abordagens aceitar/transferir/eliminar do gerenciamento de riscos.

-   Fizemos um bom trabalho? => **Avalie seu trabalho** - Você fez um trabalho bom o suficiente para o sistema em questão?

## Considerações Finais

Esse artigo foi uma introdução sobre Modelagem de Ameaças, que terá continuidade nas próximas publicações com os temas Decompondo a Aplicação, Determinando e Classificando Ameaças, e Contramedidas e Mitigação.

Até lá!