Especializações

Categorias

As categorias de especializações que um projeto Lagune pode usar, do OWASP ao hardening por linguagem para JavaScript, Python, Go e Rust, e como alterá-las.

O Lagune agrupa as suas especializações nativas em 13 categorias. As categorias que um projeto usa decidem quais especializações nativas entram no catálogo dele, e elas se dividem em dois grupos: o que o sistema faz e em que ele é escrito.

Enquanto nenhuma categoria está registrada, o projeto usa apenas owasp. O /lagune-charter registra cada categoria que a leitura dele sobre o projeto justifica, e você mesmo pode alterá-las a qualquer momento.

O que o sistema faz​

CategoriaChaveO que ela protege
OWASPowaspOs riscos de segurança de aplicações que a OWASP acompanha: injection, controle de acesso quebrado, falhas de autenticação e de criptografia
InfraestruturainfraConfiguração de contêineres, workloads e serverless: Dockerfile, Compose, segurança de Pods, IAM e triggers de FaaS
IA / LLMaiIntegrações de IA e LLM, contra prompt injection e conexões inseguras de ferramentas, agentes, retrieval e MCP
LovablelovableApps Supabase gerados por IA (Lovable e similares): falhas de RLS, chaves service_role vazadas e padrões inseguros

Em que ele é escrito​

CategoriaChaveO que ela protege
JavaScriptjavascriptRCE por eval e child_process, path traversal e prototype pollution, em todos os seus runtimes
PythonpythonRCE por desserialização de pickle e YAML, travessia de strings com str.format e class pollution
RustrustAPIs unsafe incorretas, mau uso de transmute, integer overflow e comportamento indefinido na fronteira de FFI
C / C++c-cppBugs de format string, buffer overflows e escritas fora dos limites que permitem execução de código
PHPphpBypass de autenticação por type juggling, gadget chains de object injection e padrões de configuração inseguros
GogoBugs de interface com nil tipado, data races entre goroutines e concorrência insegura em caminhos de segurança
JavajavaGadget chains de desserialização com ObjectInputStream que culminam em execução remota de código
RubyrubyGadget chains de desserialização com Marshal.load e YAML que chegam à execução remota de código
.NET / C#dotnetRCE por desserialização com BinaryFormatter e os bypasses de encoder que levam a XSS
dica

O Lagune é independente de linguagem: o fluxo inteiro lê o seu projeto, seja qual for a linguagem dele, e essas categorias só acrescentam profundidade nas armadilhas específicas de uma linguagem.

Adicione e remova quando quiser​

Uma categoria é um ponto de partida, não um compromisso. Use o que serve ao projeto agora e altere quando quiser, pela chave, com write add e write remove. Em um terminal, --categories sem valor abre um seletor interativo (espaço para marcar ou desmarcar, enter para confirmar, nenhuma seleção para pular). Fora de um terminal, passe as categorias depois dele.

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

O primeiro write add ou write remove parte de owasp, então remover todas as categorias deixa uma lista vazia, nunca o padrão. Toda alteração vai para .lagune/configs.json, para que o time inteiro trabalhe com o mesmo conjunto.

Veja o que um projeto usa​

O read list --categories mostra todas as categorias e se o projeto usa cada uma delas:

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.

Veja o Catálogo para saber quais especializações cada categoria traz. As suas próprias especializações, escritas com o /lagune-specialize, entram no catálogo independentemente das categorias.

Perguntas frequentes

Passe a chave da categoria para --categories, por exemplo npx lagune write add --categories javascript. Enquanto nenhuma está registrada, o charter também registra as categorias que a leitura dele sobre o projeto justifica.

Sim. Liste todas na mesma linha, uma depois da outra.

Comece com owasp, o padrão, e depois adicione a da sua linguagem ou stack. As especializações carregam apenas sob demanda, então uma categoria não custa nada até que uma fase precise de uma das especializações dela.