A modelagem de ameaças é um método para identificar antecipadamente possíveis vulnerabilidades na arquitetura de um aplicativo. Envolve o diagrama de um aplicativo, a identificação de falhas de segurança e a mitigação dessas falhas.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
Teste de penetração
O que é OWASP Top 10?
Busca a ameaças
Inteligência contra ameaças
Segurança de aplicativos web
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
A modelagem de ameaças é um exercício para encontrar falhas de segurança em um aplicativo e em seu ambiente. Ela envolve a criação de uma representação de um aplicativo com todos os seus componentes e, em seguida, a identificação dos pontos fracos. O ideal é que os desenvolvedores e engenheiros de segurança usem a modelagem de ameaças em todo o processo de desenvolvimento de software, antes de um aplicativo entrar em operação, e não apenas depois. A modelagem de ameaças pode ajudar a tornar um aplicativo muito mais seguro do que seria de outra forma, mas não se deve esperar que torne um aplicativo invulnerável.
Nos filmes de assalto, os personagens principais geralmente examinam as plantas das instalações que planejam roubar, descobrindo os pontos fracos, onde o prédio pode ser acessado, os ângulos que as câmeras de segurança não conseguem ver e assim por diante. Da mesma forma, a modelagem de ameaças é como examinar as "plantas" de um determinado aplicativo. A diferença é que a modelagem de ameaças é feita por pessoas que gostariam de manter o aplicativo seguro, não pelos possíveis ladrões.
A modelagem de ameaças exige que as equipes criem uma visão completa do aplicativo. Isso envolve pensar da mesma forma que alguém que pode querer comprometer o aplicativo. O que um invasor faria? Será que ele se aproveitariam da segurança de API fraca? Ele usaria um ataque à cadeia de suprimentos para infectar uma biblioteca do sistema integrado? Embora nem todos os ataques possam ser previstos, a modelagem de ameaças ajuda a impedir alguns deles antes que aconteçam.
Há muitas abordagens possíveis para a modelagem de ameaças, e um único método não pode ser aplicado a todas as situações. Mas, em geral, essas quatro etapas principais estão envolvidas:
Os modeladores de ameaças tentam identificar e representar:
Se o Terry escrever um aplicativo simples que exibe imagens de balões, seu diagrama do aplicativo pode ser o seguinte:
Observe que este é um exemplo bastante simplificado e um diagrama de aplicativo de modelagem de ameaças real pode ser muito mais complexo.
Ver um aplicativo apresentado dessa forma pode facilitar a identificação de falhas. O Terry, por exemplo, pode perceber que as comunicações entre seu banco de dados de fotos de balões e seu servidor web não usam o Transport Layer Security (TLS). Isso significa que nenhum dos servidores verifica a identidade do outro por meio de assinaturas digitais, possibilitando que um invasor se passe pelo servidor de banco de dados e envie conteúdo malicioso para o servidor web.
Como a modelagem de ameaças ocorre durante todo o processo de desenvolvimento, mitigar falhas pode significar tanto alterar o plano da arquitetura de um aplicativo quanto implantar uma correção em uma compilação de aplicativo em andamento.
Para mitigar a ameaça que ele identificou, o Terry pode reconfigurar o servidor de banco de dados e o servidor web para usar o TLS na conexão ou, melhor ainda, para usar o mutual TLS (mTLS) e verificar um ao outro.
Nesse ponto, o Terry pode executar o aplicativo em um ambiente de teste e verificar se 1) os servidores usam TLS conforme configurado e 2) se o servidor web vai aceitar o tráfego HTTP de um servidor não verificado em vez do servidor de banco de dados. Ele realizaria verificações semelhantes para quaisquer outras mitigações que tenha aplicado.
Uma metodologia de modelagem de ameaças é uma abordagem para identificar ameaças. As metodologias fornecem estrutura para o processo de modelagem de ameaças, o qual, de outra forma, poderia ser enorme em um sistema complexo. As organizações podem escolher entre uma ampla gama de metodologias de modelagem de ameaças ou até mesmo desenvolver suas próprias metodologias. Algumas das metodologias mais comuns incluem:
Há também várias outras metodologias de modelagem de ameaças. Algumas delas, como "Trike" e as várias metodologias híbridas, nem sequer têm acrônimos.
A modelagem de ameaças deve ocorrer antes e durante o desenvolvimento do software, ao longo de todo o ciclo de vida de um aplicativo. Se um aplicativo for lançado sem qualquer modelagem ou mitigação de ameaças, as falhas de segurança poderão ser descobertas pelos usuários, ou invasores, antes de serem descobertas pelas equipes de segurança. Isso pode resultar em uma violação de dados e introduz um risco maior de ameaças de zero-day.
No entanto, como a modelagem de ameaças não descobre todos os riscos em um sistema, os desenvolvedores e as organizações devem continuar com esse processo mesmo após o lançamento. Além da modelagem de ameaças, eles podem fazer isso através de:
A Cloudflare também oferece um serviço de inteligência contra ameaças e operações, o Cloudforce One, para proteger os clientes contra as ameaças mais recentes. O Cloudforce One é liderado por uma equipe de pesquisa de ameaças de primeira categoria, altamente experiente em interromper invasores em escala global. Saiba mais sobre o Cloudforce One aqui.