Documentación / Seguridad
Centro de seguridad
Análisis local de dependencias, código, fugas de memoria y condiciones de carrera, sin enviar tu código a ningún lado.
El Centro de seguridad hace un análisis local del proyecto, sin enviar tu código a ningún lado. Las fuentes en línea y la revisión con IA son opcionales y se activan aparte.
Cómo se abre
- Riel derecho → Más herramientas → Centro de seguridad («Hallazgos y secretos»).
- Paleta de comandos (
Ctrl+Shift+A): Centro de seguridad (vulnerabilidades, fugas, carreras). - Desde la pestaña Prevención del panel Calidad.
Pulsa Analizar proyecto la primera vez y Volver a analizar después de cambios.
Pestañas
| Pestaña | Qué muestra |
|---|---|
| Resumen | El estado general y los hallazgos más importantes. |
| Dependencias | Librerías con vulnerabilidades conocidas o sin soporte. |
| Código | Vulnerabilidades en el código del proyecto. |
| Memoria y concurrencia | Fugas de recursos y condiciones de carrera. |
| Licencias | Licencias de las dependencias. |
| Revisión con IA | Un análisis opcional con el modelo, que activas tú con Análisis con IA. |
Dependencias
Fuentes de vulnerabilidades
En Opciones → Fuentes de vulnerabilidades:
| Fuente | Estado | Qué envía |
|---|---|---|
| Base local de Yuli | Siempre activa | Nada. Funciona sin conexión, con CVE conocidos de librerías Java comunes (Struts, Log4j, commons, Spring, Jackson…), componentes sin soporte y licencias. |
| OSV.dev | Apagada por defecto | Solo grupo, artefacto y versión de cada dependencia. |
| OWASP Dependency-Check | Opcional | Usa una instalación local. |
Con solo la base local, el análisis es completamente offline. Activa OSV.dev si quieres consultar además GitHub Advisory y NVD.
Alcance
- Incluir código de pruebas.
- Incluir jars del servidor.
Código
El análisis de código cubre Java, JSP, web.xml y los descriptores de Hibernate.
| Categoría | Ejemplos |
|---|---|
| Inyección | SQL armado con datos del request. |
| XSS | Salida sin escapar en JSP o servlets. |
| Deserialización insegura | Objetos leídos de fuentes no confiables. |
| XXE | Parsers XML sin protección. |
| Criptografía débil | Algoritmos obsoletos. |
| TLS | Gestores que confían en cualquier certificado. |
| Redirecciones abiertas | Destinos tomados del request. |
| Secretos | Credenciales escritas en el código o impresas en logs. |
Un modelo de contaminación (taint) por método sigue los valores que vienen del request (getParameter, getHeader, cookies) y de los ActionForm de Struts. Cuando un hallazgo recibe datos del usuario, sube su confianza y su severidad.
Memoria y concurrencia
Fugas
- Conexiones JDBC o streams sin cerrar.
ThreadLocalsinremove().- Cachés estáticas que crecen sin límite.
- Hilos que nunca se detienen.
Condiciones de carrera
- Estado compartido en Servlets, Actions de Struts y singletons.
SimpleDateFormatestático.- Double-checked locking.
- Patrones check-then-act.
Para confirmar una fuga en ejecución, usa el panel JVM: un histograma de memoria repetido muestra qué clases crecen. Ver Ejecutar y depurar.
Dónde se guardan los reportes
En la carpeta .yuli/security/ del proyecto, que Yuli excluye de Git.
Prevención en el editor
Además del Centro de seguridad, Yuli revisa cada archivo en vivo mientras escribes y después de cada edición del agente: OWASP Top 10, CWE, rendimiento, robustez y accesibilidad. Los hallazgos aparecen subrayados con su referencia y cómo corregirlos. Ver Medición contra N−1.
SBOM y cadena de suministro
La lista de materiales (SBOM) se genera en el Centro de Gobierno, pestaña Cadena de suministro, con Escribir SBOM. Formatos: CycloneDX 1.5 JSON y SPDX 2.3 JSON. Ver Gate y Centro de Gobierno.
Con el agente
El agente puede consultar el Centro de seguridad con las herramientas yuli_security_center y yuli_security_scan, y proponer correcciones que pasan por la ventana de cambios como cualquier otra.