Spécialisations

Catégories

Les catégories de spécialisations qu'un projet Lagune peut utiliser, de l'OWASP au durcissement propre à JavaScript, Python, Go et Rust, et comment les modifier.

Lagune regroupe ses spécialisations intégrées en 13 catégories. Les catégories qu'utilise un projet déterminent quelles spécialisations intégrées rejoignent son catalogue, et elles se répartissent en deux : ce que fait le système, et le langage dans lequel il est écrit.

Tant qu'aucune catégorie n'est enregistrée, un projet utilise seulement owasp. /lagune-charter enregistre chaque catégorie que justifie sa lecture du projet, et vous pouvez les modifier vous-même à tout moment.

Ce que fait le système​

CatégorieCléCe qu'elle durcit
OWASPowaspLes risques de sécurité applicative suivis par l'OWASP : injection, contrôle d'accès défaillant, authentification et défaillances cryptographiques
InfrastructureinfraLa configuration des conteneurs, des workloads et du serverless : Dockerfile, Compose, sécurité des Pods, IAM et déclencheurs FaaS
IA / LLMaiLes intégrations d'IA et de LLM, contre l'injection de prompt et le câblage risqué d'outils, d'agents, de recherche documentaire et de MCP
LovablelovableLes applications Supabase générées par IA (Lovable et similaires) : lacunes RLS, clés service_role divulguées et valeurs par défaut non sûres

Le langage dans lequel il est écrit​

CatégorieCléCe qu'elle durcit
JavaScriptjavascriptLa RCE par eval et child_process, le path traversal et la pollution de prototype, dans tous ses runtimes
PythonpythonLa RCE par désérialisation pickle et YAML, le parcours via str.format et la pollution de classe
RustrustLes API unsafe non sound, le mauvais usage de transmute, les dépassements d'entier et le comportement indéfini à la frontière FFI
C / C++c-cppLes bugs de chaîne de format, les dépassements de tampon et les écritures hors limites qui permettent l'exécution de code
PHPphpLe contournement d'authentification par type juggling, les chaînes de gadgets d'injection d'objets et les configurations par défaut non sûres
GogoLes bugs d'interface nil typée, les data races entre goroutines et la concurrence risquée sur les chemins de sécurité
JavajavaLes chaînes de gadgets de désérialisation ObjectInputStream qui aboutissent à l'exécution de code à distance
RubyrubyLes chaînes de gadgets de désérialisation Marshal.load et YAML qui mènent à l'exécution de code à distance
.NET / C#dotnetLa RCE par désérialisation BinaryFormatter et les contournements d'encodeur qui mènent au XSS
astuce

Lagune est indépendant du langage : tout le flux lit le langage dans lequel votre projet est écrit, quel qu'il soit, et ces catégories ne font qu'ajouter de la profondeur sur les pièges propres à un langage.

Ajouter et retirer à tout moment​

Une catégorie est un point de départ, pas un engagement. Utilisez ce qui convient au projet aujourd'hui et modifiez-le à tout moment par clé, avec write add et write remove. --categories sans valeur ouvre un sélecteur interactif dans un terminal (espace pour cocher, entrée pour confirmer, rien pour passer). En dehors d'un terminal, passez les catégories après l'option.

npx lagune write add --categories # interactive
npx lagune write add --categories owasp
npx lagune write add --categories owasp rust

Le premier write add ou write remove part de owasp, donc retirer toutes les catégories laisse une liste vide, jamais la valeur par défaut. Chaque modification est enregistrée dans .lagune/configs.json, pour que toute l'équipe travaille avec le même ensemble.

Voir ce qu'utilise un projet​

read list --categories affiche chaque catégorie et indique si le projet l'utilise :

npx lagune read list --categories
# Categories
# • owasp [used] Harden against the application security risks OWASP tracks
# • javascript [available] Harden JavaScript and its runtimes
# • php [available] Harden PHP against type-juggling auth bypass
# • go [available] Harden Go against typed-nil interface bugs
# ...
#
# No category is recorded yet, so this project uses the default: owasp.

Consultez le Catalogue pour savoir quelles spécialisations porte chaque catégorie. Vos propres spécialisations, écrites avec /lagune-specialize, rejoignent le catalogue quelles que soient les catégories.

Questions fréquentes

Passez la clé de la catégorie à --categories, par exemple npx lagune write add --categories javascript. Tant qu'aucune catégorie n'est enregistrée, la charter enregistre aussi celles que justifie sa lecture du projet.

Oui. Listez-les sur la même ligne, l'une après l'autre.

Commencez par owasp, la valeur par défaut, puis ajoutez celle de votre langage ou de votre stack. Les spécialisations ne se chargent qu'à la demande, donc une catégorie ne coûte rien tant qu'une phase n'a pas besoin de l'une de ses spécialisations.