Saltar al contenido
Volver a proyectos
Proyecto personal

risque360 — Modelado STRIDE, Riesgo de Proveedores y Recalibración por Incidentes

risque360 — Modelado STRIDE, Riesgo de Proveedores y Recalibración por Incidentes

Registro de riesgos unificado que combina tres fuentes bajo un mismo motor de puntuación Probabilidad × Impacto: modelado de amenazas STRIDE por componente de aplicación, riesgo de proveedores/terceros puntuado mediante una heurística transparente, y un registro de incidentes que sugiere una recalibración de probabilidad en una ventana móvil de 12 meses — nunca aplicada sin un clic explícito.

Contexto

risque360 amplía matrice-risques (a su vez una reconstrucción francesa del proyecto open source risk-assessment-matrix): un registro de riesgos clásico capta mal las amenazas propias de una arquitectura de aplicación, los riesgos que aportan los proveedores/terceros, y cómo un historial de incidentes debería modificar una probabilidad declarada «en frío». risque360 reúne estos tres ángulos en un único registro, con un mecanismo de recalibración de probabilidad impulsado por datos — la parte más diferenciadora del proyecto.

Los 4 módulos

  • Registro de riesgos organizacionales — mismo espíritu que matrice-risques (formulario manual, categorías de negocio)
  • Modelado de amenazas de aplicación (STRIDE) — para un componente dado (API Gateway, servicio de autenticación, base de datos...), genera un riesgo por categoría STRIDE: Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege
  • Registro de riesgos de proveedores/terceros — un proveedor (nivel de acceso, estado del cuestionario de seguridad, incidente conocido) genera automáticamente un riesgo, con una probabilidad inicial estimada mediante una heurística transparente — nunca impuesta, siempre editable
  • Registro de incidentes y recalibración — cada riesgo lleva una clave de correlación; los incidentes registrados bajo esa misma clave permiten calcular una probabilidad sugerida en una ventana móvil de 12 meses. La sugerencia nunca se aplica automáticamente — se requiere un botón «Aplicar» explícito

Algoritmo de recalibración

0-2 incidentes / 12 meses móviles
Sin ajuste
3-5 incidentes
Probabilidad +1 (tope 5)
6+ incidentes
Probabilidad +2 (tope 5)
Ejemplo validado por los tests
«Phishing — robo de credenciales» (probabilidad declarada 2/5): 4 incidentes relacionados en 12 meses → sugerencia 3/5, mostrada con un botón «Aplicar» explícito

Heurística de proveedores (transparente, editable)

Base
Acceso alto: 3 · medio: 2 · bajo: 1
+1
Si el cuestionario de seguridad no se ha completado
+1
Si el cuestionario es conforme con reservas
+1
Si hubo un incidente conocido en los últimos 12 meses
Tope
5

Error detectado y corregido durante el desarrollo

La generación automática de la clave de correlación (a partir del nombre de un proveedor o un componente STRIDE) no eliminaba la puntuación — por ejemplo, «PayGateway Inc.» generaba la clave fournisseur-paygateway-inc. con un punto final, lo que habría roto silenciosamente el enlace con los incidentes registrados bajo esa misma clave. Corregido con una función slugifier() compartida que elimina diacríticos y puntuación antes de generar la clave, verificada con una prueba directa del módulo en aislamiento (importación con cache-busting) para descartar cualquier efecto de caché de módulos ES durante la depuración.

Resultados

Stack
HTML/CSS/JS vanilla (módulos ES, sin dependencias) + CLI Python (argparse, Jinja2, pytest)
Tests
6 tests pytest — límites de nivel, heurística de proveedores, ventana de 12 meses, niveles de recalibración, no mutación de la vista previa, validación del conjunto de datos de ejemplo combinado
Paridad JS ↔ Python
Lógica de recalibración duplicada de forma idéntica en la CLI Python (recalibration.py), probada por separado
Interfaz
App con pestañas: Panel (mapa de calor + registro global), Registro, STRIDE, Proveedores, Incidentes