🧠 Le specializzazioni di Lagune sono moduli di conoscenza di sicurezza mirati e indipendenti dal linguaggio, che si caricano solo su richiesta, mai per impostazione predefinita. Non sono comandi. Il catalogo del tuo progetto è l'insieme che usa: le specializzazioni integrate delle sue categorie più le sue. Le fasi detect e verify vi attingono durante l'esecuzione, e tu puoi caricarne una direttamente in qualsiasi momento.
- Panoramica
- Come funziona
Controllo degli accessi
Fa in modo che le persone possano vedere e fare solo ciò che è loro consentito, così nessuno raggiunge i dati di un altro utente o le azioni riservate agli amministratori solo cambiando un link o un ID.
npx lagune read catalog access-controlEndpoint API
Controlla le porte che la tua app espone al mondo esterno, così le richieste di estranei non possono estrarre dati privati né avviare azioni che non dovrebbero.
npx lagune read catalog api-endpointBrowser
Protegge ciò che gira nel browser dei tuoi visitatori, così un attaccante non può iniettare codice che ruba i login o dirotta ciò che i tuoi utenti vedono e cliccano.
npx lagune read catalog browserC / C++
Individua gli errori di memoria di basso livello che permettono a un attaccante di mandare in crash il programma o di eseguire il proprio codice sul tuo server.
npx lagune read catalog c-cppContainer
Esamina come la tua app viene impacchettata e distribuita, così un'intrusione resta circoscritta invece di consegnare all'attaccante l'intera macchina.
npx lagune read catalog containerEndpoint delle credenziali
Protegge i flussi di login, registrazione e reimpostazione della password, così un attaccante non può indovinare le password, prendere il controllo degli account o reimpostare quelli altrui.
npx lagune read catalog credential-endpointCrittografia
Fa in modo che i dati sensibili siano cifrati come si deve, così password, token e dati personali restano illeggibili anche se trapelano.
npx lagune read catalog cryptoCSV
Mette in sicurezza i fogli di calcolo esportati, così aprire un file scaricato ha molte meno probabilità di eseguire di nascosto un comando dannoso sul computer di qualcuno.
npx lagune read catalog csv.NET
Copre le insidie di sicurezza tipiche delle app .NET che possono permettere a un attaccante di eseguire il proprio codice sul tuo server.
npx lagune read catalog dotnetFederazione
Mette in sicurezza "accedi con Google, Microsoft e simili", così per un attaccante è molto più difficile impersonare un utente o infilarsi in un account che non è il suo.
npx lagune read catalog federationGo
Copre le insidie di sicurezza tipiche delle app Go, soprattutto i bug sottili che emergono con il traffico reale.
npx lagune read catalog goRichiesta HTTP
Ispeziona i dati che arrivano con ogni richiesta web, così un input nascosto o malevolo non può piegare la tua app a fare la cosa sbagliata.
npx lagune read catalog http-requestInfrastruttura
Esamina i file che compilano e distribuiscono la tua app, come Dockerfile, Terraform e workflow di CI, così una sola impostazione permissiva non può esporre l'intero ambiente.
npx lagune read catalog infraInterprete
Impedisce che l'input degli utenti venga eseguito come comando, così un campo di un modulo o un caricamento non può far eseguire al tuo server le istruzioni di un attaccante.
npx lagune read catalog interpreterJava
Copre le insidie di sicurezza tipiche delle app Java che possono permettere a un attaccante di eseguire il proprio codice sul tuo server.
npx lagune read catalog javaJavaScript
Copre le insidie di sicurezza tipiche delle app JavaScript e Node, dall'esecuzione di codice non attendibile alla lettura di file a cui non dovrebbero accedere.
npx lagune read catalog javascriptLLM
Protegge le funzionalità basate su modelli di IA, così un messaggio formulato ad arte non può indurre l'IA a far trapelare dati o a usare in modo improprio gli strumenti collegati.
npx lagune read catalog llmRete
Controlla come la tua app comunica con altri servizi, così non può essere ingannata e indotta a recuperare o a fidarsi di qualcosa che controlla un attaccante.
npx lagune read catalog networkPercorsi
Impedisce agli attaccanti di girovagare tra i file del tuo server, così non possono leggere file privati né sovrascriverne di importanti manipolando il nome di un file.
npx lagune read catalog pathPagamenti
Mette in sicurezza checkout e fatturazione, rendendo molto più difficile manomettere i prezzi, eludere il pagamento o ripetere un addebito.
npx lagune read catalog paymentPHP
Copre le insidie di sicurezza tipiche delle app PHP che possono permettere a un attaccante di eseguire il proprio codice o di aggirare un login.
npx lagune read catalog phpPython
Copre le insidie di sicurezza tipiche delle app Python, soprattutto il caricamento di dati non attendibili che può eseguire il codice di un attaccante.
npx lagune read catalog pythonEspressioni regolari
Mette in sicurezza i controlli sul testo perché restino efficienti, rendendo molto più difficile che un input malevolo blocchi la tua app sovraccaricandola.
npx lagune read catalog regexRuby
Copre le insidie di sicurezza tipiche delle app Ruby, soprattutto il caricamento di dati non attendibili che può eseguire il codice di un attaccante.
npx lagune read catalog rubyRust
Copre le insidie di sicurezza tipiche delle app Rust, soprattutto il codice unsafe che può corrompere la memoria o mandare in crash il programma.
npx lagune read catalog rustSegreti
Tiene password, chiavi API e token fuori dal codice sorgente, così un repository condiviso o una build trapelata non li consegna mai a un attaccante.
npx lagune read catalog secretsServerless
Esamina le funzioni cloud e i loro permessi, così una singola funzione non può essere sfruttata per raggiungere molto più di quanto dovrebbe.
npx lagune read catalog serverlessSQL
Protegge il modo in cui la tua app comunica con il database, così un input costruito ad arte non può leggere, modificare o cancellare dati che non avrebbe mai dovuto toccare.
npx lagune read catalog sqlSupabase
Blinda il tuo backend Supabase, così le regole del database reggono davvero e le chiavi segrete non finiscono esposte al pubblico.
npx lagune read catalog supabaseTrasporto
Mette in sicurezza il trasporto perché i dati viaggino su una connessione cifrata, rendendo molto più difficile leggerli o alterarli lungo il tragitto tra i tuoi utenti e la tua app.
npx lagune read catalog transportCaricamento di file
Mette in sicurezza il caricamento di file, rendendo molto più difficile caricare un file camuffato che esegue codice, sovrascrive dati o riempie il tuo spazio di archiviazione.
npx lagune read catalog uploadXML
Mette in sicurezza il modo in cui la tua app legge i dati XML, così un file costruito ad arte ha molte meno possibilità di far trapelare file del server o di mettere fuori uso la tua app.
npx lagune read catalog xmlUsala da solo
Per usare direttamente una specializzazione, chiedi al tuo agente di caricarla con read catalog <name> e scrivi il compito nello stesso prompt. La conoscenza agisce allora su ciò che hai chiesto. Funziona in qualsiasi prompt, anche in uno che non ha nulla a che fare con il flusso di Lagune.
Per esempio, un prompt diretto e libero per generare una raccolta sicura di RegExp con Python:
Carica la specializzazione regex con `npx lagune read catalog regex`, poi crea in @src/utils/regex.py una raccolta di espressioni regolari per validare email e nomi utente.
Questo usa un hook deterministico per testare ogni RegExp contro il ReDoS, mantiene quelle sicure e produce qualcosa del genere:
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
Testa tu stesso un pattern su devina.io/redos-checker.
Le specializzazioni integrate
Le specializzazioni integrate sono raggruppate in categorie. Questo è l'insieme fornito con Lagune:
| Specializzazione | Categoria | Ambito |
|---|---|---|
regex | owasp | ReDoS: pattern che esplodono con input costruiti ad arte. |
network | owasp | SSRF e redirect: destinazioni di richieste o redirect fornite dall'utente. |
interpreter | owasp, lovable | Code injection: eval, include dinamico, dispatch per nome. |
sql | owasp | Database relazionali: injection, chiamate ORM grezze, privilegi, portata del motore. |
path | owasp | Percorsi del file system: path traversal, byte nullo, stream NTFS, planting. |
upload | owasp | Caricamento di file: tipo/firma, contenuto malevolo, archiviazione, limiti. |
access-control | owasp, lovable | Autenticazione, autorizzazione e sessione: IDOR, mass assignment, tenant, sessioni. |
credential-endpoint | owasp, lovable | Tentativi e bot: brute force, password spraying, credential stuffing, limitazione dei tentativi. |
federation | owasp | Fiducia nei token: OAuth/OIDC, SAML, validazione dei JWT, login con QR. |
http-request | owasp | Provenienza delle richieste: CSRF, CORS mal configurato, IP del client falsificato. |
transport | owasp | Sicurezza del canale: configurazione TLS, HTTPS/testo in chiaro, HSTS, pinning. |
crypto | owasp, lovable | Crittografia dei dati a riposo: algoritmi deboli o fatti in casa, CSPRNG, gestione delle chiavi. |
secrets | owasp, lovable | Credenziali scritte nel codice: chiavi, token e password in chiaro nel sorgente. |
api-endpoint | owasp | Superfici non REST: GraphQL, gRPC, autorizzazione WebSocket, DoS, schema. |
payment | owasp, lovable | Flusso di checkout: verifica del gateway lato server, callback firmate, idempotenza. |
xml | owasp | Parsing XML: XXE, entità esterne, espansione billion laughs. |
csv | owasp | Formula injection: celle di foglio di calcolo che iniziano con =/+/-/@. |
container | owasp, infra | Configurazione dei container: root, capability, montaggio del socket, hardening dell'immagine. |
infra | infra | Infrastructure as code: Terraform, Dockerfile, GitHub Actions. |
serverless | owasp, infra, lovable | Funzioni FaaS: IAM con privilegio minimo, input degli eventi, contesto, segreti. |
llm | ai, lovable | Rischi di IA e LLM: prompt injection, agency, RAG, MCP, output. |
supabase | lovable | Backend Supabase: RLS disattivata per impostazione predefinita, policy generate male dall'IA, modello delle chiavi. |
browser | javascript, lovable | Rischi lato client: XSS, CSP, framing, storage, ecc. |
javascript | javascript | Rischi del linguaggio: RCE, prototype pollution, ecc. |
python | python | Rischi del linguaggio: RCE con pickle, class pollution, -O, ecc. |
rust | rust | Solidità di unsafe: UB da chiamanti sicuri, transmute, overflow. |
java | java | Deserializzazione e codice mobile: catene di readObject, dirottamento di oggetti. |
ruby | ruby | Deserializzazione e open: ricostruzione con Marshal/YAML, la stranezza delle pipe. |
php | php | Type juggling e unserialize: magic hash, catene POP. |
go | go | Nil tipizzato e data race: nil != nil, goroutine con memoria condivisa. |
c-cpp | c-cpp | Format string: printf(user_input), scrittura arbitraria (write-what-where) con %n. |
dotnet | dotnet | Rischi della piattaforma: RCE con BinaryFormatter, @Html.Raw, lacune negli enum. |
La maggior parte della conoscenza integrata è distillata da OWASP. Consulta Fonti OWASP per la corrispondenza completa tra ogni specializzazione e le sue pagine canoniche di attacco e di Cheat Sheet di OWASP. Alcuni moduli specifici per uno stack attingono invece alle indicazioni del fornitore: supabase, per esempio, deriva dalla documentazione di Supabase e dalla CVE-2025-48757.
Le tue specializzazioni
Le specializzazioni integrate crescono aggiungendo un file di conoscenza più una riga di indice, mai un nuovo comando. Tu aggiungi le tue nello stesso modo, con /lagune-specialize: puntalo su un articolo o un tema e distilla una nuova specializzazione nel tuo progetto, il file in .lagune/catalog/ e la sua voce in .lagune/configs.json. Le tue sono sempre nel catalogo, qualunque siano le sue categorie, e una delle tue oscura quella integrata con lo stesso nome.
Quando la fase detect o verify incontra un contesto coperto da una specializzazione, carica da sola quella specializzazione con read catalog <name>. Succede in automatico, come parte della fase. Non devi farlo a mano perché funzioni.
Scopri cosa è disponibile
Per elencare dal terminale il catalogo del tuo progetto, una specializzazione per riga con i suoi tag:
npx lagune read catalog
# regex: Regular Expression [required]
# network: Requests, Webhook, URL Fetch, Socket, IMDS, Redirect
# interpreter: Evaluator, Sink, Shell, Dynamic Execution
# ...
Una specializzazione [required] si applica sempre, qualunque sia il lavoro. Quali specializzazioni integrate contenga l'elenco dipende dalle categorie del tuo progetto.
La conoscenza pertinente viene richiamata per ciò che il progetto è davvero, invece di eseguire ogni controllo per impostazione predefinita.
Domande frequenti
Un modulo di conoscenza di sicurezza mirato e indipendente dal linguaggio, che si carica solo su richiesta, mai per impostazione predefinita. Non è un comando come le skill dell'agente.
Le specializzazioni che il progetto usa: quelle integrate delle sue categorie più le sue. Finché non è registrata alcuna categoria, usa solo OWASP.
No. Si caricano solo su richiesta, per ciò che il progetto è davvero.
Nello stesso prompt del compito, chiedi al tuo agente di eseguire npx lagune read catalog <name>.
