Aplicacion web estatica para autoevaluacion de madurez alineada al Core del NIST Cybersecurity Framework (CSF) 2.0 (NIST.CSWP.29, febrero 2024). Incluye las 106 subcategorias oficiales del Anexo A, agrupadas en 10 fases de cuestionario (una pregunta por subcategoria).
Sitio de referencia (proyecto base ANCI / TTPSEC): https://ttpsecspa.github.io/ANCI/.
Despliegue publico (esta linea NIST CSF 2.0): https://nistcsf.uptlibre.pe (en build Docker/CI: NEXT_PUBLIC_SITE_URL; fallback en anci-advisor/src/lib/site.ts).
Repositorio: github.com/Jaech-02/nist-csf-maturity-assessment (la app Next.js esta en la carpeta anci-advisor).
- Uso / Quick Start
- Flujo de la aplicacion
- Controles evaluados (10 fases)
- Niveles de madurez
- Calculo descriptivo en resultados
- Marco de referencia
- Seguridad
- Caracteristicas
- Estructura del repositorio
- Instalacion, build y fuente normativa
- Clona el repositorio y entra a la carpeta de la app:
git clone https://github.com/Jaech-02/nist-csf-maturity-assessment.git cd nist-csf-maturity-assessment/anci-advisor npm install - Arranca en desarrollo:
npm run dev→ abre http://localhost:3000. - Recorre las 10 fases; en cada una responde Si / Parcial / No por cada subcategoria.
- En Resultados revisa el porcentaje global y por fase; descarga informe HTML o imprime a PDF.
Build estatico (produccion local): desde anci-advisor, npm run build → salida en out/.
┌──────────┐ ┌─────────────────────┐ ┌────────────┐
│ INICIO │────>│ 10 FASES (106 preg.) │────>│ RESULTADOS │
│ (Hero) │ │ GV→ID→PR→DE→RS→RC │ │ + informe │
└──────────┘ └─────────────────────┘ └────────────┘
│
v
┌─────────────────┐
│ TABLA CORE │
│ 106 subcats. │
└─────────────────┘
- Inicio: presentacion, badges de privacidad, enlace a la tabla completa del Core (
Core CSFen la navegacion cuando avanzas). - Fases: cada fase agrupa un subconjunto de subcategorias; la puntuacion de la fase es media ponderada de sus items.
- Resultados: recomendaciones segun umbral de madurez; nota breve sobre contexto organizacional del Core (p. ej. GV.OC); detalle por subcategoria al expandir cada fase.
Cada fila es una fase del cuestionario; el numero entre parentesis es la cantidad de subcategorias NIST en esa fase.
| Fase | Titulo | Alcance (resumen) |
|---|---|---|
| 1 | Gobernanza: contexto y estrategia de riesgo | GV.OC y GV.RM (12) |
| 2 | Gobernanza: roles, politica y supervision | GV.RR, GV.PO y GV.OV (9) |
| 3 | Gobernanza: cadena de suministro | GV.SC (10) |
| 4 | Identificar: activos y mejora | ID.AM e ID.IM (11) |
| 5 | Identificar: evaluacion de riesgos | ID.RA (10) |
| 6 | Proteger: identidad, datos y concientizacion | PR.AA, PR.AT y PR.DS (12) |
| 7 | Proteger: plataformas e infraestructura | PR.PS y PR.IR (10) |
| 8 | Detectar: monitoreo y analisis | DE.CM y DE.AE (11) |
| 9 | Responder: gestion y mitigacion de incidentes | RS.MA, RS.AN, RS.CO y RS.MI (13) |
| 10 | Recuperar: ejecucion y comunicacion | RC.RP y RC.CO (8) |
Total: 106 subcategorias (IDs como GV.OC-01, ID.AM-07, etc.). La numeracion con huecos es la del estandar NIST.
Base metodologica (10 controles C0–C9) y alineacion a NIST CSF 2.0, mas puente a las fases de la app: docs/NIST_CSF_MAPPING.md
La app calcula un porcentaje por fase (0–100) y un promedio global. Cada porcentaje se clasifica asi:
| Rango % | Etiqueta | Significado operativo |
|---|---|---|
| 0 – 25 | Critico | Acciones inmediatas en las subcategorias peor puntuadas. |
| 26 – 50 | Bajo | Brechas amplias frente al resultado esperado del Core en esa fase. |
| 51 – 75 | Medio | Base instalada; falta estandarizar y documentar evidencia. |
| 76 – 100 | Alto | Mantener, auditar y alinear con perfiles y Tiers CSF. |
Las recomendaciones mostradas (bajo/medio/alto de accion) dependen del tramo de puntuacion de cada fase (en codigo: critico/bajo usa tramo low, etc.).
En la pantalla de Resultados, por cada control (C0-C9), la app calcula indicadores descriptivos a partir de sus preguntas:
- Codificacion por respuesta:
Si = 2,Parcial = 1,No = 0.
Sin respuestano suma puntaje. - Promedio (0 a 2):
Promedio = (2*Si + 1*Parcial + 0*No) / totalPreguntasDelControl - Promedio (%):
Promedio% = (Promedio / 2) * 100 - Estado dominante: categoria con mayor frecuencia entre
Si,Parcial,No,Sin respuesta. - Riesgo visible (%):
Riesgo% = ((No + SinRespuesta) / totalPreguntasDelControl) * 100
Estos calculos son descriptivos para seguimiento operativo del control; no reemplazan una auditoria formal.
| Marco | Version | Uso en la herramienta |
|---|---|---|
| NIST Cybersecurity Framework (CSF) | 2.0 (NIST.CSWP.29, 2024) | Unico marco: Core (6 funciones, categorias y 106 subcategorias del Anexo A). |
No se integran otros marcos (ISO 27001, CIS, etc.) en esta version del producto.
- Sin backend: export estatico (
output: "export"); la logica corre en el navegador. - Sin recoleccion de datos: no hay envio de respuestas a servidor; no hay cookies ni analitica en la app.
- CSP-friendly: sin dependencias externas en runtime cargadas por CDN.
- Referrer:
no-referreren metadata (verlayout.tsx). - Alcance: herramienta educativa; no sustituye auditoria formal ni afiliacion con NIST.
- 106 subcategorias Core con outcome oficial (EN) y pregunta operativa (ES) en codigo sin acentos.
- Tabla Core completo en la UI con todas las filas del catalogo.
- Export HTML del informe y impresion a PDF desde el navegador.
- Version y fecha del producto en
src/lib/version.ts(actual 2.4; historial enCHANGELOG.md).
anci-advisor/ # app Next.js (export estatico)
├── src/
│ ├── app/ # UI (page.tsx, layout.tsx)
│ └── lib/
│ ├── csf-catalog.ts # 106 items + metadatos de fases
│ ├── data.ts # fases, niveles de madurez, VD/VI auxiliares
│ ├── site.ts # URL publica y prefijo de assets (env en build Docker)
│ └── version.ts
├── Dockerfile
├── next.config.ts
└── public/
Requisitos: Node.js 20+ (recomendado), npm.
git clone https://github.com/Jaech-02/nist-csf-maturity-assessment.git
cd nist-csf-maturity-assessment/anci-advisor
npm install
npm run devAbre http://localhost:3000.
cd anci-advisor
npm run buildSalida en anci-advisor/out/. Para imagen nginx + publicacion en Docker Hub, ver anci-advisor/Dockerfile y .github/workflows/docker-publish.yml. La URL publica en metadatos y compartir se define con NEXT_PUBLIC_SITE_URL en ese build (ver src/lib/site.ts).
- National Institute of Standards and Technology (2024). The NIST Cybersecurity Framework (CSF) 2.0. NIST CSWP 29. https://doi.org/10.6028/NIST.CSWP.29
La numeracion de subcategorias no es consecutiva (huecos propios del estandar).
Las 106 subcategorias y metadatos de fases viven en anci-advisor/src/lib/csf-catalog.ts (y la logica de preguntas en data.ts). Si cambias criterios, actualiza esos archivos y la tabla en docs/NIST_CSF_MAPPING.md.
MIT — ver LICENSE.
uptlibre
Sitio de referencia del fork: Asesor ANCI (TTPSEC).