
Una herramienta de modelado de amenazas de código abierto de OWASP
OWASP Threat Dragon es una aplicación gratuita, de código abierto y multiplataforma para modelado de amenazas. Se utiliza para dibujar diagramas de modelado de amenazas y para enumerar las amenazas de los elementos del diagrama. Mike Goodwin creó Threat Dragon como un proyecto comunitario de código abierto que ofrece una forma intuitiva y accesible de modelar amenazas.
Threat Dragon está diseñado para ser accesible para diversos tipos de equipos, con énfasis en la flexibilidad y la simplicidad. El Proyecto tiene estado de Producción OWASP y sigue los valores y principios del manifiesto de modelado de amenazas.
Este programa es software libre: puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Apache 2.0.
Accede a la última versión de Threat Dragon en el sitio web de demostración y consulta las páginas de documentación.
También merece la pena ver el vídeo proporcionado por la serie OWASP Spotlight.
La zona de lanzamientos de github contiene Threat Dragon desde la versión 1.3 hasta las últimas versiones 2.x. Los lanzamientos anteriores están en el repositorio original de Mike Goodwin.
Hay una buena visión general de modelado de amenazas y evaluación de riesgos de OWASP, y esto amplía lo que el proyecto Threat Dragon pretende:
Mike Goodwin es el fundador y creador de este proyecto, y este repositorio ha sido migrado desde el original de Mike Goodwin, que contiene los issues y pull requests desde octubre de 2015 hasta junio de 2020.
Threat Dragon es principalmente una aplicación web. La aplicación web puede almacenar archivos de modelos de amenazas en el sistema de archivos local; además, se puede configurar el acceso para:
Las versiones de escritorio de Threat Dragon almacenan los archivos de modelos de amenazas en el sistema de archivos local y no acceden a repositorios externos. Puedes descargar instaladores para Windows, MacOS y Linux.
Hay ayuda para el usuario final tanto para la última versión 2.x como para la anterior versión 1.x.
Threat Dragon se escribió originalmente con AngularJS versión 1.x, pero esta versión de Angular llegó al final de su vida útil. Esto significa que las versiones 1.x de Threat Dragon ya no se mantienen activamente y las versiones 2.x se han reescrito para usar Vue.js.
Para obtener más información sobre cómo compilar/ejecutar la versión 1.x, consulta la rama legacy-v1.x.
Instala git y node.js, que incluye el gestor de paquetes de node, npm
Clona el repositorio usando: git clone https://github.com/owasp/threat-dragon.git
Esto descarga el código en un directorio threat-dragon, y el código de la aplicación está en dos subcarpetas: una para la aplicación back-end (td.server) y otra para el front-end (td.vue).
Instala desde el directorio superior del proyecto usando: npm install
La variante de aplicación web de Threat Dragon requiere algunas variables de entorno; sigue la documentación sobre cómo establecer estas variables.
Si se requiere acceso a repositorios externos, como Bitbucket / GitHub / GitLab, entonces debes ir a tu cuenta de repositorio y registrar la aplicación. Hay guías paso a paso sobre cómo hacerlo para Bitbucket, GitHub y GitLab.
Cuando se ejecuta en Windows, y durante el desarrollo, el front-end y el back-end del servidor se pueden iniciar por separado en modo "watch" usando los comandos: npm run dev:server y npm run dev:vue.
Alternativamente, si se ejecuta en Linux o MacOS, inicia tanto el servidor back-end como la aplicación front-end desde el directorio superior usando: npm start.
Con el front-end y el back-end en ejecución, accede con un navegador a http://localhost:8080/
Si se usa npm start, detén tanto el servidor back-end como la aplicación front-end desde el directorio superior con el comando npm stop. De lo contrario, sal de ambos, del servidor y del front-end vue.
Threat Dragon mantiene imágenes docker en el área de la organización OWASP en Dockerhub.
Cada lanzamiento está etiquetado como v{major}.{minor}.{patch}, por ejemplo v2.2.0:
docker pull owasp/threat-dragon:v2.2.0La etiqueta latest (que es la predeterminada) bien podría ser una versión de desarrollo, así que usa la etiqueta stable, que será siempre la última versión oficial:
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.0Suponiendo que estás usando el puerto http 8080 y accediendo a Threat Dragon en http://localhost:8080/.
Para ejecutar Threat Dragon en un contenedor docker compilado localmente, primero configura tu entorno usando dotenv y ejecuta desde el directorio superior del proyecto:
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 el puerto http 8080 y accediendo a Threat Dragon en http://localhost:8080/.
Las pull requests, las solicitudes de funciones, los informes de errores y cualquier tipo de comentario son muy bienvenidos; consulta la página para contribuyentes.
Hay algunas notas para desarrolladores que ayudan a empezar con este proyecto. Estamos intentando mantener una cobertura de pruebas relativamente alta, así que incluye pruebas en tus pull requests.
La forma más fácil de ponerse en contacto con la comunidad de Threat Dragon es enviando un correo electrónico al grupo de google de OWASP. El canal de OWASP en Slack #project-threat-dragon es una buena fuente de información, aunque puede que necesites suscribirte primero.
Puedes seguir a Threat Dragon en Bluesky.
Si encuentras una vulnerabilidad en este proyecto, por favor infórmanos lo antes posible y la corregiremos con prioridad. Para una divulgación segura, consulta la política de seguridad.
Threat Dragon: haciendo que el modelado de amenazas sea menos amenazante