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.
  • ThreadLocal sin remove().
  • 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.
  • SimpleDateFormat está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.