O que é threat modeling? (Modelagem de Ameaças)

O que é threat modeling? A “Modelagem de Ameaças” é um procedimento para otimizar a segurança do aplicativo, sistema ou processo de negócios, identificando objetivos e vulnerabilidades e, em seguida, definindo contramedidas para prevenir ou mitigar os efeitos das ameaças ao sistema.

O termo “threat modeling” ou “Modelagem de Ameaças” se tornou bastante popular. A Microsoft publicou seu processo e inclui a modelagem de ameaças como uma atividade-chave em seu Secure Development Lifecycle (SDL).

Um modelo de ameaça é essencialmente uma representação estruturada de todas as informações que afetam a segurança de um aplicativo. Em essência, é uma visão do aplicativo e de seu ambiente por meio de lentes de segurança.
A modelagem de ameaças é um processo de captura, organização e análise de todas essas informações. A modelagem de ameaças permite a tomada de decisões informadas sobre o risco de segurança do aplicativo. Além de produzir um modelo, os esforços típicos de modelagem de ameaças também produzem uma lista priorizada de melhorias de segurança para o conceito, requisitos, design ou implementação.

Objetivos da modelagem de ameaças

A modelagem de ameaças é uma família de atividades para melhorar a segurança, identificando objetivos e vulnerabilidades e, em seguida, definindo contramedidas para prevenir ou mitigar os efeitos de ameaças ao sistema. Uma ameaça é um evento indesejável potencial ou real que pode ser malicioso (como um ataque DoS) ou incidental (falha de um dispositivo de armazenamento). A modelagem de ameaças é uma atividade planejada para identificar e avaliar ameaças e vulnerabilidades de aplicativos.

A modelagem de ameaças ajuda a identificar os requisitos de segurança de um sistema ou processo – qualquer coisa de missão crítica, sensível ao processamento ou composta de dados valiosos. É um processo sistemático e estruturado que visa identificar potenciais ameaças e vulnerabilidades para reduzir o risco aos recursos de TI. Também ajuda os gerentes de TI a entender o impacto das ameaças, quantificar sua gravidade e implementar controles.

Em termos de segurança de software, a modelagem de ameaças é a parte mais importante do design e desenvolvimento de software . É impossível construir aplicativos e sistemas que estejam em conformidade com as políticas de segurança corporativa e os requisitos regulatórios e de privacidade sem avaliar e mitigar as ameaças.

A modelagem de ameaças baseada em TI ganhou força na década de 1990 com o desenvolvimento de perfis de ameaças e invasores. A Microsoft introduziu sua metodologia de modelagem de ameaças STRIDE (“Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege” – falsificação, adulteração, repúdio, divulgação de informações, negação de serviço e elevação de privilégio) em 1999. Existem agora muitas outras abordagens. Todos eles envolvem a desconstrução dos elementos de um aplicativo ou sistema para identificar os ativos a serem protegidos e as possíveis ameaças a serem mitigadas. Uma metodologia de modelagem de ameaças é uma maneira de dividir um processo complexo em tarefas menores, facilitando a identificação de pontos fracos.

Por que a modelagem de ameaças é importante?

Qualquer aplicativo ou sistema deve ser projetado para resistir a ataques. No entanto, estabelecer os requisitos de segurança necessários para conseguir isso pode ser complexo. Os invasores pensam e agem de maneira diferente dos desenvolvedores e usuários.

A modelagem de ameaças é um método proativo de descobrir ameaças geralmente não consideradas ou encontradas por meio de revisões de código e outros tipos de auditoria. Ele permite que uma equipe de projeto determine quais controles de segurança um aplicativo precisa para definir contramedidas eficazes contra ameaças potenciais e como resolver os problemas desde o início. Essa abordagem leva a aplicativos muito mais seguros e, ao priorizar as ameaças previstas, os recursos são usados ​​de forma eficaz.

Os modelos de ameaças são uma parte vital de um processo de desenvolvimento de segurança funcional. Quando a modelagem de ameaças faz parte do processo de DevOps , os desenvolvedores podem incluir segurança em um projeto durante as fases de desenvolvimento e manutenção. Isso evita omissões comuns, como falha na validação da entrada, autenticação fraca, tratamento de erros inadequado e falha na criptografia de dados.

Modelagem de ameaças ao longo do 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 na fase de conceito ou 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 lidar com essas ameaças.

Observe que é uma parte natural do refinamento de um sistema para que novas ameaças sejam expostas. Por exemplo, ao selecionar uma tecnologia específica – como Java, por exemplo – você assume a responsabilidade de identificar as novas ameaças criadas por essa escolha. Mesmo as opções de implementação, como o uso de expressões regulares para validação, introduzem novas ameaças potenciais com as quais lidar.

Como funciona o processo de modelagem de ameaças?

Para que exista uma ameaça a um aplicativo, deve haver uma combinação dos itens a seguir, em que a probabilidade e o impacto combinados são importantes o suficiente para fazer algo a respeito. A seguir está uma estrutura de quatro perguntas que ajuda a entender a modelagem de ameaças:

  • Em que estamos trabalhando?
  • O que pode dar errado?
  • O que você irá fazer sobre isso?
  • Fizemos um bom trabalho?

Existem muitas maneiras de responder a cada uma dessas perguntas.
Para entender se um aplicativo é seguro o suficiente ou não, você deve pesquisar combinações desses ingredientes que levem a ameaças realistas.
Não existe uma maneira “certa” de avaliar o espaço de busca de possíveis ameaças. Mas existem maneiras melhores ou piores. Tentar avaliar todas as combinações possíveis de agente de ameaça, ataque, vulnerabilidade e impacto costuma ser uma perda de tempo e esforço. Observe que muitas das ferramentas automatizadas adotam essa abordagem – reunindo muitos dados e produzindo milhares de ameaças possíveis. Geralmente é mais produtivo se concentrar em encontrar ameaças de alta probabilidade e alto impacto

Existem várias estruturas e metodologias de modelagem de ameaças diferentes. No entanto, as etapas principais são semelhantes na maioria desses processos. Eles incluem:

  1. Forme uma equipe. Essa equipe deve incluir todas as partes interessadas, incluindo proprietários de negócios, desenvolvedores, arquitetos de rede, especialistas em segurança e executivos de nível C. Uma equipe diversificada irá gerar um modelo de ameaça mais holístico.
  2. Estabeleça o escopo. Defina e descreva o que o modelo cobre. Por exemplo, ele está focado em um aplicativo, uma rede ou o aplicativo e a infraestrutura em que é executado? Crie um inventário de todos os componentes e dados incluídos e mapeie-os para a arquitetura e diagramas de fluxo de dados. Cada tipo de dados deve ser classificado.
  3. Determine ameaças prováveis. Para todos os componentes que são alvos de ameaças, determine onde existem ameaças. Este exercício hipotético cria cenários de ameaças amplos, técnicos e inesperados, incluindo árvores de ameaças ou ataques para identificar possíveis vulnerabilidades ou fraquezas que podem levar ao comprometimento ou falha. As ferramentas de modelagem de ameaças podem ajudar a automatizar e agilizar essa etapa.
  4. Classifique cada ameaça. Determine o nível de risco que cada ameaça representa e classifique-os para priorizar a mitigação de riscos. Uma abordagem simples, mas eficaz, é multiplicar o potencial de dano de uma ameaça pela probabilidade de sua ocorrência.
  5. Implementar mitigações. Decida como mitigar cada ameaça ou reduzir o risco a um nível aceitável. As opções são evitar o risco , transferi-lo, reduzi-lo ou aceitá-lo.
  6. Resultados do documento. Documente todas as descobertas e ações, para que futuras alterações no aplicativo, no cenário de ameaças e no ambiente operacional possam ser avaliadas rapidamente e o modelo de ameaças atualizado.
6 etapas no processo de modelagem de ameaças
Descubra as seis etapas básicas envolvidas nas metodologias de modelagem de ameaças.
 

Melhores práticas de modelagem de ameaças

Existem várias etapas a serem seguidas para garantir uma abordagem eficaz para a modelagem de ameaças. Alguns deles incluem:

  • Comece cedo. A modelagem de ameaças pode ser feita a qualquer momento durante um projeto, mas antes é melhor, pois as descobertas podem ajudar a garantir que o design seja seguro. Também é mais rápido e barato adicionar controles de segurança no início do processo de construção.
  • Obtenha muitas informações. Solicitar a opinião de uma variedade de partes interessadas ajuda a identificar a mais ampla gama de potenciais adversários, motivos, ameaças e onde residem os componentes mais vulneráveis.
  • Use uma variedade de ferramentas. Existem muitas ferramentas disponíveis, incluindo algumas abordagens incomuns. Ferramentas de brainstorming ajudam a descobrir ataques menos comuns ou novos e a melhor forma de responder a eles.
  • Compreenda a tolerância ao risco. Os proprietários de negócios, em particular, devem compreender totalmente e comunicar seus níveis de tolerância a riscos para que as abordagens corretas para a mitigação de ameaças possam ser escolhidas para garantir que as metas de negócios sejam atendidas.
  • Eduque a todos. Treine todos os envolvidos nos diferentes aspectos da modelagem de ameaças, para que suas entradas possam ser maximizadas. Como sempre acontece com a segurança, a modelagem de ameaças é um desenvolvimento iterativo

Metodologias e estruturas de modelagem de ameaças

As primeiras metodologias de modelagem usavam diagramas de fluxo de dados para visualizar como os dados se movem em um aplicativo ou sistema. No entanto, eles eram muito limitados para aplicativos modernos que são implantados em ambientes altamente interconectados com vários usuários e dispositivos conectados a eles.

Os diagramas de fluxo do processo agora são comumente usados. Eles mostram um aplicativo ou sistema da perspectiva das interações do usuário e como invasores em potencial podem tentar se mover através do aplicativo. Isso torna mais fácil identificar e priorizar ameaças potenciais.

As árvores de ataque também são usadas para visualizar ataques a um sistema, a árvore de causas sendo o objetivo de um ataque, com as folhas sendo os meios pelos quais um ataque pode atingir esse objetivo. As árvores de ataque podem ser construídas para componentes individuais de um aplicativo ou para avaliar um tipo específico de ataque.

Diagrama de árvore de ataque simples
Uma árvore de ataque mostra as vulnerabilidades potenciais que podem resultar de uma fraqueza específica em um aplicativo ou sistema que está sendo modelado por ameaça.
 

Muitas metodologias e estruturas de modelagem de ameaças foram desenvolvidas. Os centrados em ataques concentram-se nos tipos de ataques possíveis e os centrados em ativos concentram-se nos ativos que precisam ser protegidos. Os mais comuns usam as seguintes abordagens:

  • Danos, reprodutibilidade, explorabilidade, usuários afetados, detectabilidade (DREAD – Damage, Reproducibility, Exploitability, Affected users, Discoverability) é uma análise de risco quantitativa que classifica, compara e prioriza a gravidade de uma ciberameaça.
  • O Guia do NIST National Institute of Standards and Technology para Modelagem de Ameaças de Sistema Centrado em Dados (Data-Centric System Threat Modeling) concentra-se na proteção de tipos de dados específicos dentro dos sistemas. Ele modela aspectos de ataque e defesa para dados selecionados.
  • A Avaliação de Ameaças, Ativos e Vulnerabilidades Operacionalmente Críticas ( OCTAVE – Operationally Critical Threat, Asset, and Vulnerability Evaluation) fornece uma avaliação estratégica baseada em ativos e riscos que pode ser personalizada para objetivos de segurança específicos e gerenciamento de riscos. Foi desenvolvida pela Carnegie Mellon University para o Departamento de Defesa.
  • O Processo de Simulação de Ataque e Análise de Ameaças (PASTA – Process for Attack Simulation and Threat Analysis) é um processo de sete etapas, centrado no ataque, projetado para correlacionar requisitos técnicos com objetivos de negócios, considerando a análise de impacto nos negócios e requisitos de conformidade.
  • STRIDE faz parte do Ciclo de Vida de Desenvolvimento de Segurança da Microsoft. Ele identifica entidades do sistema, eventos e limites e, em seguida, aplica um conjunto de ameaças conhecidas. Usando-o, as equipes de segurança podem identificar ameaças potenciais.
  • Trike é uma metodologia de código aberto centrada no risco que garante que o nível de risco atribuído a cada ativo esteja OK para todas as partes interessadas.
  • Visual, Agile, and Simple Threat (VAST) é baseado no ThreatModeler, uma ferramenta automatizada de modelagem de ameaças projetada para se integrar a um ambiente de desenvolvimento de software Agile e fornecer resultados acionáveis ​​para desenvolvedores e equipes de segurança.

Ferramentas de modelagem de ameaças

A modelagem de ameaças não é direta. Existe um número infinito de ameaças possíveis. Mesmo com um projeto pequeno, faz sentido usar uma ferramenta de modelagem de ameaças para reduzir o tempo e os custos envolvidos.

As ferramentas de modelagem de ameaças reduzem a complexidade do processo, tornando-o estruturado e repetível. Isso reduz o número de recursos necessários para criar um modelo de ameaça do zero e mantê-lo ao longo do tempo. Uma boa ferramenta de modelagem de ameaças permite que os usuários visualizem, projetem, planejem e prevejam todos os tipos de ameaças potenciais. Os principais recursos que as ferramentas devem ter incluem:

  • facilidade de entrada de informações do sistema e regras de segurança;
  • feed de inteligência de ameaças (threat intelligence) para garantir que as últimas ameaças identificadas sejam consideradas;
  • painel de ameaças com estratégias de mitigação sugeridas;
  • painel de mitigação que se integra a um rastreador de problemas como o Jira; e
  • relatórios de conformidade e partes interessadas.

Algumas ferramentas de modelagem de ameaças comumente usadas incluem:

CAIRIS . Uma plataforma de código aberto que usa inteligência sobre ameaças potenciais para medir a superfície de ataque e validar projetos para problemas de segurança conhecidos e possíveis problemas de conformidade com o GDPR.

IriusRisk . Uma ferramenta de modelagem de ameaças centrada em diagramas com questionários adaptativos que orientam o usuário através da arquitetura técnica, recursos planejados e contexto de segurança do aplicativo.

Ferramenta de modelagem de ameaças da Microsoft . Este recurso gratuito é projetado para usuários que não são especialistas em segurança. Ele fornece orientação sobre a criação e análise de modelos de ameaças como parte do Ciclo de Vida de Desenvolvimento de Segurança da Microsoft. Ele usa notação padrão para ilustrar os componentes do sistema, fluxos de dados e áreas de segurança, facilitando a identificação de classes de ameaças com base na estrutura do software que está sendo projetado.

OWASP Threat Dragon . Esta ferramenta de código aberto funciona como um aplicativo da web ou de desktop. Ele registra possíveis ameaças, determina abordagens de mitigação e mostra aos usuários os componentes do modelo de ameaça e as superfícies de ameaça.

SD Elements . Esta ferramenta da Security Compass coleta e classifica as informações do sistema com base nas vulnerabilidades, fornecendo relatórios prontos para auditoria.

Threagile . Esta é uma ferramenta de ambiente de desenvolvimento integrado de código aberto que incorpora modelagem de ameaças na base de código do aplicativo. Ele pode ser executado usando a linha de comando, como um contêiner Docker ou como um servidor REST .

ThreatModeler . Edições de segurança de comunidade, segurança em nuvem e segurança de aplicativos automatizam a modelagem de ameaças. Eles identificam, preveem e definem ameaças, incluindo modelos de arquitetura predefinidos para acelerar a integração.

Benefícios

Feito da maneira certa, a modelagem de ameaças fornece uma “linha de visão” clara em um projeto que justifica os esforços de segurança. O modelo de ameaça permite que as decisões de segurança sejam tomadas de forma racional, com todas as informações na mesa. A alternativa é tomar decisões de segurança automáticas, sem suporte. O processo de modelagem de ameaças naturalmente produz um argumento de garantia que pode ser usado para explicar e defender a segurança de um aplicativo. Um argumento de garantia começa com algumas reivindicações de alto nível e as justifica com sub-reivindicações ou evidências.

Qualquer que seja a ferramenta usada, o processo de modelagem de ameaças deve ser repetido sempre que o aplicativo, a infraestrutura de TI ou o ambiente de ameaças forem alterados. Isso mantém o modelo de ameaça atualizado, à medida que novas ameaças surgem.

Analisar ameaças envolve tempo e esforço. Não é um exercício de lista de verificação, mas é melhor encontrar uma vulnerabilidade e corrigi-la antes que os hackers a descubram, e a metodologia de modelagem de ameaças é a melhor maneira de fazer isso.

Fonte: TechTarget & OWASP

 

Veja também:

 

Sobre mindsecblog 1767 Artigos
Blog patrocinado por MindSec Segurança e Tecnologia da Informação Ltda.

1 Trackback / Pingback

  1. Falha no HYPER-V permite ataque devastador ao Azure

Deixe sua opinião!