
isms-builder v1.37.2
Sistema de Gestión de Seguridad de la Información auto-alojado — ISO 27001, NIS2, GDPR/DSGVO, BSI IT-Grundschutz

ISMS Builder
Sistema de gestión de seguridad de la información autoalojado: código abierto, sin necesidad de nube
⚠️ Advertencia de seguridad: repositorios falsos y copias que distribuyen malware
ISMS Builder no tiene «lanzamientos» empaquetados, instaladores ni archivos ZIP descargables: la única fuente legítima es este repositorio, clonado o descargado directamente desde GitHub como código fuente. Somos conscientes de al menos un repositorio malicioso que suplanta a este proyecto (README falso, botón de «Descargar» falso que enlaza a un ZIP disfrazado de captura de pantalla, que contiene un cargador de malware para Windows — cadena de carga
.cmd→.exe→ DLL de Lua). No descargue ni ejecute ningún ZIP/instalador/exe de «isms_builder» desde ningún sitio que no sea este repositorio. Si encuentra un repositorio o sitio sospechoso que suplante a este proyecto, abra un issue o una discusión para que podamos marcarlo.
Estado: desarrollo activo: aún no es un producto terminado. Los módulos principales son funcionales y están en uso, pero algunas funciones están incompletas y la plataforma sigue creciendo. Las contribuciones, los comentarios y las pruebas en entornos reales son muy bienvenidos; precisamente por eso se publicó como código abierto.
¿Qué es ISMS Builder?
ISMS Builder es una plataforma web autoalojada para gestionar un Sistema de Gestión de Seguridad de la Información (ISMS). Cubre todo el ciclo de vida del cumplimiento normativo — desde la redacción de políticas hasta la evidencia de auditoría — para ISO 27001:2022, NIS2, GDPR/DSGVO, BSI IT-Grundschutz y otros marcos.
Sin nube. Sin cuotas SaaS. Sus datos permanecen en su servidor.
Diseñado para pymes, equipos de TI y consultores que necesitan una herramienta ISMS real sin un contrato de proveedor de cinco cifras.
Uso Previsto y Alcance
Este proyecto comenzó como una herramienta de trabajo para un solo profesional del ISMS y creció a partir de ahí. Es de código abierto porque el trabajo puede ser útil para otros — no porque sea un producto comercial encubierto. Ser explícito al respecto le ayuda a decidir si se ajusta a su situación.
Para qué está hecho. Un equipo pequeño de ISMS — a menudo una sola persona, a veces unas pocas — que redacta y mantiene la documentación de un sistema de gestión: políticas, riesgos, activos, controles, evidencia. Se espera que el número de personas que necesitan una cuenta siga siendo reducido. Llegar a un público amplio funciona sin cuentas: los acuses de recibo de políticas se envían como enlaces basados en tokens, de modo que los destinatarios leen y confirman un documento sin iniciar sesión y sin aparecer en ninguna lista de usuarios.
Qué espera de usted. ISMS Builder es autoalojado y todo lo que ello conlleva es suyo: despliegue, TLS, endurecimiento, copias de seguridad, actualizaciones, control de acceso y las obligaciones de protección de datos de todo lo que almacene en él. El proyecto incluye una configuración predeterminada razonable, no un servicio gestionado.
Qué no es. No existe una oferta SaaS alojada, ni contrato de soporte comercial, ni acuerdo de nivel de servicio. No es un producto de alojamiento multiinquilino. No le certifica frente a ningún estándar y no es asesoramiento legal — le ayuda a organizar y evidenciar el trabajo, pero la evaluación sigue siendo suya y de su auditor.
Quién lo mantiene. Una persona, además de un trabajo a tiempo completo. Los issues y las discusiones se leen y responden, normalmente en pocos días; los informes de seguridad tienen prioridad. Las solicitudes de funciones son bienvenidas y de verdad moldean la hoja de ruta, pero compiten por unas noches limitadas. Si su organización depende de un calendario fijo o de una respuesta garantizada, lo honesto es recomendar un proveedor comercial — y eso no es un motivo para evitar el proyecto, solo un motivo para planificar con realismo.
Capturas de Pantalla
| Inicio de sesión | Panel de control |
|---|---|
![]() | ![]() |
| Declaración de Aplicabilidad | Gestión de Riesgos |
|---|---|
![]() | ![]() |
| GDPR y Protección de Datos | Gestión de Activos |
|---|---|
![]() | ![]() |
| Guidance y Documentación | Informes |
|---|---|
![]() | ![]() |
Ejecute
npm starty abrahttps://localhost:3000para explorar localmente el conjunto completo de datos de demostración.
Resumen de Funcionalidades
| Módulo | Descripción | Estándares |
|---|---|---|
| Gestión de Políticas | CRUD de plantillas, versionado, ciclo de vida (borrador → revisión → aprobado → archivado), jerarquía de espacios, adjuntos | ISO 27001 §5 |
| Declaración de Aplicabilidad | 313 controles en 8 marcos, edición en línea, análisis de brechas, mapeo cruzado | ISO 27001 A / BSI / NIS2 / EUCS / EUAI / ISO 9001 / CRA |
| Gestión de Riesgos | Registro de riesgos, planes de tratamiento, rol de auditor | ISO 27001 §6.1 |
| Objetivos de Seguridad | Seguimiento de KPI con barras de progreso, integración de calendario | ISO 27001 §6.2 |
| GDPR y Privacidad | VVT, contratos AV, DSFA, TOMs, cola DSAR, temporizador de 72 h, registro de borrado con alertas de correo | DSGVO Art. 13–35 |
| Gestión de Activos | Registro de activos, tipos de activos editables, objetivos de protección (CIA + autenticidad) con herencia por dependencias, niveles de clasificación, seguimiento de fin de vida útil (EoL) | ISO 27001 A.5.9–5.12 |
| BCM / BCP | Análisis de Impacto en el Negocio, planes de continuidad, ejercicios | ISO 27001 A.5.29–5.30 / NIS2 |
| Registros de Formación | Catálogo de formación, seguimiento de finalización, carga de certificados | ISO 27001 A.6.3 |
| Gestión de Proveedores | Registro de proveedores, programación de auditorías, evaluación de riesgos | ISO 27001 A.5.19–5.22 |
| Legal y Contratos | Contratos, NDAs, políticas de privacidad, calendario de vencimientos | |
| Buzón de Incidentes | Bandeja de entrada del CISO + formulario público de notificación (sin inicio de sesión) | NIS2 / BSI |
| Gobernanza | Revisiones de la dirección, seguimiento de acciones | ISO 27001 §9.3 |
| Informes | Matriz de cumplimiento (Control × Entidad), informe de brechas, ciclos de revisión, exportación CSV | |
| Hallazgos de Auditoría | Registro de hallazgos (IST→SOLL→Riesgo→Recomendación), planes de acción, seguimiento de gravedad/estado, ref. FIND-YYYY-NNNN | ISO 27001 §9.2 |
| Trazabilidad | Cada registro enlaza con controles SoA y documentos de políticas: bidireccional | |
| Búsqueda Semántica | Búsqueda local con IA mediante Ollama (nomic-embed-text) con respaldo por palabras clave | |
| Multi-Entidad | Árbol de estructura corporativa, aplicabilidad por entidad para controles y políticas | |
| Interfaz Multilingüe y Datos de Demo | Interfaz y contenido de demostración completos en 🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL; el administrador controla los idiomas disponibles |
⚠ IMPORTANTE: Los controles ISO requieren instalación manual por parte del administrador
ISO 27001:2022, ISO 9000:2015 e ISO 9001:2015 son estándares protegidos por derechos de autor publicados por la Organización Internacional de Normalización (ISO, © ISO). Las definiciones de controles (títulos, descripciones, texto de requisitos) no están incluidas en este software y no deben redistribuirse sin una licencia ISO válida.
Qué significa esto en la práctica: Los módulos SoA de ISO 27001, ISO 9000 e ISO 9001 se distribuyen sin contenido de controles. El administrador debe importar manualmente los controles antes de que estos marcos sean utilizables:
- Obtenga una copia con licencia del estándar en iso.org o en un organismo nacional autorizado
- Prepare un archivo JSON con sus definiciones de controles (formato documentado en
scripts/import-iso-controls.sh) - Ejecute el script de importación:
bash scripts/import-iso-controls.sh path/to/iso-controls.json - Reinicie el servidor de ISMS Builder
Marcos incluidos de serie (sin licencia ISO): BSI IT-Grundschutz, EU NIS2, EUCS, EU AI Act y CRA se basan en legislación de la UE disponible públicamente y en publicaciones federales alemanas, y están totalmente preinstalados.
Operar los módulos de marcos ISO sin una licencia válida del estándar correspondiente es responsabilidad exclusiva del operador. El proyecto ISMS Builder y sus colaboradores no aceptan ninguna responsabilidad por el uso sin licencia de contenido protegido por ISO.
Inicio Rápido
git clone https://github.com/coolstartnow/isms-builder.git
cd isms-builder
npm install
cp .env.example .env # set JWT_SECRET to a long random string
npm start # http://localhost:3000
Inicie sesión con [email protected] / adminpass. En el primer inicio de sesión se le pedirá que elija el idioma de los datos de demostración (🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL) o que comience con un sistema vacío. Cambie la contraseña del administrador inmediatamente después.
Para uso en producción con HTTPS:
# .env
JWT_SECRET=your-very-long-random-secret
STORAGE_BACKEND=json
SSL_CERT_FILE=/etc/ssl/certs/your.crt
SSL_KEY_FILE=/etc/ssl/private/your.key
¿Va a pasar a producción después de evaluar con datos de demostración? Ejecute la herramienta interactiva de preparación para producción en lugar de empezar desde una instalación nueva: elimina el contenido de demostración/prueba módulo por módulo (o todo a la vez), de modo que los datos reales que ya haya introducido (p. ej. riesgos, activos) no tengan que volver a introducirse:
bash stop.sh
node scripts/prepare-production.js
bash start.sh
Siempre crea una copia de seguridad (data.bak.<timestamp>/, junto a su directorio data/) antes de
cambiar nada, y nunca toca STORAGE_BACKEND — a diferencia de la acción de administración "Demo Reset"
de la aplicación, que está pensada para la instancia de demostración y sigue cambiando a sqlite por razones
históricas (ver Issue #42).
Docker
docker compose up -d --build
# App runs at http://localhost:3000
Requisitos
- Node.js 18+ (probado: 18, 20, 22)
- npm 9+
- (Opcional) Docker + Docker Compose
- (Opcional) Ollama para la búsqueda semántica local con IA
Configuración (.env)
| Variable | Predeterminado | Descripción |
|---|---|---|
JWT_SECRET | (obligatorio) | Secreto para la firma JWT: use 32+ caracteres aleatorios |
PORT | 3000 | Puerto de escucha HTTP/HTTPS |
STORAGE_BACKEND | json | json (dev/demo) o sqlite (producción) |
SSL_CERT_FILE | — | Ruta al certificado TLS → habilita HTTPS |
SSL_KEY_FILE | — | Ruta a la clave privada TLS |
DATA_DIR | ./data | Sobrescribe el directorio de datos (volúmenes Docker) |
SMTP_HOST | — | Servidor SMTP para alertas de correo |
SMTP_PORT | 587 | Puerto SMTP |
SMTP_USER | — | Nombre de usuario SMTP |
SMTP_PASS | — | Contraseña SMTP |
SMTP_FROM | — | Dirección del remitente para notificaciones |
Arquitectura
server/
index.js — Express app setup, router mounts
auth.js — JWT auth, RBAC ranks, session
routes/ — 17 Express route modules (one per domain)
db/ — Data stores (jsonStore / sqliteStore / orgSettingsStore / …)
ai/ — Semantic search (embedder, embeddingStore, lexicalSearch)
reports.js — Report generation logic
ui/
index.html — SPA shell (Atlassian Dark Theme)
app.js — All render functions, ~6000 lines vanilla JS
style.css — CSS variables, dark theme
data/ — JSON files / SQLite DB (gitignored)
docs/
ISMS-build-documentation.md — Full architecture reference
architecture/ — C4 diagrams, data model, OpenAPI 3.0.3 spec
tests/ — Jest + Supertest (176 tests, --runInBand)
- Autenticación: cookie JWT (
sm_session), contraseñas bcrypt, 2FA TOTP (exigible en toda la organización) - RBAC:
reader→editor/dept_head→contentowner/auditor→admin - Persistencia: archivos JSON (predeterminado/demo) o SQLite mediante
better-sqlite3 - IA: Ollama local opcional (nomic-embed-text); la búsqueda por palabras clave está siempre disponible como alternativa
- Registro de auditoría: cada acción de creación/actualización/eliminación/inicio de sesión queda registrada, es filtrable y exportable
Consulte docs/architecture/ para los diagramas C4, el modelo de datos completo y la especificación OpenAPI 3.0.3 (más de 80 endpoints).
Ejecución de Pruebas
Nota: El conjunto de pruebas en
tests/son las pruebas de desarrollo personales del autor y se incluyen junto al proyecto por transparencia. No forman parte de la aplicación en sí y no son necesarias para ejecutar la aplicación. Las pruebas cubren el comportamiento interno de la API y utilizan credenciales de prueba fijas que solo existen en el entorno de pruebas aislado — no guardan relación con ningún dato de producción ni de demostración.
npm test # runs all 423 tests
npm run preflight # exactly what CI gates on (tests + pinning + audit)
npm test -- --verbose # with test names
Las pruebas usan un directorio temporal aislado: no se toca ningún dato de producción.
Contribuciones
¡Las contribuciones son muy bienvenidas! Consulte CONTRIBUTING.md para:
- Configuración de desarrollo (5 minutos hasta la primera ejecución de pruebas)
- Estilo de código y convenciones
- Cómo abrir un buen issue o PR
¿Ha encontrado un problema de seguridad? Por favor, no abra un issue público: utilice la notificación privada de vulnerabilidades. SECURITY.md describe el alcance, la protección de buena fe y qué esperar de forma realista.
Los buenos primeros issues están etiquetados como good first issue en el rastreador de issues.
Hoja de Ruta
| Estado | Funcionalidad |
|---|---|
| ✅ Completado | Búsqueda semántica (Ollama / nomic-embed-text) |
| ✅ Completado | Backend SQLite, Docker, CI/CD |
| ✅ Completado | Alertas de correo del registro de borrado GDPR |
| ✅ Completado | Paquetes de demostración multilingües (DE / EN / FR / NL) |
| ✅ Completado | Módulo de Hallazgos de Auditoría con planes de acción (V 1.37.2.0) |
| ✅ Completado | Traducciones de Guidance FR/NL + configuración de idioma por el administrador (V 1.37.2.0) |
| ✅ Completado | Backend MariaDB/MySQL (STORAGE_BACKEND=mariadb, V 1.37.2.1) |
| ✅ Completado | Escáner → borrador de riesgo (importación XML + PDF de Greenbone/OpenVAS, V 1.37.2.0) |
| ✅ Completado | Acuse de recibo de políticas — el personal confirma las políticas digitalmente con rastro de auditoría (V 1.37.2.0) |
| ✅ Completado | CRUD de Guidance — crear, editar y subir documentación propia (V 1.37.2.0) |
| ✅ Completado | Búsqueda en Guidance — búsqueda de texto completo entre categorías con extracto (V 1.37.2.0) |
| ✅ Completado | Objetivos de protección de activos — CIA + autenticidad (1–4), dependencias y herencia por el principio del máximo de BSI (V 1.37.2.0) |
| ✅ Completado | Lista de verificación de gobernanza NIS2 Art. 21 (30 elementos) y plazos de notificación del Art. 23 con alertas automáticas (V 1.37.2.0) |
| 🔜 Siguiente | Asistente de políticas con IA: Ollama redacta el contenido de la política a partir del título + marco |
| 🔜 Siguiente | Informes programados: informe de cumplimiento semanal/mensual enviado por correo |
| 🔜 Siguiente | Backend PostgreSQL |
| 🔜 Siguiente | Detección de anomalías en el registro de auditoría (lote LLM) |
| 🚀 Más adelante | Puntuación de riesgo cuantitativa (valores en €, inspirada en FAIR) |
| 🚀 Más adelante | Portal de colaboración para auditores: acceso externo de solo lectura para auditores |
| 🚀 Más adelante | Integración con ownCloud / Nextcloud |
| 🚀 Más adelante | Análisis de brechas de políticas (LLM) |
| 🏁 V 2.x | Categorías de Guidance configurables: los administradores definen categorías personalizadas (p. ej. flujos de trabajo, documentos de la organización) |
Sobre el Autor
Claude Hecker lleva más de 35 años trabajando en TI. Tras unos 15 años como CIO, pasó a desempeñar los roles de CISO y Delegado de Protección de Datos (DSO/DSB). Durante su carrera ha diseñado e implementado infraestructura de TI a nivel empresarial y conectividad de red de área amplia (VPN, MPLS) para una gran corporación europea — responsable de operaciones fiables y seguras en múltiples sedes y jurisdicciones.
ISMS Builder surgió directamente de esa experiencia: construir y mantener un ISMS conforme en el mundo real, a través de auditorías reales, con presión regulatoria real. La herramienta refleja lo que los profesionales realmente necesitan — no lo que un gestor de producto cree que necesitan.
¿Por qué código abierto? Las pymes merecen acceso a una plataforma ISMS adecuada sin cuotas de licencia de cinco cifras. El esfuerzo de puesta en marcha es real independientemente de la herramienta que elija — pero ese coste no debería verse agravado por la dependencia del proveedor ni por la salida de sus datos de su propia infraestructura. Este proyecto defiende la libertad del software y el principio de que sus datos de cumplimiento le pertenecen.
Aviso de Referencia a Estándares
Este software hace referencia a identificadores de controles y títulos abreviados de estándares publicados únicamente con fines de interoperabilidad y gestión del cumplimiento normativo.
- ISO/IEC 27001, ISO 9000, ISO 9001 son estándares publicados por la
Organización Internacional de Normalización (ISO). Las definiciones de controles
de estos estándares no están incluidas en esta distribución de software —
los derechos de autor de ISO no permiten la redistribución del texto de los controles. Los usuarios deben
aportar su propio archivo JSON (consulte la sección anterior y
scripts/import-iso-controls.sh). Los estándares deben obtenerse en ISO o en un distribuidor nacional autorizado. - El material de BSI IT-Grundschutz es publicado por la Oficina Federal Alemana de Seguridad de la Información (BSI) y está disponible gratuitamente en bsi.bund.de.
- NIS2, CRA, EUCS, EU AI Act son actos legislativos de la UE y están disponibles públicamente a través de eur-lex.europa.eu.
Licencia
Copyright (C) 2026 Claude Hecker
Este programa es software libre licenciado bajo la GNU Affero General Public License v3.0.
Si ejecuta una versión modificada como servicio de red, debe poner el código fuente completo a disposición de los usuarios de ese servicio (AGPL §13).
Este proyecto incluye componentes de terceros bajo licencias MIT, BSD-2-Clause y Apache-2.0. Consulte THIRD-PARTY-LICENSES.md para ver la atribución completa y los textos de licencia.






