Qual a finalidade e os benefícios da Modelagem de Ameaças?
Complementando o post sobre a Modelagem de Ameaças, neste post abordaremos os benefícios que podem não ser diretamente visualizados quando aplicamos a Modelagem de Ameaças. Caso você tenha começado a leitura por este texto, talvez deva começar por este outro artigo que explica conceitos básicos sobre o assunto.
Em nosso artigo anterior explicamos um pouco mais sobre os benefícios tradicionalmente atribuídos à Modelagem de forma direta, que estão diretamente relacionados com a possibilidade de identificarmos as vulnerabilidades de um aplicativo mesmo antes de iniciarmos o seu desenvolvimento. Podemos, ainda, usar o mesmo documento de modelagem para validar o desenvolvimento na etapa de testes.
No entanto, mesmo que os benefícios mais evidentes sejam relativamente fáceis de identificar, existem outros elementos que também são resultados da realização da Modelagem de Ameaças e nem sempre são notados.
Visibilidade
Quando trabalhamos em um projeto para desenvolver um programa de desenvolvimento seguro do “zero” é fácil colocar todas as peças juntas e termos uma visão geral de todos os pontos que precisamos abordar.
Mas quando trabalhamos em um ambiente já operacional, com uma estrutura de desenvolvimento estabelecida e desenvolvida, o que acontece na grande maioria das vezes, temos que lidar com uma série de coisas que já estão em operação e que precisam ser avaliadas.
Em ambientes assim é comum que tenhamos que lidar com sistemas antigos, legados, é que em sua grande maioria dão suporte à sistemas críticos da empresa. Estes mesmos sistemas que tem tamanho importância para o negócio na sua grande maioria não possui qualquer documentação, e é aí que a modelagem pode vir a ajudar, pois ao realizar a modelagem acabamos dando visibilidades a todos os sistemas e suas fragilidades, ajudando inclusive no mapa de risco da empresa.
Essa oportunidade de mapeamento é alcançada porque a Modelagem de Ameaças nos leva a um entendimento profundo do funcionamento dos sistemas e como estes sistemas interagem com outros componentes da estrutura da empresa. Ao seguir o processo de modelagem será inevitável:
- A identificação dos ativos;
- Documentação ou atualização da arquitetura dos sistemas e
- A construção de um melhor entendimento de como os sistemas e subsistemas se interligam.
Está última acredito seja a mais vantajosas das oportunidades que temos ao realizar a modelagem.
Aumento na conscientização de segurança.
Para que uma Modelagem de Ameaças seja realizada da melhor forma possível, para que ela traga as melhores respostas aos questionamento de segurança feitas para a produção do software, se faz necessário que a equipe que realiza essa atividade seja capacitada e tenha um entendimento necessário e correto sobre o que é e como fazer a modelagem de ameaças.
Nesse ponto podemos dizer que sozinho você não vai conseguir entregar uma melhor solução caso não tenha o apoio e a participação de seus pares. Além de ser importante que a sua equipe saiba e tenha conhecimento sobre modelagem, também é importante que esta equipe tenha em seu conjunto um grupo formado com as mais diversas experiências possíveis, pois são olhares diferentes sobre um mesmo tema que vai facilitar a descoberta de ameaças e possíveis riscos associados ao software.
E este fator vai proporcionar a empresa entregar conhecimento a um grande número de profissionais, o que podem facilitar ainda mais a difusão do conhecimento relacionado ao tema de segurança em desenvolvimento.
Melhor entendimento
Um melhor conhecimento sobre Modelagem de Ameaças em sua equipe não é o único benefício entregue quando juntamos vários profissionais neste tipo de projeto.
Pela própria natureza da modelagem, vai ser preciso um entendimento maior sobre todos os ativos presentes em sua estrutura, o que por si só já ajuda e muito na organização e operação da infraestrutura. No entanto, o resultado desse entendimento vai muito além, ele permite que ao identificar ativos, suas relações e funcionalidades possamos criar um mapa de relacionamento e criticidade de ativos, o que nos abre inúmeras possibilidade de melhoria em nossa estrutura.
Como o documento de modelagem deve ser um documento vivo, ou seja, não deve ser esquecido quando finalizado o mapeamento, este serve como uma base sólida que irá ajudar em uma série de outros possíveis testes como por exemplo testes de validação de software, já na fase de testes do desenvolvimento.

Vamos imaginar a seguinte situação. Se durante o processo de modelagem identificamos que existe a possibilidade de uma vulnerabilidade de SQL injection em uma parte do sistema, e o passo seguinte é que quando da codificação a equipe de desenvolvimento sabendo dessa possibilidade implementem solução para evitar esse tipo de vulnerabilidade.
Na fase de testes da aplicação, as ameaças identificadas durante a modelagem podem servir como um caminho, um checklist de validação para garantir que as ameaças identificadas não estão presentes no produto final da codificação.
Então, de forma geral podemos dizer que os benefícios de uma boa modelagem de ameaças se estende por todas as fases de desenvolvimento de uma aplicação.
Conclusão
A execução de um processo de modelagem de ameaças pode ser uma das ferramentas mais importantes dentro de um processo de desenvolvimento seguro. No entanto, temos que entender que a modelagem só terá grandes resultados com uma série de ações e etapas a serem observadas.
Este texto já apresentar alguns pontos importantes mas, queremos deixar aqui algumas últimas dicas sobre o assunto.
Lembre-se, é um time.
Como falamos acima a realização desse projeto é uma conquista de um time, e deve ser entendido que todos tem sua participação nos resultados, sendo eles positivos ou negativos.
Sabendo disso, é preciso entender que a aquisição de conhecimento por parte dos componentes do time é de vital importância para o sucesso do projeto. Sendo assim, um dos primeiros passos é criar um, ou vários, grupo de trabalho que possam suportar os mais diversos cenários que poderemos encontrar durante a modelagem.
Documente e discuta todos os achados do projeto, isso vai ajudar na evolução do documento de modelagem, lembre que deve ser um documento vivo. Ainda, não tenha pressa pois a realização de um projeto de modelagem pode ser demorado para os padrões atuais de desenvolvimento, mas que com certeza quando bem feito vai valer à pena.
Em alguns momentos podem acontecer de estagnação no processo, lembre-se alguns de seus colegas de equipe podem não ter um treinamento e ou conhecimento formal sobre modelagem de ameaças, veja como pode ajudar com relação a isto, e o trabalho ficará muito mais efetivo.
Mantenha o foco e siga os dados
Uma coisa que é bem comum é a fuga da modelagem para temas, sistemas e assuntos não relacionados com o escopo do projeto, tenha cuidado com relação a isso, e sempre se mantenha atento ao escopo que foi definido. Temos que lembrar que o processo já é complexo demais não precisamos de novos pontos de atuação.
Neste momento uma das melhores dicas que podemos deixar é que sempre busque seguir o fluxo dos dados. Este simples pensamento além de ajudar a manter o foco no escopo ajuda a responder uma das perguntas mais básicas e importantes do processo – “ Por onde começamos ?”
Este pensamento ajuda pois nos mostra um possível caminho que um atacante pode seguir, pois sempre um atacante vai tentar interagir com o sistema e para isso precisamos identificar quais componentes permitem a interação com dados.
E por último e não menos importante, entenda que ninguém conhece melhor o seu ambiente que você mesmo por isso é importante que durante a criação dos times seja encorajado a participação de um número de pessoas que possa trazer para o projeto conhecimentos diversos.
Fontes:
IBM: Security Intelligence
OWASP