Especializaciones

Categorías

Las categorías de especializaciones que puede usar un proyecto de Lagune, desde OWASP hasta el bastionado por lenguaje para JavaScript, Python, Go y Rust, y cómo cambiarlas.

Lagune agrupa sus especializaciones integradas en 13 categorías. Las categorías que usa un proyecto deciden qué integradas entran en su catálogo, y se dividen en dos grupos: qué hace el sistema y en qué está escrito.

Mientras no haya ninguna categoría registrada, un proyecto usa solo owasp. /lagune-charter registra cada categoría que respalda su lectura del proyecto, y tú puedes cambiarlas cuando quieras.

Qué hace el sistema​

CategoríaClaveQué bastiona
OWASPowaspLos riesgos de seguridad de aplicaciones que sigue OWASP: inyección, pérdida de control de acceso y fallos de autenticación y criptográficos
InfraestructurainfraConfiguración de contenedores, cargas de trabajo y serverless: Dockerfile, Compose, seguridad de Pods, IAM y disparadores de FaaS
IA / LLMaiIntegraciones de IA y LLM, frente a la inyección de prompts y a conexiones inseguras de herramientas, agentes, recuperación (retrieval) y MCP
LovablelovableApps de Supabase generadas por IA (Lovable y similares): huecos en RLS, claves service_role filtradas y valores por defecto inseguros

En qué está escrito​

CategoríaClaveQué bastiona
JavaScriptjavascriptRCE con eval y child_process, recorrido de directorios y contaminación de prototipos, en todos sus entornos de ejecución
PythonpythonRCE por deserialización con pickle y YAML, recorrido de atributos con str.format y contaminación de clases
RustrustAPIs unsafe que no son sólidas, mal uso de transmute, desbordamiento de enteros y comportamiento indefinido en la frontera FFI
C / C++c-cppFallos de cadenas de formato, desbordamientos de búfer y escrituras fuera de límites que permiten ejecutar código
PHPphpEvasión de la autenticación por type juggling, cadenas de gadgets de inyección de objetos y configuraciones por defecto inseguras
GogoFallos de interfaces typed nil, carreras de datos entre goroutines y concurrencia insegura en código crítico para la seguridad
JavajavaCadenas de gadgets de deserialización con ObjectInputStream que acaban en ejecución remota de código
RubyrubyCadenas de gadgets de deserialización con Marshal.load y YAML que llegan a la ejecución remota de código
.NET / C#dotnetRCE por deserialización con BinaryFormatter y las formas de eludir el codificador que llevan a XSS
consejo

Lagune es independiente del lenguaje: todo el flujo lee tu proyecto esté escrito en lo que esté, y estas categorías solo profundizan en los escollos propios de un lenguaje concreto.

Añade y quita cuando quieras​

Una categoría es un punto de partida, no un compromiso. Usa las que encajen con el proyecto ahora y cámbialas cuando quieras por su clave, con write add y write remove. En un terminal, --categories sin valor abre un selector interactivo (espacio para marcar o desmarcar, Intro para confirmar, vacío para omitir). Fuera de un terminal, pon las categorías justo después.

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

El primer write add o write remove parte de owasp, así que quitar todas las categorías deja una lista vacía, nunca el valor por defecto. Cada cambio queda en .lagune/configs.json, de modo que todo el equipo trabaja con el mismo conjunto.

Consulta qué usa un proyecto​

read list --categories muestra todas las categorías y si el proyecto usa cada una:

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 el Catálogo para ver qué especializaciones incluye cada categoría. Tus propias especializaciones, escritas con /lagune-specialize, se suman al catálogo sean cuales sean las categorías.

Preguntas frecuentes

Pasa la clave de la categoría a --categories, por ejemplo npx lagune write add --categories javascript. Mientras no haya ninguna registrada, el charter también registra las categorías que respalda su lectura del proyecto.

Sí. Escríbelas en la misma línea, una detrás de otra.

Empieza por owasp, la categoría por defecto, y después añade la de tu lenguaje o tu stack. Las especializaciones solo se cargan bajo demanda, así que una categoría no cuesta nada hasta que una fase necesita alguna de sus especializaciones.