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égorie | Clé | Ce qu'elle durcit |
|---|---|---|
| OWASP | owasp | Les risques de sécurité applicative suivis par l'OWASP : injection, contrôle d'accès défaillant, authentification et défaillances cryptographiques |
| Infrastructure | infra | La configuration des conteneurs, des workloads et du serverless : Dockerfile, Compose, sécurité des Pods, IAM et déclencheurs FaaS |
| IA / LLM | ai | Les 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 |
| Lovable | lovable | Les 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égorie | Clé | Ce qu'elle durcit |
|---|---|---|
| JavaScript | javascript | La RCE par eval et child_process, le path traversal et la pollution de prototype, dans tous ses runtimes |
| Python | python | La RCE par désérialisation pickle et YAML, le parcours via str.format et la pollution de classe |
| Rust | rust | Les 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-cpp | Les bugs de chaîne de format, les dépassements de tampon et les écritures hors limites qui permettent l'exécution de code |
| PHP | php | Le contournement d'authentification par type juggling, les chaînes de gadgets d'injection d'objets et les configurations par défaut non sûres |
| Go | go | Les bugs d'interface nil typée, les data races entre goroutines et la concurrence risquée sur les chemins de sécurité |
| Java | java | Les chaînes de gadgets de désérialisation ObjectInputStream qui aboutissent à l'exécution de code à distance |
| Ruby | ruby | Les chaînes de gadgets de désérialisation Marshal.load et YAML qui mènent à l'exécution de code à distance |
| .NET / C# | dotnet | La RCE par désérialisation BinaryFormatter et les contournements d'encodeur qui mènent au XSS |
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.
- Ajouter
- Retirer
npx lagune write add --categories # interactive
npx lagune write add --categories owasp
npx lagune write add --categories owasp rust
npx lagune write remove --categories # interactive
npx lagune write remove --categories owasp
npx lagune write remove --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.
