Saltar al contenido
← Volver a proyectos
risk-check catching a review set too far away and an acceptance signed by the wrong authority, then validating the register
Proyecto personal

Matriz de evaluación de riesgos — registro metódico

Un registro de riesgos que sigue un método escrito — ISO/IEC 27005:2022 o EBIOS Risk Manager — y se verifica a sí mismo: puntuaciones, tratamiento, aceptación formal por la autoridad correcta y revisiones, con informes, importación/exportación CSV segura e interfaz web

Contexto

Reconstruí este proyecto desde cero, en sustitución de dos prototipos anteriores (una matriz de riesgos en inglés y su reconstrucción en francés). El objetivo: un registro de riesgos que una pyme pueda defender ante su dirección o un auditor ISO/IEC 27001. El método — escalas, matriz, apetito, autoridades de aceptación — se escribe en un archivo y se valida; después, cada riesgo se comprueba automáticamente con él. Atelier Lumen, la empresa ficticia de mi ejercicio de simulación de respuesta a incidentes, aporta los registros de ejemplo.

Contenido del repositorio

  • Un formato de método en TOML, bilingüe, con dos preajustes: 5×5 probabilidad × impacto (ISO/IEC 27005:2022) y EBIOS RM 4×4 (probabilidad V1–V4 × gravedad G1–G4, ANSSI 1.5)
  • Un formato de registro: activos, amenaza, vulnerabilidad, riesgo inherente y residual, medidas previstas, tratamiento (reducir, aceptar, transferir, evitar), aceptación formal, revisión, historial
  • Referencias en cada riesgo y medida: controles del anexo A de ISO/IEC 27001:2022 (solo números), técnicas MITRE ATT&CK y el playbook de respuesta a incidentes correspondiente
  • Cuatro comandos: risk-check (verificación), risk-report (Markdown y HTML), risk-export (JSON, CSV) y risk-import (CSV a TOML)
  • Una guía de evaluación y los registros de ejemplo de Atelier Lumen, en francés e inglés

Reglas verificadas automáticamente

  • Un método coherente: matriz monótona, todos los niveles usados, una autoridad de aceptación para cada nivel por encima del apetito, revisiones más frecuentes para los riesgos más graves
  • Riesgo residual nunca superior al inherente sin justificación
  • Aceptación formal obligatoria cuando el riesgo residual sigue por encima del apetito y ya nada está en curso para reducirlo (ISO/IEC 27001, 6.1.3) — firmada por la autoridad prevista en el método, por su duración máxima
  • Próxima revisión dentro de la frecuencia del nivel residual; historial cronológico
  • Errores (datos no válidos) separados de los avisos (medida o revisión atrasada, aceptación vencida); --strict hace que los avisos bloqueen

Decisiones de seguridad

  • Exportación CSV protegida contra la inyección de fórmulas (CWE-1236): las celdas que empiezan por =, +, -, @ se neutralizan, y la protección se retira al importar
  • Importaciones limitadas en tamaño y filas, UTF-8 obligatorio, ningún archivo sobrescrito sin --force
  • Informe HTML en un solo archivo sin script: todo el texto escapado, CSP que solo autoriza su propia hoja de estilo mediante un hash SHA-256
  • Registros reales excluidos de Git por convención de nombres; la interfaz web lee un archivo en local, sin enviarlo ni conservarlo nunca

Interfaz web

  • Carga de los registros de ejemplo o de una exportación JSON local, validada por completo antes de mostrarse (tipos, fechas, colores, coherencia con la matriz)
  • Resumen de riesgos activos, por encima del apetito, medidas y revisiones atrasadas, aceptaciones vencidas
  • Mapas de calor interactivos del riesgo inherente y residual, filtros (nivel, responsable, tratamiento, búsqueda sin acentos) y ficha detallada de cada riesgo
  • Plan de acción y calendario de revisiones; francés e inglés, temas claro y oscuro, teclado y móvil, CSP estricta

Calidad de ingeniería

240
Pruebas automatizadas
216 Python + 24 web
7
Jobs de CI
Windows + Linux, Python 3.11/3.14, Ruff, registros, interfaz web
2
Preajustes de método
5×5 y EBIOS RM 4×4
0
Dependencias de ejecución

Uso

  1. 1
    Preparar
    Elegir un preajuste, adaptar las escalas y el apetito con la dirección y hacer validar el método por risk-check.
  2. 2
    Evaluar
    Describir cada riesgo (causa → evento → consecuencia) y puntuar su riesgo inherente; el nivel se lee en la matriz del método.
  3. 3
    Tratar y aceptar
    Planificar las medidas con responsables y plazos, puntuar el riesgo residual y hacer aceptar lo que queda por la autoridad designada.
  4. 4
    Revisar
    Revisiones y aceptaciones vencen a su ritmo; risk-check --strict y el informe señalan lo atrasado.

Capturas de pantalla

Web interface in French: summary cards and residual risk heat map