Lagune raggruppa le sue specializzazioni integrate in 13 categorie. Le categorie usate da un progetto decidono quali specializzazioni integrate entrano nel suo catalogo, e si dividono in due: ciò che fa il sistema e ciò in cui è scritto.
Finché non è registrata alcuna categoria, un progetto usa solo owasp. /lagune-charter registra ogni categoria che la sua lettura del progetto giustifica, e tu puoi modificarle in qualsiasi momento.
Ciò che fa il sistema
| Categoria | Chiave | Cosa mette in sicurezza |
|---|---|---|
| OWASP | owasp | I rischi di sicurezza applicativa che OWASP monitora: injection, controllo degli accessi inefficace, falle di autenticazione e di crittografia |
| Infrastruttura | infra | La configurazione di container, workload e serverless: Dockerfile, Compose, sicurezza dei Pod, IAM e trigger FaaS |
| IA / LLM | ai | Le integrazioni di IA e LLM, contro la prompt injection e i collegamenti non sicuri con strumenti, agenti, retrieval e MCP |
| Lovable | lovable | Le app Supabase generate dall'IA (Lovable e simili): lacune nelle RLS, chiavi service_role esposte e impostazioni predefinite non sicure |
Ciò in cui è scritto
| Categoria | Chiave | Cosa mette in sicurezza |
|---|---|---|
| JavaScript | javascript | RCE tramite eval e child_process, path traversal e prototype pollution, in tutti i suoi runtime |
| Python | python | RCE per deserializzazione con pickle e YAML, attraversamento tramite str.format e class pollution |
| Rust | rust | API unsafe non corrette, uso improprio di transmute, integer overflow e comportamento indefinito al confine FFI |
| C / C++ | c-cpp | Bug di format string, buffer overflow e scritture fuori dai limiti che permettono l'esecuzione di codice |
| PHP | php | Aggiramento dell'autenticazione per type juggling, catene di gadget di object injection e configurazioni predefinite non sicure |
| Go | go | Bug di interfacce con nil tipizzato, data race tra goroutine e concorrenza non sicura nei percorsi di sicurezza |
| Java | java | Catene di gadget di deserializzazione con ObjectInputStream che culminano nell'esecuzione di codice remoto |
| Ruby | ruby | Catene di gadget di deserializzazione con Marshal.load e YAML che portano all'esecuzione di codice remoto |
| .NET / C# | dotnet | RCE per deserializzazione con BinaryFormatter e gli aggiramenti degli encoder che portano a XSS |
Lagune è indipendente dal linguaggio: l'intero flusso legge qualunque linguaggio usi il tuo progetto, e queste categorie aggiungono solo profondità sulle insidie tipiche di un linguaggio.
Aggiungi e rimuovi quando vuoi
Una categoria è un punto di partenza, non un impegno. Usa ciò che si adatta al progetto adesso e cambialo in qualsiasi momento per chiave, con write add e write remove. --categories senza valore apre in un terminale un selettore interattivo (spazio per selezionare, invio per confermare, vuoto per saltare). Fuori da un terminale, passa le categorie dopo l'opzione.
- Aggiungi
- Rimuovi
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
Il primo write add o write remove parte da owasp, quindi rimuovere tutte le categorie lascia un elenco vuoto, mai quello predefinito. Ogni modifica finisce in .lagune/configs.json, così tutto il team lavora con lo stesso insieme.
Guarda cosa usa un progetto
read list --categories mostra ogni categoria e se il progetto la usa:
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.
Consulta il Catalogo per sapere quali specializzazioni porta ogni categoria. Le tue specializzazioni, scritte con /lagune-specialize, entrano nel catalogo qualunque siano le categorie.
Domande frequenti
Passa la chiave della categoria a --categories, per esempio npx lagune write add --categories javascript. Anche il charter registra le categorie che la sua lettura del progetto giustifica, finché non ne è registrata nessuna.
Sì. Elencale sulla stessa riga, una dopo l'altra.
Inizia con owasp, quella predefinita, poi aggiungi quella del tuo linguaggio o del tuo stack. Le specializzazioni si caricano solo su richiesta, quindi una categoria non costa nulla finché una fase non ha bisogno di una delle sue specializzazioni.
