>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
JavaScript

Esqueça de Desenhar a Arquitetura no Paint: Introdução ao OWASP Threat Dragon

Threat Dragon Logo

Volte no tempo e pense na última vez que a equipe de segurança pediu para você "criar um modelo de ameaças". Na maioria das vezes, você abriu o Miro ou Draw.io, montou algumas caixas com setas e tentou lembrar do acrônimo STRIDE. O resultado foi um diagrama bonito que ficou desatualizado uma semana após o lançamento e acabou acumulando poeira no Wiki corporativo.

Os desenvolvedores da OWASP reconheceram esse problema há muito tempo e criaram o Threat Dragon. É uma ferramenta de código aberto que ajuda você a desenhar diagramas de fluxo de dados e associar riscos diretamente aos elementos da arquitetura.

O que o Threat Dragon Pode Fazer

O projeto foi fundado por Mike Goodwin em 2015 e agora tem status oficial de Produção da OWASP. Isso significa que a ferramenta é ativamente mantida, não abandonada após o primeiro commit.

O objetivo da ferramenta é tornar a modelagem de ameaças acessível para equipes de desenvolvimento comuns, não apenas para especialistas dedicados em Arquitetura Segura.

Aqui estão os principais recursos que valem a pena conhecer no projeto:

  • Criação de Diagramas de Fluxo de Dados (DFD). Você organiza processos, armazenamentos de dados, atores externos e limites de confiança em uma tela.
  • Geração e descrição de ameaças. Com base nos elementos do diagrama, você pode compilar rapidamente uma lista de riscos potenciais e associar etapas específicas de remediação a eles.
  • Integração com repositórios Git. A versão web pode autorizar via GitHub, GitLab ou Bitbucket e salvar modelos de ameaças diretamente no código do seu projeto como arquivos JSON.
  • Capacidade offline. Se as políticas corporativas proibirem o envio de diagramas de arquitetura para serviços externos, existem builds desktop autônomas disponíveis.

Por Baixo dos Panos

A primeira versão original era difícil de usar porque o frontend foi escrito em AngularJS 1.x. Devido à obsolescência do framework, os autores tomaram a decisão lógica de reescrever completamente o projeto.

A versão dois do Threat Dragon é construída em uma stack moderna: Vue.js para a interface do usuário e Node.js para o backend. O repositório é claramente dividido em dois diretórios: td.server e td.vue. Se você quiser adicionar sua própria regra personalizada ou ajustar a interface para suas necessidades, entender a estrutura não será difícil.

Início Rápido

A maneira mais fácil de experimentar a ferramenta localmente é executar um container Docker pronto para uso. Literalmente leva um comando:

docker pull threatdragon/owasp-threat-dragon:stable
docker run -it --rm -p 8080:3000 threatdragon/owasp-threat-dragon:stable

Depois disso, a interface web estará disponível em http://localhost:8080/.

Se você preferir uma compilação tradicional a partir do código-fonte, os processos também são diretos:

git clone https://github.com/owasp/threat-dragon.git
cd threat-dragon
npm install
npm start

Para funcionalidade completa da versão web com GitHub ou GitLab, você precisará registrar um aplicativo OAuth nas configurações do seu sistema de controle de versão e passar as chaves via variáveis para o arquivo .env. O repositório tem instruções detalhadas para cada serviço popular.

Para Quem Este Projeto Será Útil

O Threat Dragon não substituirá uma auditoria completa de segurança, e sua interface parece bastante austera. Mas se sua equipe precisa implementar práticas DevSecOps no início da fase de design, é uma excelente alternativa a sistemas pagos volumosos.

A ferramenta é ideal para documentar decisões arquiteturais diretamente no repositório do projeto. Todos os diagramas são armazenados junto com o código, facilitando a atualização durante refatorações e a atualização durante revisões arquiteturais planejadas.

Projetos relacionados