Threat Modeling - Modelagem de ameaças (Parte 1)
O Threat Modeling é uma técnica fundamental para análise de segurança de arquiteturas, permitindo identificar e quantificar riscos com precisão. Esta metodologia versátil pode ser aplicada em diversos contextos: aplicações web, APIs, aplicativo mobile, infraestrutura e até mesmo em processos organizacionais.
O diferencial da modelagem de ameaças está na sua abordagem: ela avalia sistemas a partir da perspectiva de um potencial atacante. A pergunta central que orienta todo o processo é: "O que poderia ser explorado por um adversário?" Esta é uma questão que revela vulnerabilidades que outros métodos de análise frequentemente ignoram.
É importante destacar que uma ameaça não se caracteriza como uma vulnerabilidade. A ameaça existe independentemente - mesmo quando não há vulnerabilidade explorável no momento da análise. Esta distinção é crucial para uma proteção proativa e abrangente.
O processo de Threat Modeling estrutura-se em quatro fases distintas e complementares, como ilustrado na imagem a seguir.
1.Design
A fase de design concentra-se na criação do Diagrama de Fluxo de Dados (DFD), que mapeia todos os componentes da arquitetura: sistemas, servidores, frameworks, recursos de rede e demais ativos relevantes. Durante a elaboração deste diagrama, identificam-se os potenciais pontos de entrada – interfaces onde atacantes podem interagir com a aplicação.
Questões cruciais são analisadas nesta etapa: Qual o nível de acesso que o aplicativo concederá aos diferentes tipos de usuários? Como funcionam as integrações com serviços de terceiros? Quais mecanismos de autenticação serão implementados?
Conforme define o OWASP Threat Modeling, esta fase pode ser entendida como: "Isso às vezes é chamado de 'decompor a aplicação', uma abordagem que os consultores usam quando são contratados para elaborar um modelo de ameaças ou uma revisão arquitetônica. Os consultores geralmente fornecem o resultado na forma de um documento de Modelo de Ameaças."
Coletar informações detalhadas sobre a arquitetura permite identificar pontos vulneráveis onde falhas de segurança podem ocorrer. A Microsoft, em sua documentação sobre Threat Modeling, apresenta diversas questões para orientar esta fase inicial. Para maior eficiência, compilei abaixo uma versão otimizada destas questões, focando nos tópicos mais objetivos e eliminando redundâncias.
Descrição do sistema
- Qual a função principal do sistema?
- Descreva como os usuários deverão usar o sistema
- Quais são os processos de negócio gerenciados pelo sistema?
- O sistema é uma aplicação web, um serviço de API, ou aplicativo mobile?
- A infraestrutura do sistema é local ou na nuvem?
- Informe qual o provedor (cloud) usado para hospedagem da infraestrutura
- Qual o sistema operacional usado pelo sistema?
- O sistema é executado em contêiners?
- O sistema realiza execução de scripts?
- O sistema possui acesso a dados?
- Quais os tipos de dados serão processados, armazenados e/ou transmitidos?
- O sistema precisa de acesso ao hardware?
- Como o sistema faz a validação dos dados de entrada e saída?
- Dados sensíveis são criptografados?
- Como o sistema valida as fontes de dados na integração?
- Descreva o tipo de integração com serviço de terceiros
- Descreva o nível de acesso será necessário na integração
- Descreva o tipo de autenticação com o serviço
- Descreva o tipo de dado que será consumido ou transmitido para o serviço do parceiro
- Quais são os tipos de perfil de acesso o sistema utiliza, por exemplo, usuário comum, administrativo, "super-user".
- A contas de acesso são locais ou centralizadas?
- Qual o framework de autenticação é usado?
- O sistema usa listas de controle de acesso (ACL)?
- O sistema possui autenticação multifator (MFA)?
- Como é feito o controle de sessão?
- O sistema processará solicitações como API SOAP ou REST?
- O sistema transmite chaves-secretas?
- O sistema armazena chaves-secretas?
- O sistema armazena credenciais ou certificados de clientes?
- O sistema possui mecanimos para monitorar anomalias nas transações realizadas?
- O sistema possui mecanimos para monitorar o acesso e gerar logs de eventos de segurança?
- Quais os tipos de eventos serão capturados pelo sistema?
- Os sistema usa criptografia em todas as conexões para o backend e API?
- A rede de comunicação do sistema possui firewall, IDS/IPS?
- A rede de comunicação do sistema possui segregação?
Para determinar o nível adequado de informação a ser incluída na sua modelagem de ameaças, considere as quatro camadas de contexto:
Comentários
Postar um comentário