
isms-builder v1.37.1
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
📖 Wiki — Uso de imágenes Docker y variables de entorno, arquitectura y módulos, FAQ, contribuciones (DE/EN)
⚠️ 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 simple. Somos conscientes de al menos un repositorio malicioso que suplanta a este proyecto (README falso, botón falso de "Descargar" 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 lugar 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.
🛡️ Proyecto relacionado: NIS2 Quick-Check — una autoevaluación NIS2 gratuita e independiente (10 dominios × 5 preguntas, los 27 estados miembros de la UE, los 24 idiomas oficiales de la UE). Se ejecuta íntegramente en el navegador, sin backend, sin instalación. No forma parte de ISMS Builder ni es necesario para usarlo — solo una herramienta complementaria para una primera orientación rápida.
¿Qué es ISMS Builder?
ISMS Builder es una plataforma web autoalojada para gestionar un Sistema de Gestión de Seguridad de la Información (SGSI). Cubre todo el ciclo de vida del cumplimiento — 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 tarifas SaaS. Sus datos permanecen en su servidor.
Diseñado para pymes, equipos de TI y consultores que necesitan una herramienta SGSI real sin un contrato de proveedor de cinco cifras.
Uso previsto y alcance
Este proyecto comenzó como una herramienta de trabajo para un único profesional de SGSI y creció a partir de ahí. Es código abierto porque el trabajo puede ser útil para otros — no porque sea un producto comercial disfrazado. Ser explícito al respecto le ayuda a decidir si se ajusta a su situación.
Para qué está diseñado. Un equipo pequeño de SGSI — a menudo una sola persona, a veces un puñado — 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 pequeño. Llegar a una audiencia amplia 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 nunca, y sin aparecer en ninguna lista de usuarios.
Qué espera de usted. ISMS Builder es autoalojado, y todo lo que se deriva de ello es suyo: despliegue, TLS, endurecimiento, copias de seguridad, actualizaciones, control de acceso y las obligaciones de protección de datos para 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 días; los informes de seguridad tienen prioridad. Las solicitudes de funciones son bienvenidas y de verdad dan forma a la hoja de ruta, pero compiten por las pocas horas libres. Si su organización depende de un calendario fijo o de una respuesta garantizada, un proveedor comercial es la recomendación honesta — y eso no es una razón para evitar el proyecto, solo una razón 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 |
|---|---|
![]() | ![]() |
| Guía y documentación | Informes |
|---|---|
![]() | ![]() |
Ejecute
npm starty abrahttps://localhost:3000para explorar el conjunto de datos de demostración completo localmente.
Resumen de funciones
| 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, EIPD, TOM, cola de DSAR, temporizador de 72 h, registro de eliminación con alertas por correo | DSGVO Art. 13–35 |
| Gestión de activos | Registro de activos, tipos de activos editables, objetivos de protección (CIA + autenticidad) con herencia de dependencias, niveles de clasificación, seguimiento de fin de vida útil | ISO 27001 A.5.9–5.12 |
| BCM / BCP | Análisis de impacto empresarial, 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, NDA, políticas de privacidad, calendario de vencimientos | |
| Bandeja de incidentes | Bandeja del CISO + formulario público de notificación (sin necesidad de 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ítica — bidireccional | |
| Búsqueda semántica | Búsqueda IA local mediante Ollama (nomic-embed-text) con respaldo por palabras clave | |
| Multi-entidad | Árbol de estructura corporativa, aplicabilidad por entidad para controles y políticas | |
| UI multilingüe y datos de demostración | UI completa y contenido de demostración en 🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL; idiomas disponibles controlados por el administrador |
⚠ 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 los 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 para 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
bash scripts/import-iso-controls.sh path/to/iso-controls.json
- Reinicie el servidor de ISMS Builder
Frameworks incluidos de serie (sin necesidad de licencia ISO): BSI IT-Grundschutz, EU NIS2, EUCS, EU AI Act y CRA se basan en legislación pública de la UE y publicaciones federales alemanas y están completamente preinstalados.
Operar los módulos de framework ISO sin una licencia válida para el 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```bash
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
Inicia sesión con **`[email protected]` / `adminpass`**. En el primer inicio de sesión se te pedirá que elijas el **idioma de los datos de demostración** (🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL) o que comiences con un sistema vacío. Cambia la contraseña de administrador inmediatamente después.
Para uso en producción con HTTPS:```bash
# .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
¿Pasar a producción después de evaluar con datos de demostración? Ejecuta la herramienta interactiva de preparación para producción en lugar de empezar desde una instalación limpia: elimina el contenido de demostración/prueba módulo por módulo (o todo a la vez), para que los datos reales que ya hayas introducido (p. ej., riesgos, activos) no tengan que volver a introducirse:```bash bash stop.sh node scripts/prepare-production.js bash start.sh
Siempre crea una copia de seguridad (`data.bak.<timestamp>/`, junto a tu directorio `data/`) antes de
cambiar cualquier cosa, 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 aún cambia a `sqlite` por razones históricas
(ver [Issue #42](https://github.com/coolstartnow/isms-builder/issues/42)).
---
## Docker
Cada versión se publica como un paquete de GitHub en el GitHub Container Registry, para
`linux/amd64` y `linux/arm64` — etiquetado como `:latest` y `:<version>` (p. ej. `:1.37.5.2`):```bash
docker compose up -d
# App runs at http://localhost:3000
O sin Compose (data/ debe ser un bind mount — los datos nunca se hornean en la imagen):```bash
docker run -d --name isms-builder -p 3000:3000
-e JWT_SECRET="$(openssl rand -hex 32)"
-v "$PWD/data:/app/data"
ghcr.io/coolstartnow/isms-builder:latest
Esta es la configuración predeterminada, que almacena los datos como archivos JSON simples en `./data` — no se necesita ningún contenedor de base de datos
en absoluto. Es la configuración recomendada para equipos pequeños y es la que usan los dos comandos anteriores.
**Usar PostgreSQL (o MariaDB) en lugar de JSON.** La imagen lo soporta de forma nativa, pero —
a diferencia de la configuración JSON anterior — necesita un segundo contenedor (la base de datos real) además de un puñado de
variables de entorno que le indican a la aplicación cómo alcanzarla. Si solo extrajiste la imagen en sí
(`docker pull ghcr.io/coolstartnow/isms-builder`) sin clonar nunca este repositorio, esos
nombres de variables no son visibles en ningún lugar por defecto — `docker-compose.yml` y `.env.example`, donde
están documentados, son archivos de este repositorio Git, no parte de la imagen. Esta sección existe
para que esa información no sea un secreto exclusivo del repositorio.
La imagen `isms-builder` en sí nunca incluye un servidor de base de datos — `postgres:17` (o `mariadb:11`)
es un motor de base de datos completamente genérico y vacío de Docker Hub sin ningún conocimiento de las
tablas de este proyecto. Esas tablas (riesgos, activos, controles SoA, etc.) se crean automáticamente
por la propia aplicación en el momento en que se inicia y encuentra una base de datos vacía — sin importación SQL manual,
sin paso de migración separado que tengas que ejecutar. Consulta "¿Cómo se crea el esquema de la base de
datos?" más abajo si quieres conocer todos los detalles.
Dos contenedores, una red Docker compartida, y luego se le indica a la aplicación dónde encontrar la base de datos:```bash
# 1) An isolated network so the two containers can reach each other by name
docker network create isms-net
# 2) The database — empty until the app first connects and creates its tables
docker run -d --name isms-postgres --network isms-net \
-e POSTGRES_DB=isms_builder \
-e POSTGRES_USER=isms \
-e POSTGRES_PASSWORD="$(openssl rand -hex 16)" \
-v isms-postgres-data:/var/lib/postgresql/data \
postgres:17-alpine
# 3) The app, pointed at that database by container name (isms-postgres) via
# Docker's built-in DNS on the shared network — no host/port juggling needed
docker run -d --name isms-builder --network isms-net -p 3000:3000 \
-e JWT_SECRET="$(openssl rand -hex 32)" \
-e STORAGE_BACKEND=postgres \
-e DB_HOST=isms-postgres \
-e DB_PORT=5432 \
-e DB_USER=isms \
-e DB_PASS="<same password as POSTGRES_PASSWORD above>" \
-e DB_NAME=isms_builder \
ghcr.io/coolstartnow/isms-builder:latest
Qué significa cada variable:
| Variable | Propósito |
|---|---|
STORAGE_BACKEND | postgres (o pg) para PostgreSQL, mariadb para MariaDB/MySQL. Déjala sin definir (o json) para la configuración JSON predeterminada. |
DB_HOST | Nombre de host del contenedor de la base de datos. En una red Docker compartida, es simplemente el --name del contenedor — Docker lo resuelve automáticamente. |
DB_PORT | 5432 para PostgreSQL, 3306 para MariaDB. |
DB_USER / DB_PASS / DB_NAME | Deben coincidir con lo que configures en el contenedor de la base de datos (POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB arriba, o los equivalentes de MariaDB). |
Para MariaDB, cambia postgres:17-alpine por mariadb:11, usa sus variables MARIADB_DATABASE /
MARIADB_USER / MARIADB_PASSWORD en el paso 2, y STORAGE_BACKEND=mariadb /
DB_PORT=3306 en el paso 3. La lista completa y con referencias cruzadas de cada variable de entorno que este
proyecto entiende — incluidas las no cubiertas aquí (SSL, confianza en proxy inverso, SMTP,
2FA, …) — se encuentra en .env.example en este repositorio.
Los usuarios de Compose lo obtienen gratis: docker-compose.yml ya incluye perfiles de servicio
mariadb y postgres (comentados por defecto, junto con las explicaciones equivalentes de variables de entorno) —
docker compose --profile postgres up -d inicia ambos contenedores conectados automáticamente,
sin necesidad de configuración de red manual ni de copiar y pegar contraseñas.
¿Cómo se crea el esquema de la base de datos? Ni la imagen postgres:17 ni la mariadb:11
saben nada sobre este proyecto — son motores de base de datos genéricos y vacíos directamente de
Docker Hub. No hay un archivo de volcado SQL que importar ni un comando de migración separado que ejecutar manualmente.
En su lugar, en el momento en que el contenedor isms-builder se inicia y se conecta a una base de datos vacía, su
propio código de aplicación (no la imagen de la base de datos) crea cada tabla que necesita sobre la marcha — consulta
server/db/knexDatabase.js: una lista de definiciones de tablas, cada una
verificada con hasTable() y creada con createTable() si falta, todo antes de que la aplicación comience
a aceptar solicitudes HTTP. Eso lo hace idempotente — el primer inicio construye el esquema completo
desde cero, y cada reinicio posterior contra la misma base de datos es una operación silenciosa sin efecto porque las
tablas ya existen. Este es el mismo mecanismo, sin modificar, que se verificó en vivo contra
SQLite, MariaDB 11 y PostgreSQL 17 (consulta #70).
Para compilar desde el código fuente en su lugar, descomenta el bloque build: en docker-compose.yml y ejecuta
docker compose up -d --build.
Las imágenes llevan una atestación de procedencia de compilación firmada:```bash gh attestation verify oci://ghcr.io/coolstartnow/isms-builder:latest --owner coolstartnow
## Requisitos
- **Node.js 18+** (probado: 18, 20, 22)
- npm 9+
- (Opcional) Docker + Docker Compose
- (Opcional) [Ollama](https://ollama.ai) para búsqueda semántica local con IA
---
## Configuración (`.env`)
| Variable | Valor predeterminado | Descripción |
|---|---|---|
| `JWT_SECRET` | *(obligatorio)* | Secreto para la firma JWT: usa 32+ caracteres aleatorios |
| `PORT` | `3000` | Puerto de escucha HTTP/HTTPS |
| `STORAGE_BACKEND` | `json` | `json` (desarrollo/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` | Anula el directorio de datos (volúmenes de Docker) |
| `SMTP_HOST` | — | Servidor SMTP para alertas por 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)
- Auth: Cookie JWT (
sm_session), contraseñas bcrypt, 2FA TOTP (aplicable a 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 siempre está disponible como respaldo
- Registro de auditoría: Cada acción de creación/actualización/eliminación/inicio de sesión se registra, es filtrable y exportable
Consulta docs/architecture/ para diagramas C4, el modelo de datos completo y la especificación OpenAPI 3.0.3 (más de 80 endpoints).
Ejecutar pruebas
Nota: El conjunto de pruebas en
tests/son las pruebas de desarrollo personales del autor y se incluyen junto con el 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 codificadas que solo existen en el entorno de pruebas aislado; no tienen relación alguna con datos de producción o demo.```bash 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 utilizan un directorio temporal aislado: no se tocan datos de producción.
---
## Contribuciones
¡Las contribuciones son muy bienvenidas! Consulta [CONTRIBUTING.md](https://github.com/coolstartnow/isms-builder/blob/main/CONTRIBUTING.md) para:
- Configuración del entorno 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
**¿Has encontrado un problema de seguridad?** Por favor, no abras un issue público: utiliza
[la notificación privada de vulnerabilidades](https://github.com/coolstartnow/isms-builder/security/advisories/new).
[SECURITY.md](https://github.com/coolstartnow/isms-builder/blob/main/SECURITY.md) describe el alcance, el puerto seguro y qué esperar de forma realista.
**Buenos primeros issues** están etiquetados como [`good first issue`](https://github.com/coolstartnow/isms-builder/issues?q=label%3A%22good+first+issue%22) en el rastreador de issues.
---
## Hoja de ruta
| Estado | Funcionalidad |
|---|---|
| ✅ Hecho | Búsqueda semántica (Ollama / nomic-embed-text) |
| ✅ Hecho | Backend SQLite, Docker, CI/CD |
| ✅ Hecho | Alertas por correo del registro de borrado GDPR |
| ✅ Hecho | Paquetes de demostración multilingües (DE / EN / FR / NL) |
| ✅ Hecho | Módulo de Hallazgos de Auditoría con planes de acción (V 1.37.2.0) |
| ✅ Hecho | Traducciones de las guías FR/NL + configuración de idioma del administrador (V 1.37.2.0) |
| ✅ Hecho | Backend MariaDB/MySQL (`STORAGE_BACKEND=mariadb`, V 1.37.2.1) |
| ✅ Hecho | Escáner → borrador de riesgo (importación XML y PDF de Greenbone/OpenVAS, V 1.37.2.0) |
| ✅ Hecho | Acuse de recibo de políticas: el personal confirma las políticas digitalmente con registro de auditoría (V 1.37.2.0) |
| ✅ Hecho | CRUD de guías: crear, editar y subir documentación propia (V 1.37.2.0) |
| ✅ Hecho | Búsqueda de guías: búsqueda de texto completo entre categorías con extracto (V 1.37.2.0) |
| ✅ Hecho | Objetivos de protección de activos: CIA + autenticidad (1–4), dependencias y herencia del principio máximo de BSI (V 1.37.2.0) |
| ✅ Hecho | 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) |
| ✅ Hecho | Backend PostgreSQL (`STORAGE_BACKEND=pg`): misma capa de almacenamiento Knex que MariaDB, verificado contra una instancia real de PostgreSQL 17 incl. ruta completa de `docker compose` (V 1.37.5) |
| ✅ Hecho | Integración con ownCloud / Nextcloud: las políticas aprobadas se publican automáticamente como PDF vía WebDAV, visibilidad opcional de favoritos/enlaces públicos, verificado en vivo contra una instancia real de NextcloudPi (#66, V 1.37.5.1) |
| ✅ Hecho | Imagen Docker publicada en GitHub Container Registry tras cada versión (`ghcr.io/coolstartnow/isms-builder`, `linux/amd64` + `linux/arm64`, procedencia de compilación firmada) — contribución de @bucherfa (#71, V 1.40.0). Prueba de esfuerzo de mantenimiento: se descartará de nuevo si resulta ser más mantenimiento del esperado. |
| 🔜 Siguiente | Asistente de políticas con IA: Ollama redacta contenido de políticas a partir del título + marco |
| 🔜 Siguiente | Informes programados: informe de cumplimiento semanal/mensual enviado por correo |
| 🔜 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 | Análisis de brechas de políticas (LLM) |
| 🏁 V 2.x | Categorías de guías 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 nació directamente de esa experiencia: construir y mantener un SGSI conforme en el
mundo real, a través de auditorías reales, con presión regulatoria real. La herramienta refleja lo que
los profesionales necesitan realmente, no lo que un gestor de producto cree que necesitan.
**¿Por qué código abierto?**
Las pymes merecen acceso a una plataforma SGSI adecuada sin tasas de licencia de cinco cifras. El esfuerzo
de incorporación es real independientemente de la herramienta que elijas, pero ese coste no debería
agravarse con el bloqueo del proveedor ni con que tus datos salgan de tu propia infraestructura. Este
proyecto defiende la libertad del software y el principio de que tus datos de cumplimiento te 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.
- **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
proporcionar su propio archivo JSON (consulta la sección anterior y `scripts/import-iso-controls.sh`).
Los estándares deben obtenerse de [ISO](https://www.iso.org/) o de un
distribuidor nacional autorizado.
- El material de **BSI IT-Grundschutz** está publicado por la Oficina Federal Alemana
de Seguridad de la Información (BSI) y está disponible gratuitamente en
[bsi.bund.de](https://www.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](https://eur-lex.europa.eu).
---
## Licencia
Copyright (C) 2026 Claude Hecker
Este programa es software libre bajo la
[Licencia Pública General Affero de GNU v3.0](https://github.com/coolstartnow/isms-builder/blob/main/LICENSE).
Si ejecutas una versión modificada como servicio de red, debes 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. Consulta [THIRD-PARTY-LICENSES.md](https://github.com/coolstartnow/isms-builder/blob/main/THIRD-PARTY-LICENSES.md)
para la atribución completa y los textos de las licencias.






