A Modelagem de Ameaças é um processo que consiste em analisar uma aplicação, sistema ou processo desde o ponto de vista da segurança, ou seja, considerando quais são os ativos que precisam ser protegidos, quais são as ameaças que podem comprometer esses ativos, quais são as vulnerabilidades que podem ser exploradas pelas ameaças e quais são as consequências se isso acontecer. Isso também envolve comunicar e documentar essas informações de forma clara e estruturada, para que todos os envolvidos possam entender os riscos e as medidas de segurança necessárias.
Em outras palavras, quando fazemos a Modelagem de Ameaças, nós olhamos para uma aplicação e pensamos no que precisamos proteger, no que pode dar errado, no que pode facilitar o ataque e no que pode acontecer se o ataque ocorrer - tudo com o propósito de construir controles efetivos de segurança.
“O custo de remover vulnerabilidades de aplicações durante a fase de design é 30 a 60 vezes menor do que remover durante a produção.”
NIST, IBM, and Gartner Group
Assim, tal processo é importante porque ajuda a definir requisitos e controles de segurança adequados, ou seja, quais são as ações que devem ser tomadas para prevenir, detectar ou responder às ameaças, de acordo com o nível de risco e o valor dos ativos. Além disso, ela ajuda a melhorar o design e o desenvolvimento de software seguro, pois permite que os desenvolvedores considerem a segurança desde o início do projeto, evitando erros e falhas que possam comprometer a qualidade e a confiabilidade do software.
Em resumo, os objetivos da Modelagem de Ameaças são:
A Modelagem de Ameaças é uma técnica essencial para a construção de aplicações mais seguras desde o início. Contudo, os benefícios da Modelagem de Ameaças não param por aí.
Um aspecto igualmente importante é o impacto positivo que a Modelagem de Ameaças traz para a conscientização de segurança em toda a organização. Ao envolver diversos profissionais e equipes, como desenvolvedores, analistas de segurança, pessoas de produto, designers e gerentes, a Modelagem de Ameaças promove a colaboração e o compartilhamento de conhecimento sobre AppSec com todos os envolvidos.
Com essa prática, os profissionais adquirem uma visão mais aprofundada das ameaças e aprendem boas práticas de segurança. Essa troca de informações resulta em uma cultura de segurança mais forte e integrada em toda a organização.
Portanto, uma cultura de AppSec bem estruturada é essencial para o sucesso dessa abordagem, garantindo que a segurança seja uma responsabilidade compartilhada por toda a equipe.
As etapas da Modelagem de Ameaças podem variar de acordo com a metodologia e a ferramenta utilizada, mas em geral elas seguem um fluxo semelhante, que pode ser sintetizado nas seguintes etapas:
1º - Identificar os ativos, os atores, os pontos de entrada, os componentes, os casos de uso e os níveis de confiança do sistema, e representá-los em um diagrama de fluxo de dados. Realizando assim uma decomposição do sistema.
2º - Analisar as possíveis ameaças, buscando cenários de ataques que podem afetar o sistema, usando uma estrutura como o STRIDE, o DREAD, o VAST ou a árvore de ataque.
3º - Priorizar as ameaças de acordo com sua gravidade e impacto, usando um sistema de pontuação como o CVSS (Common Vulnerability Scoring System).
4º - Mitigar as ameaças, definindo e implementando controles de segurança para prevenir, detectar ou responder aos ataques utilizando o OWASP ASVS, por exemplo.
5º - Verificar a eficácia dos controles de segurança implementados e atualizar o modelo de ameaças conforme o sistema evolui
Vamos lá, existem diversas metodologias para realizar a Modelagem de Ameaças, cada uma com suas vantagens e desvantagens, dependendo do contexto e do objetivo da modelagem:
De modo geral, todas as metodologias possuem o mesmo objetivo: identificar o nível de risco, as fragilidades e o que fazer para mitigar os riscos.
Escolha da metodologia adequada: A seleção de um processo de Modelagem de Ameaças, como STRIDE ou DREAD requer consideração cuidadosa, pois cada um pode ter pontos fortes e fracos diferentes, não sendo universalmente aplicável.
Complexidade dos e aplicações e sistemas: aplicações complexas, sistemas distribuídos e baseados em nuvem apresentam múltiplos pontos de entrada, limites de confiança, dependências e superfícies de ataque, tornando a Modelagem de Ameaças mais exigente em esforço e experiência.
Manutenção contínua: o modelo de ameaças deve ser mantido atualizado, acompanhando mudanças na aplicação, ambiente e cenário de ameaças ao longo do ciclo de vida do desenvolvimento.
Comunicação e colaboração: essa técnica requer uma comunicação eficiente e colaborativa entre várias partes interessadas, como desenvolvedores, analistas de segurança, pessoas de produto, designers e gerentes com o objetivo de garantir uma compreensão comum das metas de segurança, riscos e medidas de mitigação.
Medição e validação: é essencial medir e validar a eficácia do modelo de ameaças e das contramedidas implementadas, garantindo que a segurança seja constantemente aprimorada e que as medidas sejam efetivas.
A Conviso Platform oferece uma abordagem inovadora para a Modelagem de Ameaças, garantindo um processo seguro por design e totalmente automatizado. Por meio dessa abordagem, a plataforma define requisitos de segurança e recomenda práticas seguras de codificação com base nas ameaças identificadas nos itens de arquitetura.
Essa solução, desenvolvida na Conviso Platform, proporciona uma visão integrada e abrangente das ameaças, simplificando a validação e o rastreamento dos requisitos de segurança durante todo o ciclo de desenvolvimento.