🧠 Les spécialisations de Lagune sont des modules de connaissances en sécurité ciblés et indépendants du langage, qui ne se chargent qu'à la demande, jamais par défaut. Ce ne sont pas des commandes. Le catalogue de votre projet est l'ensemble qu'il utilise : les spécialisations intégrées de ses catégories plus les siennes. Les phases detect et verify y font appel pendant leur exécution, et vous pouvez en charger une directement à tout moment.
- Vue d'ensemble
- Fonctionnement
Contrôle d'accès
Garantit que chacun ne voit et ne fait que ce qui lui est permis, pour que personne ne puisse accéder aux données d'un autre utilisateur ou aux actions réservées aux administrateurs en changeant simplement un lien ou un identifiant.
npx lagune read catalog access-controlEndpoint d'API
Vérifie les portes que votre application ouvre sur l'extérieur, pour que les requêtes d'inconnus ne puissent pas extraire de données privées ni déclencher des actions interdites.
npx lagune read catalog api-endpointNavigateur
Protège ce qui s'exécute dans le navigateur de vos visiteurs, pour qu'un attaquant ne puisse pas injecter de code qui vole les identifiants ou détourne ce que vos utilisateurs voient et cliquent.
npx lagune read catalog browserC / C++
Repère les erreurs mémoire de bas niveau qui permettent à un attaquant de faire planter le programme ou d'exécuter son propre code sur votre serveur.
npx lagune read catalog c-cppConteneur
Examine la façon dont votre application est empaquetée et déployée, pour qu'une intrusion reste confinée au lieu de livrer toute la machine à un attaquant.
npx lagune read catalog containerEndpoint d'identifiants
Protège la connexion, l'inscription et la réinitialisation du mot de passe, pour que personne ne puisse deviner des mots de passe, prendre le contrôle de comptes ou réinitialiser celui d'un autre.
npx lagune read catalog credential-endpointCryptographie
Garantit que les données sensibles sont correctement chiffrées, pour que mots de passe, jetons et informations personnelles restent illisibles même en cas de fuite.
npx lagune read catalog cryptoCSV
Durcit les tableurs exportés, pour qu'ouvrir un fichier téléchargé risque beaucoup moins d'exécuter discrètement une commande malveillante sur l'ordinateur de quelqu'un.
npx lagune read catalog csv.NET
Couvre les pièges de sécurité propres aux applications .NET qui peuvent permettre à un attaquant d'exécuter son propre code sur votre serveur.
npx lagune read catalog dotnetFédération
Durcit la "connexion avec Google, Microsoft, etc." pour qu'un attaquant ait beaucoup plus de mal à usurper l'identité d'un utilisateur ou à se glisser dans un compte qui n'est pas le sien.
npx lagune read catalog federationGo
Couvre les pièges de sécurité propres aux applications Go, surtout les bugs subtils qui n'apparaissent qu'avec du trafic réel.
npx lagune read catalog goRequête HTTP
Inspecte les données qui arrivent avec chaque requête web, pour qu'une entrée cachée ou malveillante ne puisse pas pousser votre application à faire ce qu'il ne faut pas.
npx lagune read catalog http-requestInfrastructure
Examine les fichiers qui construisent et déploient votre application, comme les Dockerfiles, Terraform et les workflows de CI, pour qu'un seul réglage trop permissif ne puisse pas exposer tout l'environnement.
npx lagune read catalog infraInterpréteur
Empêche que des entrées utilisateur soient exécutées comme des commandes, pour qu'un champ de formulaire ou un envoi de fichier ne puisse pas faire exécuter à votre serveur les instructions d'un attaquant.
npx lagune read catalog interpreterJava
Couvre les pièges de sécurité propres aux applications Java qui peuvent permettre à un attaquant d'exécuter son propre code sur votre serveur.
npx lagune read catalog javaJavaScript
Couvre les pièges de sécurité propres aux applications JavaScript et Node, de l'exécution de code non fiable à la lecture de fichiers interdits.
npx lagune read catalog javascriptLLM
Protège les fonctionnalités construites sur des modèles d'IA, pour qu'un message habilement formulé ne puisse pas pousser l'IA à divulguer des données ou à détourner les outils connectés.
npx lagune read catalog llmRéseau
Vérifie la façon dont votre application communique avec d'autres services, pour qu'on ne puisse pas la piéger en lui faisant récupérer ou accepter quelque chose qu'un attaquant contrôle.
npx lagune read catalog networkChemin
Empêche les attaquants de se promener dans les fichiers de votre serveur, pour qu'ils ne puissent pas lire des fichiers privés ni écraser des fichiers importants en manipulant un nom de fichier.
npx lagune read catalog pathPaiement
Durcit le paiement et la facturation, ce qui rend beaucoup plus difficile de modifier les prix, d'échapper au paiement ou de rejouer un débit.
npx lagune read catalog paymentPHP
Couvre les pièges de sécurité propres aux applications PHP qui peuvent permettre à un attaquant d'exécuter son propre code ou de contourner une connexion.
npx lagune read catalog phpPython
Couvre les pièges de sécurité propres aux applications Python, surtout le chargement de données non fiables qui peut exécuter le code d'un attaquant.
npx lagune read catalog pythonExpressions régulières
Durcit les vérifications de texte pour qu'elles restent efficaces, ce qui rend beaucoup plus difficile pour une entrée malveillante de figer votre application en la surchargeant.
npx lagune read catalog regexRuby
Couvre les pièges de sécurité propres aux applications Ruby, surtout le chargement de données non fiables qui peut exécuter le code d'un attaquant.
npx lagune read catalog rubyRust
Couvre les pièges de sécurité propres aux applications Rust, surtout le code unsafe qui peut corrompre la mémoire ou faire planter le programme.
npx lagune read catalog rustSecrets
Garde les mots de passe, clés d'API et jetons hors de votre code source, pour qu'un dépôt partagé ou un build divulgué ne les livre jamais à un attaquant.
npx lagune read catalog secretsServerless
Examine les fonctions cloud et leurs autorisations, pour qu'une seule fonction ne puisse pas être détournée afin d'atteindre bien plus que ce qu'elle devrait.
npx lagune read catalog serverlessSQL
Protège la façon dont votre application communique avec sa base de données, pour qu'une entrée forgée ne puisse pas lire, modifier ou supprimer des données qu'elle n'aurait jamais dû toucher.
npx lagune read catalog sqlSupabase
Verrouille votre backend Supabase, pour que les règles de votre base de données soient réellement appliquées et que les clés secrètes ne se retrouvent pas exposées au public.
npx lagune read catalog supabaseTransport
Durcit le transport pour que les données circulent sur une connexion chiffrée, ce qui les rend beaucoup plus difficiles à lire ou à modifier en chemin entre vos utilisateurs et votre application.
npx lagune read catalog transportEnvoi de fichiers
Durcit l'envoi de fichiers, ce qui rend beaucoup plus difficile d'envoyer un fichier déguisé qui exécute du code, écrase des données ou remplit votre stockage.
npx lagune read catalog uploadXML
Durcit la façon dont votre application lit les données XML, pour qu'un fichier forgé ait beaucoup moins de chances de divulguer des fichiers du serveur ou de mettre votre application hors ligne.
npx lagune read catalog xmlL'utiliser vous-même
Pour utiliser une spécialisation directement, demandez à votre agent de la charger avec read catalog <name> et écrivez la tâche dans le même prompt. Les connaissances s'appliquent alors à ce que vous avez demandé. Cela fonctionne dans n'importe quel prompt, même sans rapport avec le flux de Lagune.
Par exemple, un prompt libre et direct pour générer une collection de RegExp sûres en Python :
Charge la spécialisation regex avec `npx lagune read catalog regex`, puis crée une collection d'expressions régulières dans @src/utils/regex.py pour valider les e-mails et les noms d'utilisateur.
Cela utilise un hook déterministe pour tester chaque RegExp contre le ReDoS, garde celles qui sont sûres et produit quelque chose comme :
import re
EMAIL = re.compile(r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")
USERNAME = re.compile(r"^[a-zA-Z0-9_]{3,20}$")
def is_email(value: str) -> bool:
return EMAIL.match(value) is not None
def is_username(value: str) -> bool:
return USERNAME.match(value) is not None
Testez vous-même un motif sur devina.io/redos-checker.
Les spécialisations intégrées
Les spécialisations intégrées sont regroupées en catégories. Voici l'ensemble livré avec Lagune :
| Spécialisation | Catégorie | Objet |
|---|---|---|
regex | owasp | ReDoS : motifs qui explosent face à une entrée forgée. |
network | owasp | SSRF et redirections : destinations de requête ou de redirection fournies par l'utilisateur. |
interpreter | owasp, lovable | Injection de code : eval, inclusion dynamique, dispatch par nom. |
sql | owasp | Bases de données relationnelles : injection, appels ORM bruts, privilèges, portée du moteur. |
path | owasp | Chemins du système de fichiers : traversal, octet nul, flux NTFS, planting. |
upload | owasp | Envoi de fichiers : type et signature, contenu malveillant, stockage, limites. |
access-control | owasp, lovable | Authentification, autorisation, session : IDOR, mass assignment, locataires, sessions. |
credential-endpoint | owasp, lovable | Devinette et bots : force brute, password spraying, credential stuffing, limitation de débit. |
federation | owasp | Confiance dans les jetons : OAuth/OIDC, SAML, validation des JWT, connexion par QR code. |
http-request | owasp | Provenance des requêtes : CSRF, mauvaise configuration CORS, IP client usurpée. |
transport | owasp | Sécurité du canal : configuration TLS, HTTPS ou texte clair, HSTS, pinning. |
crypto | owasp, lovable | Cryptographie au repos : algorithmes faibles ou maison, CSPRNG, gestion des clés. |
secrets | owasp, lovable | Identifiants codés en dur : clés, jetons, mots de passe écrits en clair dans le code source. |
api-endpoint | owasp | Surfaces hors REST : GraphQL, gRPC, autorisation WebSocket, DoS, schéma. |
payment | owasp, lovable | Parcours de paiement : vérifier la passerelle côté serveur, callbacks signés, idempotence. |
xml | owasp | Analyse XML : XXE, entités externes, expansion billion laughs. |
csv | owasp | Injection de formules : cellules de tableur qui commencent par =/+/-/@. |
container | owasp, infra | Configuration des conteneurs : root, capabilities, montage du socket, durcissement de l'image. |
infra | infra | Infrastructure as code : Terraform, Dockerfile, GitHub Actions. |
serverless | owasp, infra, lovable | Fonctions FaaS : IAM au moindre privilège, entrées d'événements, contexte, secrets. |
llm | ai, lovable | Risques de l'IA et des LLM : injection de prompt, agentivité, RAG, MCP, sortie. |
supabase | lovable | Backend Supabase : RLS désactivé par défaut, politiques mal générées par l'IA, modèle de clés. |
browser | javascript, lovable | Risques côté client : XSS, CSP, framing, stockage, etc. |
javascript | javascript | Risques propres au langage : RCE, pollution de prototype, etc. |
python | python | Risques propres au langage : RCE via pickle, pollution de classe, -O, etc. |
rust | rust | Soundness de unsafe : UB déclenché par du code sûr, transmute, dépassements. |
java | java | Désérialisation et code mobile : chaînes readObject, détournement d'objets. |
ruby | ruby | Désérialisation et open : reconstitution via Marshal/YAML, particularité des pipes. |
php | php | Type juggling et unserialize : magic hashes, chaînes POP. |
go | go | Nil typé et data races : nil != nil, goroutines à mémoire partagée. |
c-cpp | c-cpp | Chaînes de format : printf(user_input), write-what-where via %n. |
dotnet | dotnet | Risques propres à la plateforme : RCE via BinaryFormatter, @Html.Raw, failles des enums. |
La plupart des connaissances intégrées sont condensées à partir de l'OWASP. Consultez Sources OWASP pour la correspondance complète entre chaque spécialisation et ses pages canoniques d'attaques et de Cheat Sheets de l'OWASP. Quelques modules propres à une stack s'appuient plutôt sur la documentation de l'éditeur : supabase, par exemple, provient de la documentation de Supabase et de la CVE-2025-48757.
Vos propres spécialisations
Les spécialisations intégrées s'enrichissent d'un fichier de connaissances et d'une ligne d'index, jamais d'une nouvelle commande. Vous ajoutez les vôtres de la même façon, avec /lagune-specialize : pointez-le vers un article ou un sujet et il condense une nouvelle spécialisation dans votre projet, le fichier sous .lagune/catalog/ et son entrée dans .lagune/configs.json. Les vôtres sont toujours dans le catalogue, quelles que soient ses catégories, et l'une des vôtres masque une spécialisation intégrée du même nom.
Quand la phase detect ou verify rencontre un contexte couvert par une spécialisation, elle charge elle-même cette spécialisation avec read catalog <name>. Cela se fait automatiquement, dans le cadre de la phase. Vous n'avez rien à faire à la main pour que cela fonctionne.
Découvrir ce qui est disponible
Pour lister le catalogue de votre projet depuis le terminal, une spécialisation par ligne avec ses tags :
npx lagune read catalog
# regex: Regular Expression [required]
# network: Requests, Webhook, URL Fetch, Socket, IMDS, Redirect
# interpreter: Evaluator, Sink, Shell, Dynamic Execution
# ...
Une spécialisation [required] s'applique toujours, quel que soit le travail. Les spécialisations intégrées que contient la liste dépendent des catégories de votre projet.
Les connaissances pertinentes sont chargées pour ce qu'est réellement le projet, au lieu d'exécuter toutes les vérifications par défaut.
Questions fréquentes
Un module de connaissances en sécurité ciblé et indépendant du langage, qui ne se charge qu'à la demande, jamais par défaut. Ce n'est pas une commande comme les skills de l'agent.
Les spécialisations qu'utilise le projet : les intégrées de ses catégories plus les siennes. Tant qu'aucune catégorie n'est enregistrée, il utilise seulement OWASP.
Non. Elles ne se chargent qu'à la demande, pour ce qu'est réellement le projet.
Dans le même prompt que la tâche, demandez à votre agent d'exécuter npx lagune read catalog <name>.
