Olvida dibujar la arquitectura en Paint: Introducción a OWASP Threat Dragon
Piensa en la última vez que el equipo de seguridad te pidió "crear un modelo de amenazas". Lo más probable es que abrieras Miro o Draw.io, juntaras algunos cuadros con flechas e intentaras recordar el acrónimo STRIDE. El resultado fue un diagrama con buena apariencia que quedó obsoleto una semana después del lanzamiento y terminó acumulando polvo en la Wiki corporativa.
Los desarrolladores de OWASP reconocieron este problema hace mucho tiempo y crearon Threat Dragon. Es una herramienta de código abierto que te ayuda a dibujar diagramas de flujo de datos y asociar riesgos directamente a los elementos de la arquitectura.
Qué puede hacer Threat Dragon
El proyecto fue fundado por Mike Goodwin en 2015, y ahora tiene el estatus oficial de Producción de OWASP. Esto significa que la utilidad se mantiene activamente, no fue abandonada después del primer commit.
El punto de la herramienta es hacer que el modelado de amenazas sea accesible para los equipos de desarrollo regulares, no solo para especialistas dedicados en Arquitectura Segura.
Aquí están las principales características por las que vale la pena ver el proyecto:
- Creación de Diagramas de Flujo de Datos (DFD). Dispón procesos, almacenes de datos, actores externos y límites de confianza en un lienzo.
- Generación y descripción de amenazas. Basándose en los elementos del diagrama, puedes compilar rápidamente una lista de riesgos potenciales y asociar pasos específicos de remediación a ellos.
- Integración con repositorios Git. La versión web puede autorizarse a través de GitHub, GitLab o Bitbucket y guardar los modelos de amenazas directamente en el código de tu proyecto como archivos JSON.
- Capacidad sin conexión. Si las políticas corporativas prohíben enviar diagramas de arquitectura a servicios externos, hay compilaciones de escritorio independientes disponibles.
Bajo el capó
La primera versión original era difícil de usar porque el frontend estaba escrito en AngularJS 1.x. debido a la obsolescencia del framework, los autores tomaron la decisión lógica de reescribir completamente el proyecto.
La versión dos de Threat Dragon está construida sobre una pila nueva: Vue.js para la interfaz de usuario y Node.js para el backend. El repositorio está claramente dividido en dos directorios: td.server y td.vue. Si quieres agregar tu propia regla personalizada o ajustar la interfaz para tus necesidades, entender la estructura no será difícil.
Inicio rápido
La forma más fácil de probar la herramienta localmente es ejecutar un contenedor Docker listo para usar. Literalmente toma un comando:
docker pull threatdragon/owasp-threat-dragon:stable
docker run -it --rm -p 8080:3000 threatdragon/owasp-threat-dragon:stable
Después de eso, la interfaz web estará disponible en http://localhost:8080/.
Si prefieres una compilación tradicional desde el código fuente, los procesos también son sencillos:
git clone https://github.com/owasp/threat-dragon.git
cd threat-dragon
npm install
npm start
Para la funcionalidad completa de la versión web con GitHub o GitLab, necesitarás registrar una aplicación OAuth en la configuración de tu sistema de control de versiones y pasar las claves a través de variables al archivo .env. El repositorio tiene instrucciones detalladas para cada servicio popular.
A quién le resultará útil este proyecto
Threat Dragon no reemplazará una auditoría de seguridad completa, y su interfaz se ve bastante austera. Pero si tu equipo necesita implementar prácticas de DevSecOps temprano en la fase de diseño, es una excelente alternativa a los sistemas pagados voluminosos.
La herramienta es ideal para documentar decisiones arquitectónicas directamente en el repositorio del proyecto. Todos los diagramas se almacenan junto con el código, lo que facilita su actualización durante la refactorización y su actualización durante las revisiones de arquitectura planificadas.
Proyectos relacionados