
Uma ferramenta de modelagem de ameaças de código aberto da OWASP
O OWASP Threat Dragon é uma aplicação gratuita, de código aberto e multiplataforma para modelagem de ameaças. É utilizada para desenhar diagramas de modelagem de ameaças e listar ameaças para elementos do diagrama. Mike Goodwin criou o Threat Dragon como um projeto comunitário de código aberto que oferece uma forma intuitiva e acessível de modelar ameaças.
O Threat Dragon foi projetado para ser acessível a diversos tipos de equipas, com ênfase na flexibilidade e simplicidade. O Projeto tem estatuto de Produção OWASP e segue os valores e princípios do manifesto de modelagem de ameaças.
Este programa é software livre: pode redistribuí-lo e/ou modificá-lo de acordo com os termos da Licença Apache 2.0.
Aceda à versão mais recente do Threat Dragon no site de demonstração e consulte as páginas de documentação.
Vale também a pena ver o vídeo fornecido pela série OWASP Spotlight.
A área de lançamentos do GitHub contém o Threat Dragon desde a versão 1.3 até às versões mais recentes 2.x. Os lançamentos anteriores estão no repositório original de Mike Goodwin.
Existe uma boa visão geral de modelagem de ameaças e avaliação de riscos da OWASP, e esta expande os objetivos do projeto Threat Dragon:
Mike Goodwin é o fundador e criador deste projeto, e este repositório foi migrado do original de Mike Goodwin, que contém as issues e pull requests de outubro de 2015 a junho de 2020.
O Threat Dragon é principalmente uma aplicação web. A aplicação web pode armazenar ficheiros de modelo de ameaças no sistema de ficheiros local; adicionalmente, o acesso pode ser configurado para:
As versões para desktop do Threat Dragon armazenam os ficheiros de modelo de ameaças no sistema de ficheiros local e não acedem a repositórios externos. Pode descarregar instaladores para Windows, MacOS e Linux.
A ajuda para utilizadores finais está disponível tanto para a versão 2.x mais recente como para a versão 1.x anterior.
O Threat Dragon foi originalmente escrito com AngularJS versão 1.x, mas esta versão do Angular atingiu o fim de vida. Isto significa que as versões 1.x do Threat Dragon já não são mantidas ativamente e as versões 2.x foram reescritas para usar Vue.js.
Para mais informações sobre como construir/executar a versão 1.x, consulte o ramo legacy-v1.x.
Instale o git e o node.js que inclui o gestor de pacotes npm
Clone o repositório usando: git clone https://github.com/owasp/threat-dragon.git
Isto descarrega o código para um diretório threat-dragon e o código da aplicação está em duas sub-pastas,
uma para a aplicação de back-end (td.server) e outra para o front-end (td.vue).
Instale a partir do diretório raiz do projeto usando: npm install
A variante de aplicação web do Threat Dragon requer algumas variáveis de ambiente; siga a documentação sobre como definir estas variáveis.
Se for necessário acesso a repositórios externos, como Bitbucket / GitHub / GitLab, precisa de aceder à sua conta de repositório e registar a aplicação. Existem guias passo a passo sobre como fazer isto para Bitbucket, GitHub e GitLab.
Ao executar no Windows, e durante o desenvolvimento, o front-end e o back-end do servidor
podem ser iniciados separadamente em modo "watch" usando os comandos: npm run dev:server e npm run dev:vue.
Alternativamente, se estiver a executar no Linux ou MacOS, inicie tanto o servidor back-end como a aplicação front-end
a partir do diretório raiz usando: npm start.
Com o front-end e o back-end em execução, aceda com um navegador em http://localhost:8080/
Se usar npm start, pare tanto o servidor back-end como a aplicação front-end
a partir do diretório raiz com o comando npm stop. Caso contrário, saia tanto do servidor como do front-end vue.
O Threat Dragon mantém imagens docker na área da organização OWASP no Dockerhub.
Cada lançamento é etiquetado como v{major}.{minor}.{patch}, ex v2.2.0:
docker pull owasp/threat-dragon:v2.2.0A etiqueta latest (que é a predefinição) pode ser uma versão de desenvolvimento,
por isso use a etiqueta stable, que será sempre o lançamento oficial mais recente:
docker pull threatdragon/owasp-threat-dragon:stabledocker run -it --rm -p 8080:3000 -v $(pwd)/.env:/app/.env threatdragon/owasp-threat-dragon:v2.2.0docker run -it --rm -p 8080:3000 -v %CD%/.env:/app/.env threatdragon/owasp-threat-dragon:v2.2.0Assumindo que está a usar a porta http 8080 e a aceder ao Threat Dragon em http://localhost:8080/.
Para executar o Threat Dragon num contentor docker construído localmente, primeiro configure o seu ambiente usando dotenv e execute a partir do diretório raiz do projeto:
docker build -t owasp-threat-dragon:dev .docker run -it --rm -p 8080:3000 -v $(pwd)/.env:/app/.env owasp-threat-dragon:devdocker run -it --rm -p 8080:3000 -v %CD%/.env:/app/.env owasp-threat-dragon:devUsando a porta http 8080 e acedendo ao Threat Dragon em http://localhost:8080/.
Pull requests, pedidos de funcionalidades, relatórios de bugs e feedback de qualquer tipo são muito bem-vindos, consulte a página para contribuidores.
Existem algumas notas para programadores para ajudar a começar com este projeto. Estamos a tentar manter a cobertura de testes relativamente alta, por isso inclua testes nos seus pull requests.
A forma mais fácil de entrar em contacto com a comunidade Threat Dragon é enviando um e-mail para o grupo OWASP no Google. O canal Slack OWASP #project-threat-dragon é uma boa fonte de informação, embora possa precisar de se inscrever primeiro.
Pode seguir o Threat Dragon no Bluesky.
Se encontrar uma vulnerabilidade neste projeto, por favor avise-nos o mais rápido possível e iremos corrigi-la como prioridade. Para divulgação segura, consulte a política de segurança.
Threat Dragon: tornando a modelagem de ameaças menos ameaçadora