Proyecto interno

Gestión de vulnerabilidades

Liberio centraliza en una sola aplicación los datos de Qualys, conectándose vía API con VMDR y TruRisk para tener una fuente de datos común, con permisos por equipo, historial de cada cambio y un flujo de trabajo definido desde que aparece una vulnerabilidad hasta que se cierra.

Java 21 · Spring Boot React + Vite PostgreSQL 16 Docker IA local (Ollama)
liberio.local/vulnerabilidades
Equipo Infraestructura 4 fuera de SLA
Crítica
QID 91345 — OpenSSL desactualizado web-prod-03.corp.liberio.local
Alta
QID 38729 — Cabeceras HTTP inseguras api-gw-01.corp.liberio.local
Media
QID 105230 — Certificado próximo a caducar vpn-edge-02.corp.liberio.local
Erwin: tenéis 3 detecciones del QID 91345, todas en hosts de Infraestructura, ninguna con excepción activa.
Asistente de IA

Erwin: cómo responde a una pregunta

Disponible solo para Dirección. Pensado para no tener que ir a buscar los datos manualmente.

01

Se hace la pregunta

"¿Tengo este CVE?", "¿en cuántos activos está este QID?", "¿cuántas están pendientes?"

02

Se detecta el patrón

El backend reconoce si es un CVE, un QID, un recuento u otro tipo de consulta conocida.

03

Se ejecuta la consulta real

En Java, sobre la base de datos — el modelo no escribe ni ejecuta SQL por su cuenta.

04

El modelo solo redacta

Recibe el resultado ya calculado y lo convierte en una respuesta en lenguaje natural.

Dónde corre el modelo

El modelo de lenguaje se queda dentro de la organización

Erwin usa un modelo local, servido con Ollama, en el propio servidor o en un PC de la organización — no en un servicio externo. Ningún dato de vulnerabilidades sale hacia fuera para generar una respuesta.

Si el modelo no está disponible, Erwin no falla: muestra los datos ya calculados sin la parte conversacional.

Pregunta del usuario
Backend (Spring Boot)
↓ consulta ↓ resultado
PostgreSQL
Ollama (modelo local)

El modelo solo ve el resultado ya calculado, nunca la base de datos directamente.

Roles

Cada persona ve lo que le corresponde a su equipo

El acceso se concede explícitamente por rol y por equipo — nadie ve por defecto más de lo necesario.

Dirección

Ve el dashboard ejecutivo de todos los equipos, el motor de mejora continua, el chat con Erwin y la gestión de usuarios.

Seguridad
(CISO)

Aprueba, rechaza o pide más información sobre las solicitudes de excepción de toda la organización.

Técnico

Trabaja solo con las vulnerabilidades de su equipo: cambia estados, pide reasignación o excepción, adjunta documentos.

Equipo Qualys

Desbloquea las reasignaciones que se quedan atascadas entre equipos y prioriza QIDs a nivel global.

Funcionalidades

Qué hace la aplicación, módulo por módulo

Ciclo de vida de la vulnerabilidad

Listado y filtros

Por host, QID, título, severidad, estado, fuera de SLA o solo priorizadas. Agrupable por QID o por host.

Acciones en bloque

Sobre todo lo que cumple el filtro activo, no solo la página visible.

Estados

Pendiente, en curso, planificada (con RITM/CHG), excepción, cerrada.

SLA de 30 días

Se pausa automáticamente mientras hay una reasignación pendiente de respuesta.

Historial completo

Quién, cuándo y por qué en cada cambio.

Documentos adjuntos

Con deduplicado por contenido: un mismo informe no se guarda dos veces.

Flujo entre equipos

Reasignación

Puedes pasar una vulnerabilidad a otro equipo con el motivo por el que no es vuestra — pero no se transfiere sola: el equipo destino tiene que aceptarla.

Reasignaciones bloqueadas

Si una vulnerabilidad empieza a rebotar entre equipos sin que nadie la acepte, se bloquea automáticamente y pasa a una bandeja que gestiona el equipo Qualys.

Excepciones

Flujo con el equipo de Seguridad: se piden por aceptación de riesgo, falso positivo o reducción de riesgo, y Seguridad aprueba, rechaza o pide más información.

Visión de conjunto

Dashboard ejecutivo

Recuento por equipo: activas, críticas, fuera de SLA, QIDs distintos.

Continuous Improvement Engine

Detectores que corren cada noche sobre los datos reales — concentración de riesgo, excepciones repetidas, calidad de datos — y presentan hallazgos para aplicar o descartar.

Priorización global de QIDs

A nivel de QID, no detección por detección.

Seguridad

Medidas aplicadas en el código

Autenticación con JWT y contraseñas con BCrypt
Límite de intentos de inicio de sesión, por usuario y por IP
Permisos por ámbito: se conceden explícitamente, no por defecto
Consultas SQL siempre parametrizadas
Validación del contenido real de cada fichero subido
Registro de auditoría de cada cambio
Bloqueo optimista ante decisiones simultáneas
Pensada para un VPS propio, no una nube de terceros

Para verlo funcionando

La demo tiene datos de ejemplo cargados, con los cuatro roles disponibles para probar.

Accede a la demo