Uma POC com ChatGPT para Auxiliar na Modelagem de Ameaças
Conforme definido pelo OWASP Modelagem de Ameaças é:
Um modelo de ameaça é uma representação estruturada de todas as informações que afetam a segurança de uma aplicação. Em essência, é uma visão da aplicação e do seu ambiente através da lente da segurança.
Uma modelagem de ameaça permite que você adote a visão de um invasor para ver onde os pontos fracos de uma aplicação podem estar presentes.
Um modelo de ameaça é uma excelente maneira de decompor uma aplicação e identificar pontos de entrada, dependências externas, limites de confiança etc.
Um diagrama como o abaixo é uma ótima maneira de visualizar a aplicação e seus pontos fracos.
Para entender um pouco mais sobre modelagem de ameaças eu também tenho este conteúdo publicado, que explica mais no detalhe as etapas: Modelagem de Ameaças, o primeiro passo para o Desenvolvimento Seguro de Aplicações
Usando o ChatGPT para Modelagem de Ameaças
O ChatGPT tornou-se bastante popular desde que foi lançado no final de 2022, com pessoas usando-o para todos os tipos de casos de uso.
As pessoas têm usado para codificar, revisar código, escrever políticas, blogs e muito mais.
Mas vamos falar sobre modelagem de ameaças.
ChatGPT também pode ser usado para modelagem de ameaças, o que é bastante interessante!
Aqui está o que eu testei:
Primeiro pergunto se o ChatGPT pode me ajudar a fazer uma modelagem de ameaças.
Respondendo a minha pergunta, ele traz as etapas básicas que devemos seguir para realizar a modelagem de ameaças.
Vamos ver como ele se sai. Descrevi uma arquitetura simples de uma aplicação, onde tenho uma API com um banco de dados NoSQL, um API Gateway e um aplicativo móvel.
Para esta arquitetura de exemplo o ChatGPT listou 7 possíveis ameaças:
- Ataques de Injeção de Código;
- Exposição de Dados Sensíveis;
- Ataques de Autenticação e Gerenciamento de Sessão;
- Ataques de Negação de Serviço (DoS);
- Vazamento de Informações;
- Vulnerabilidades de Segurança na API;
- Ameaças de Engenharia Social.
Ele reforça que: Essas são apenas algumas ameaças comuns que você pode considerar. É importante realizar uma análise de ameaças mais detalhada e adaptada à sua arquitetura específica, levando em consideração os detalhes técnicos e as configurações de segurança implementadas em cada componente.
Com base nestas ameaças listadas eu pedi para buscar quais seriam as fraquezas ou CWEs:
Para as 7 possíveis ameaças listadas anteriormente, o ChatGPT listou pelo menos 3 CWEs para cada uma.
E também reforça que: Essas são apenas algumas das fraquezas e CWEs associadas às ameaças mencionadas. Existem muitas outras fraquezas e CWEs relacionadas à segurança da informação. Recomenda-se realizar uma análise mais aprofundada e adaptada à sua arquitetura específica para identificar as fraquezas relevantes que podem ser exploradas pelas ameaças identificadas.
Além das ameaças e das fraquezas, solicitei ao ChatGPT, quais são as recomendações baseado no OWASP ASVS e MASVS para mitigar as ameaças encontradas:
Para cada CWE foi listado os requisitos que devem sem implementados para mitigar as ameaças.
No final desta lista é reforçado que: Essas são apenas algumas recomendações básicas com base nas CWEs mencionadas. No entanto, é importante lembrar que cada caso é único, e é essencial realizar uma análise mais aprofundada da sua arquitetura e requisitos específicos para identificar os controles e requisitos relevantes do ASVS e MASVS. Recomenda-se consultar a documentação completa desses padrões e adaptar as recomendações às suas necessidades específicas.
Com isso passamos pelas principais etapas de uma modelagem de ameaça, chegando aos requisitos que devemos implementar em nossa arquitetura.
Mas, indo além, para ficar mais objetivo, solicitei que fosse listada as ameças por componente da arquitetura:
Também adicionei mais alguns requisitos em nossa arquitetura, perguntando como deveria proteger se minha API processasse dados de cartão de crédito e quais seriam os requisitos recomendados com base no PCI DSS:
Como você pode ver, o ChatGPT até que se saiu bem em realizar modelagem de ameaças básicas. Ele não pode desenhar os diagramas (ainda) mas é ótimo para um modelo de ameaça rápida e simples, para quando você precisar.
Você também pode conscientizar seus desenvolvedores sobre isso para que eles possam obter um modelo básico de ameaça ao projetar aplicações.
Isso economizará muito tempo e mudará a segurança das suas aplicações, já que podemos definir nossos requisitos ainda em tempo de definição de arquitetura, antes mesmo de iniciar o desenvolvimento.
Benefícios e Considerações
A utilização do ChatGPT na modelagem de ameaças apresenta benefícios notáveis, como a geração rápida de cenários de ataque e a exposição a perspectivas diferentes. No entanto, também é importante considerar algumas limitações:
- Viés do Modelo: O ChatGPT pode gerar respostas influenciadas por seus dados de treinamento, o que pode introduzir viés nos cenários de ataque gerados.
- Complexidade dos Cenários: Os cenários gerados pelo ChatGPT podem ser complexos, exigindo análise cuidadosa para identificar ameaças realistas.
- Necessidade de Especialistas: A interpretação dos cenários de ataque e a identificação de ameaças realistas ainda requerem o conhecimento de especialistas em segurança.
Conclusão
A modelagem de ameaças utilizando o ChatGPT pode ser uma ferramenta valiosa para complementar o processo de identificação de vulnerabilidades e riscos de segurança. A combinação da inteligência humana com a capacidade de geração de texto do ChatGPT pode resultar em uma análise mais abrangente e criativa. No entanto, é importante reconhecer as limitações do modelo e buscar a colaboração de especialistas em segurança para obter resultados mais confiáveis e eficazes.
Está foi uma prova de conceito, onde podemos ver que o ChatGPT pode auxiliar na modelagem de ameaças, mas reforço que não substitui um processo completo e estruturado.