Pular para conteúdo

Modelo de ameaças

  • Modelo de ameaça é uma importante abordagem estruturada que visa identificar, quantificar e corrigir riscos de segurança antes do início de um projeto.

    É a prática que envolve olhar o desenho da arquitetura do projeto e responder a quatro perguntas fundamentais:

    • O que estamos construindo? (Diagrama da arquitetura/fluxo de dados).
    • O que pode dar errado? (Identificação de ameaças).
    • O que vamos fazer a respeito? (Definição de mitigações).
    • Fizemos um bom trabalho? (Validação e revisão).
  • O objetivo de aplicar isso na arquitetura é de identificar falhas de design quando elas ainda são apenas desenhos, visto que a correção de um diagrama é muito mais barato que refatorar um sistema em produção.

2.1. O que deve constar no diagrama:

  • Processos: Seus microsserviços (ex: Checkout Service no Cloud Run).
  • Armazenamento de Dados: Bancos, Filas, Buckets (ex: Cloud SQL, Pub/Sub, GCS).
  • Entidades Externas: Quem interage com o sistema (ex: Usuário, API de Pagamento de Terceiros).
  • Fronteiras de Confiança (Trust Boundaries): Este é o ponto mais crítico. São linhas que separam diferentes níveis de confiança (ex: a internet vs. sua VPC interna; ou o Serviço A vs. o Banco de Dados).

2.2. Identificação de ameaças usando STRIDE

  • STRIDE é um método sistemático de identificação de ameaças, ou seja, é uma forma de forçar a análise de risco cobrindo as principais categorias de ataques possíveis em um sistema
  • STRIDE = Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege
  • Spoofing (Falsificação de identidade): Alguém pode ou consegue se passar por outra entidade?
  • Tampering (Violação de integridade): Alguém consegue modificar dados de forma indevida?
  • Repudiation (Negação de ações): Alguém consegue negar que realizou uma ação?
  • Information Disclosure (Vazamento de informação): Informações sensíveis podem ser expostas?
  • Denial of Service (Negação de serviço): O sistema pode ser tornado indisponível?
  • Elevation of Privilege (Elevação de privilégio): Um usuário consegue elevar seus privilégios de alguma forma?

2.3. O que fazer depois da análise:

  • Separar por grau de criticidade se possível.
  • Priorizar a mitigação das ameaças identificadas antes de dar prosseguimento ao projeto.
  • Documentar lições aprendidas sempre que possível.