
Threagile (voir threagile.io pour plus de détails) est une boîte à outils open-source pour la modélisation des menaces agile :
Elle permet de modéliser une architecture avec ses actifs de manière agile dans un fichier YAML directement dans l'IDE. Lors de l'exécution de la boîte à outils Threagile, toutes les règles de risque standard (ainsi que les règles personnalisées individuelles si présentes) sont vérifiées par rapport au modèle d'architecture. Vous trouverez plus d'informations sur le schéma du modèle ici.
L'outil dispose de diverses commandes et est hautement configurable via des drapeaux et config.
Nous savons que modifier un fichier yaml via un éditeur de texte peut être difficile et pour simplifier cela, nous avons introduit :
Les règles de risque personnalisées peuvent être écrites sous forme de scripts YAML sans compiler de code Go. Voir la référence du langage de script, le guide pour écrire des règles de risque personnalisées, et comment tester vos scripts.
Des efforts sur l'interface utilisateur sont en cours et il y a quelques tentatives pour le faire, bien que cela soit loin d'être prêt.
Ici vous trouverez des cas d'utilisation utiles sur la façon dont d'autres utilisent l'outil et cela peut être utile pour simplifier l'adoption de l'outil Threagile pour votre équipe.
Le moyen le plus simple d'exécuter Threagile en ligne de commande est via son conteneur Docker :
docker run --rm -it threagile/threagile --help
Cela vous donnera une sortie avec les drapeaux possibles qui peuvent être utilisés avec Threagile.
_____ _ _ _
|_ _| |__ _ __ ___ __ _ __ _(_) | ___
| | | '_ \| '__/ _ \/ _` |/ _` | | |/ _ \
| | | | | | | | __/ (_| | (_| | | | __/
|_| |_| |_|_| \___|\__,_|\__, |_|_|\___|
|___/
Threagile - Modélisation des menaces agile
Documentation : https://threagile.io
Images Docker : https://hub.docker.com/r/threagile/threagile
Code source : https://github.com/threagile
Licence : Open-Source (Licence MIT)
Version : 1.0.0 (20231104141112)
Usage : threagile [options]
Options :
-background string
fichier pdf d'arrière-plan (par défaut "background.pdf")
-create-editing-support
créer simplement des éléments d'aide à l'édition dans le répertoire de sortie
-create-example-model
créer simplement un modèle exemple nommé threagile-example-model.yaml dans le répertoire de sortie
-create-stub-model
créer simplement un modèle stub minimal nommé threagile-stub-model.yaml dans le répertoire de sortie
-custom-risk-rules-plugins string
liste séparée par des virgules de noms de fichiers de plugins (.so shared object) avec des règles de risque personnalisées à charger
-diagram-dpi int
DPI utilisé pour le rendu : maximum 240 (par défaut 120)
-execute-model-macro string
Exécuter la macro de modèle (par ID)
-generate-data-asset-diagram
générer le diagramme d'actifs de données (par défaut true)
-generate-data-flow-diagram
générer le diagramme de flux de données (par défaut true)
-generate-report-pdf
générer le rapport pdf, y compris les diagrammes (par défaut true)
-generate-risks-excel
générer le fichier excel des risques (par défaut true)
-generate-risks-json
générer le json des risques (par défaut true)
-generate-stats-json
générer le json des statistiques (par défaut true)
-generate-tags-excel
générer le fichier excel des balises (par défaut true)
-generate-technical-assets-json
générer le json des actifs techniques (par défaut true)
-ignore-orphaned-risk-tracking
ignorer le suivi des risques orphelins (les journaliser uniquement) ne correspondant pas à un risque concret
-list-model-macros
afficher les macros de modèle
-list-risk-rules
afficher les règles de risque
-list-types
afficher les informations de type (valeurs d'énumération à utiliser dans les modèles)
-model string
fichier yaml du modèle d'entrée (par défaut "threagile.yaml")
-output string
répertoire de sortie (par défaut ".")
-print-3rd-party-licenses
afficher les informations de licence des tiers
-print-license
afficher les informations de licence
-server int
démarrer un serveur (au lieu d'une exécution en ligne de commande) sur le port donné
-skip-risk-rules string
liste séparée par des virgules de règles de risque (par leur ID) à ignorer
-verbose
sortie verbeuse
-version
afficher la version
Exemples :
Si vous souhaitez créer un modèle exemple (via docker) comme point de départ pour apprendre Threagile, exécutez simplement :
docker run --rm -it -v "$(pwd)":/app/work threagile/threagile --create-example-model --output /app/work
Si vous souhaitez créer un modèle stub minimal (via docker) comme point de départ pour votre propre modèle, exécutez simplement :
docker run --rm -it -v "$(pwd)":/app/work threagile/threagile --create-stub-model --output /app/work
Si vous souhaitez exécuter Threagile sur un fichier yaml de modèle (via docker) :
docker run --rm -it -v "$(pwd)":/app/work threagile/threagile --verbose --model /app/work/threagile.yaml --output /app/work
Si vous souhaitez exécuter Threagile en tant que serveur (API REST) sur un certain port (ici 8080) :
docker run --rm -it --shm-size=256m -p 8080:8080 --name threagile-server --mount 'type=volume,src=threagile-storage,dst=/data,readonly=false' threagile/threagile -server 8080
Si vous souhaitez connaître les différentes valeurs d'énumération utilisables dans le fichier yaml du modèle :
docker run --rm -it threagile/threagile -list-types
Si vous souhaitez utiliser une aide à l'édition agréable (validation de syntaxe, autocomplétion et modèles en direct) dans votre IDE préféré :
docker run --rm -it -v "$(pwd)":/app/work threagile/threagile --create-editing-support --output /app/work
Si vous souhaitez lister toutes les macros de modèle disponibles (qui sont des macros capables de lire un fichier yaml de modèle, de vous poser des questions dans un style assistant, puis de mettre à jour le fichier yaml de modèle en conséquence) :
docker run --rm -it threagile/threagile -list-model-macros
Si vous souhaitez exécuter une certaine macro de modèle sur le fichier yaml de modèle (ici la macro add-build-pipeline) :
docker run --rm -it -v "$(pwd)":/app/work threagile/threagile --model /app/work/threagile.yaml --output /app/work --execute-model-macro add-build-pipeline
Les informations sur les versions se trouvent sur la page des versions.
Vous êtes les bienvenus pour contribuer au projet de n'importe quelle manière. Si vous souhaitez ajouter une nouvelle fonctionnalité ou corriger un bogue dans la base de code, veuillez suivre le guide de contribution.
Sinon, veuillez créer une discussion GitHub ou un problème et les contributeurs trouveront du temps pour répondre.