Volver al inicio

VulnPrio - Plataforma de Priorización de Vulnerabilidades

Plataforma SaaS de priorización inteligente de vulnerabilidades para PYMEs. Analiza dependencias vía SBOM, enriquece con 5 fuentes de vulnerabilidades, scoring determinístico + IA, compliance con NIS2 y ENS, integración CI/CD vía GitHub Action.

Mi rol

Arquitecto y desarrollador full-stack del sistema completo: monorepo Turborepo, API Express.js con 24 servicios, dashboard Next.js, base de datos PostgreSQL con 11 tablas, pipeline de 5 etapas, scoring determinístico + IA, compliance NIS2/ENS, billing Stripe, GitHub Action.

Impacto

Proyecto de fin de máster (PGPIVP). SaaS completo con multi-tenant, 4 tiers de billing, compliance con 2 marcos regulatorios (NIS2 + ENS), GitHub Action para CI/CD, y framework de evaluación con métricas Precision@K, NDCG@K y MRR.

Reto

Las PYMEs no pueden priorizar vulnerabilidades de forma efectiva. Las herramientas existentes son demasiado complejas, caras o no consideran el contexto del negocio. El 60% de las brechas en PYMEs se podrían haber evitado con priorización correcta. Además, NIS2 exige compliance que las PYMEs no saben cómo implementar.

Solución

Monorepo con Turborepo: API Express.js (24 servicios, 9 repositorios, DI vía composition root), Dashboard Next.js 14 (App Router, Tailwind, Recharts), PostgreSQL 16 (11 tablas, Drizzle ORM), Redis 7 (cache + BullMQ queue). Pipeline de 5 etapas: SBOM (Syft) -> Enrichment (OSV, NVD, GHSA, EPSS, CISA KEV) -> Scoring determinístico (CVSS 30% + EPSS 25% + criticality 25% + exposure 20% + KEV bonus) -> AI (Claude Sonnet con fallback) -> Persistencia. GitHub Action con security gates. Stripe billing (4 tiers). Multi-tenant con RBAC (4 roles). MFA TOTP. SSRF protection, command injection prevention.

Pipeline de priorización

  1. SBOM: Inventario de dependencias generado con Syft.
  2. Enriquecimiento: Cada vulnerabilidad se cruza con OSV, NVD, GHSA, EPSS y CISA KEV.
  3. Scoring determinístico: CVSS 30% + EPSS 25% + criticality 25% + exposure 20% + KEV bonus.
  4. IA: Claude Sonnet con fallback sobre los resultados del scoring.
  5. Persistencia: Guardado de los resultados priorizados.

Seguridad

  • Autenticación multifactor con TOTP
  • RBAC con 4 roles en entorno multi-tenant
  • Protección contra SSRF
  • Prevención de command injection
  • Contratos validados con Zod y valores por defecto fail-closed
  • Security gates en la GitHub Action de CI/CD

Arquitectura

Layered Architecture con DI: Presentation (Next.js) -> API (Express Routes) -> Service Layer (24 services) -> Repository Layer (9 interfaces) -> Data (PostgreSQL + Redis). Pipeline pattern para el scanner. Contract-first con Zod validation. Fail-closed security defaults.

Diagrama Entidad-Relación (ERD)

Modelo de datos de VulnPrio: 11 tablas PostgreSQL (Drizzle ORM).
Repositorio privado