
isms-builder v1.37.2
Sistema di Gestione della Sicurezza delle Informazioni self-hosted — ISO 27001, NIS2, GDPR/DSGVO, BSI IT-Grundschutz

ISMS Builder
Sistema di gestione della sicurezza delle informazioni self-hosted — open source, nessun cloud richiesto
⚠️ Avviso di sicurezza: repository false e copie che distribuiscono malware
ISMS Builder non ha "release" impacchettate, installer o file ZIP scaricabili — l'unica fonte legittima è questo repository, clonato o scaricato direttamente da GitHub come semplice codice sorgente. Siamo a conoscenza di almeno un repository dannoso che si spaccia per questo progetto (README falso, pulsante fittizio "Download" che punta a uno ZIP camuffato da screenshot, contenente un loader di malware Windows — catena di payload
.cmd→.exe→ Lua-DLL). Non scaricare né eseguire alcuno ZIP/installer/exe "isms_builder" da nessun luogo diverso da questo repository. Se trovi un repository o un sito sospetto che si spaccia per questo progetto, apri una issue o una discussion così possiamo segnalarlo.
Stato: sviluppo attivo — non ancora un prodotto finito. I moduli principali sono funzionanti e in uso, ma alcune funzionalità sono incomplete e la piattaforma è ancora in crescita. Contributi, feedback e test sul campo sono molto benvenuti — è esattamente per questo che il progetto è stato reso open source.
Cos'è ISMS Builder?
ISMS Builder è una piattaforma web self-hosted per la gestione di un Sistema di Gestione della Sicurezza delle Informazioni (ISMS). Copre l'intero ciclo di vita della conformità — dalla redazione delle policy alle evidenze di audit — per ISO 27001:2022, NIS2, GDPR/DSGVO, BSI IT-Grundschutz e altri framework.
Niente cloud. Niente canoni SaaS. I tuoi dati restano sul tuo server.
Progettato per PMI, team IT e consulenti che hanno bisogno di un vero strumento ISMS senza un contratto con un vendor a cinque cifre.
Scopo e ambito di utilizzo
Questo progetto è nato come strumento di lavoro per un singolo professionista ISMS e da lì è cresciuto. È open source perché il lavoro potrebbe essere utile ad altri — non perché sia un prodotto commerciale travestito. Essere espliciti su questo ti aiuta a decidere se si adatta alla tua situazione.
Per cosa è stato costruito. Un piccolo team ISMS — spesso una persona, a volte una manciata — che redige e mantiene la documentazione di un sistema di gestione: policy, rischi, asset, controlli, evidenze. Si prevede che il numero di persone che necessitano di un account rimanga contenuto. Raggiungere un pubblico ampio funziona anche senza account: le conferme di presa visione delle policy vengono inviate come link basati su token, così i destinatari leggono e confermano un documento senza mai effettuare il login, e senza comparire in alcun elenco di utenti.
Cosa richiede da te. ISMS Builder è self-hosted, e tutto ciò che ne consegue è a tuo carico: distribuzione, TLS, hardening, backup, aggiornamenti, controllo degli accessi e gli obblighi di protezione dei dati per tutto ciò che vi archivi. Il progetto fornisce una configurazione predefinita ragionevole, non un servizio gestito.
Cosa non è. Non esiste un'offerta SaaS ospitata, nessun contratto di supporto commerciale e nessun accordo sul livello di servizio. Non è un prodotto di hosting multi-tenant. Non ti certifica rispetto ad alcuno standard e non è una consulenza legale — ti aiuta a organizzare e documentare il lavoro, ma la valutazione rimane tua e del tuo auditor.
Chi lo mantiene. Una persona, oltre a un lavoro a tempo pieno. Issue e discussioni vengono lette e ricevono risposta, di solito entro pochi giorni; le segnalazioni di sicurezza sono prioritarie. Le richieste di funzionalità sono benvenute e plasmano davvero la roadmap, ma competono per serate limitate. Se la tua organizzazione dipende da una tempistica fissa o da una risposta garantita, un fornitore commerciale è la raccomandazione onesta — e questo non è un motivo per evitare il progetto, solo un motivo per pianificare in modo realistico.
Screenshot
| Login | Dashboard |
|---|---|
![]() | ![]() |
| Dichiarazione di applicabilità | Gestione dei rischi |
|---|---|
![]() | ![]() |
| GDPR e protezione dei dati | Gestione degli asset |
|---|---|
![]() | ![]() |
| Guide e documentazione | Report |
|---|---|
![]() | ![]() |
Esegui
npm starte aprihttps://localhost:3000per esplorare localmente l'intero dataset dimostrativo.
Panoramica delle funzionalità
| Modulo | Descrizione | Standard |
|---|---|---|
| Gestione delle policy | CRUD basato su template, versioning, ciclo di vita (bozza → revisione → approvata → archiviata), gerarchia degli spazi, allegati | ISO 27001 §5 |
| Dichiarazione di applicabilità | 313 controlli su 8 framework, modifica inline, analisi dei gap, mappature incrociate | ISO 27001 A / BSI / NIS2 / EUCS / EUAI / ISO 9001 / CRA |
| Gestione dei rischi | Registro dei rischi, piani di trattamento, ruolo auditor | ISO 27001 §6.1 |
| Obiettivi di sicurezza | Monitoraggio KPI con barre di avanzamento, integrazione con il calendario | ISO 27001 §6.2 |
| GDPR e privacy | VVT, contratti AV, DSFA, TOMs, coda DSAR, timer 72h, registro delle cancellazioni con avvisi email | DSGVO Art. 13–35 |
| Gestione degli asset | Registro degli asset, tipi di asset modificabili, obiettivi di protezione (CIA + autenticità) con ereditarietà dalle dipendenze, livelli di classificazione, monitoraggio fine vita (EoL) | ISO 27001 A.5.9–5.12 |
| BCM / BCP | Analisi di impatto sul business, piani di continuità, esercitazioni | ISO 27001 A.5.29–5.30 / NIS2 |
| Registro della formazione | Catalogo corsi, monitoraggio del completamento, caricamento certificati | ISO 27001 A.6.3 |
| Gestione dei fornitori | Registro fornitori, pianificazione degli audit, valutazione del rischio | ISO 27001 A.5.19–5.22 |
| Legale e contratti | Contratti, NDA, privacy policy, calendario delle scadenze | |
| Inbox incidenti | Inbox CISO + modulo di segnalazione pubblico (login non richiesto) | NIS2 / BSI |
| Governance | Revisioni della direzione, monitoraggio delle azioni | ISO 27001 §9.3 |
| Report | Matrice di conformità (Controllo × Entità), report dei gap, cicli di revisione, esportazione CSV | |
| Rilievi di audit | Registro dei rilievi (IST→SOLL→Risk→Recommendation), piani d'azione, monitoraggio di gravità/stato, rif. FIND-YYYY-NNNN | ISO 27001 §9.2 |
| Tracciabilità | Ogni record è collegato ai controlli SoA e ai documenti di policy — bidirezionale | |
| Ricerca semantica | Ricerca AI locale tramite Ollama (nomic-embed-text) con fallback su parole chiave | |
| Multi-Entità | Albero della struttura aziendale, applicabilità per entità di controlli e policy | |
| UI e dati demo multilingue | UI completa e contenuti demo in 🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL; l'admin controlla le lingue disponibili |
⚠ IMPORTANTE: i controlli ISO richiedono l'installazione manuale da parte dell'amministratore
ISO 27001:2022, ISO 9000:2015 e ISO 9001:2015 sono standard protetti da copyright pubblicati dall'Organizzazione internazionale per la normazione (ISO, © ISO). Le definizioni dei controlli (titoli, descrizioni, testo dei requisiti) non sono incluse in questo software e non devono essere ridistribuite senza una valida licenza ISO.
Cosa significa in pratica: I moduli SoA per ISO 27001, ISO 9000 e ISO 9001 vengono forniti senza contenuti dei controlli. L'amministratore deve importare manualmente i controlli prima che questi framework siano utilizzabili:
- Ottieni una copia con licenza dello standard da iso.org o da un organismo nazionale autorizzato
- Prepara un file JSON con le definizioni dei tuoi controlli (formato documentato in
scripts/import-iso-controls.sh) - Esegui lo script di importazione:
bash scripts/import-iso-controls.sh path/to/iso-controls.json - Riavvia il server ISMS Builder
Framework inclusi pronti all'uso (nessuna licenza ISO richiesta): BSI IT-Grundschutz, EU NIS2, EUCS, EU AI Act e CRA si basano su legislazione UE e pubblicazioni federali tedesche di pubblico dominio e sono completamente preinstallati.
L'utilizzo dei moduli dei framework ISO senza una licenza valida per lo standard corrispondente è di esclusiva responsabilità dell'operatore. Il progetto ISMS Builder e i suoi contributori non si assumono alcuna responsabilità per l'uso senza licenza di contenuti protetti da ISO.
Avvio rapido
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
Accedi con [email protected] / adminpass. Al primo accesso ti verrà chiesto di scegliere la lingua dei dati demo (🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL) oppure di iniziare con un sistema vuoto. Cambia subito la password dell'amministratore.
Per l'uso in produzione 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
Vuoi andare in produzione dopo la valutazione con i dati demo? Esegui lo strumento interattivo di preparazione alla produzione invece di partire da un'installazione nuova — cancella i contenuti demo/test modulo per modulo (o tutto in una volta), così i dati reali già inseriti (ad es. rischi, asset) non devono essere reinseriti:
bash stop.sh
node scripts/prepare-production.js
bash start.sh
Crea sempre un backup (data.bak.<timestamp>/, accanto alla tua directory data/) prima di
modificare qualsiasi cosa, e non tocca mai STORAGE_BACKEND — a differenza dell'azione admin "Demo Reset"
disponibile nell'app, pensata per l'istanza demo e che per ragioni storiche passa comunque a sqlite
(vedi Issue #42).
Docker
docker compose up -d --build
# App runs at http://localhost:3000
Requisiti
- Node.js 18+ (testato: 18, 20, 22)
- npm 9+
- (Opzionale) Docker + Docker Compose
- (Opzionale) Ollama per la ricerca semantica AI locale
Configurazione (.env)
| Variabile | Predefinito | Descrizione |
|---|---|---|
JWT_SECRET | (obbligatorio) | Segreto per la firma JWT — usa 32+ caratteri casuali |
PORT | 3000 | Porta di ascolto HTTP/HTTPS |
STORAGE_BACKEND | json | json (dev/demo) o sqlite (produzione) |
SSL_CERT_FILE | — | Percorso del certificato TLS → abilita HTTPS |
SSL_KEY_FILE | — | Percorso della chiave privata TLS |
DATA_DIR | ./data | Sovrascrive la directory dei dati (volumi Docker) |
SMTP_HOST | — | Server SMTP per gli avvisi email |
SMTP_PORT | 587 | Porta SMTP |
SMTP_USER | — | Nome utente SMTP |
SMTP_PASS | — | Password SMTP |
SMTP_FROM | — | Indirizzo mittente per le notifiche |
Architettura
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), password bcrypt, TOTP 2FA (applicabile a livello di organizzazione) - RBAC:
reader→editor/dept_head→contentowner/auditor→admin - Persistenza: file JSON (predefinito/demo) o SQLite tramite
better-sqlite3 - AI: Ollama locale opzionale (nomic-embed-text); la ricerca per parole chiave è sempre disponibile come fallback
- Audit Log: ogni operazione di creazione/aggiornamento/eliminazione/login viene registrata, filtrata ed esportabile
Vedi docs/architecture/ per i diagrammi C4, il modello dati completo e la specifica OpenAPI 3.0.3 (80+ endpoint).
Esecuzione dei test
Nota: la suite di test in
tests/contiene i test di sviluppo personali dell'autore e viene distribuita insieme al progetto per trasparenza. Non fa parte dell'applicazione stessa e non è necessaria per eseguire l'app. I test coprono il comportamento interno delle API e usano credenziali di test hardcoded che esistono solo nell'ambiente di test isolato — non hanno alcuna relazione con dati di produzione o demo.
npm test # runs all 423 tests
npm run preflight # exactly what CI gates on (tests + pinning + audit)
npm test -- --verbose # with test names
I test usano una directory temporanea isolata — nessun dato di produzione viene toccato.
Contribuire
I contributi sono molto benvenuti! Consulta CONTRIBUTING.md per:
- Configurazione dell'ambiente di sviluppo (5 minuti al primo test)
- Stile del codice e convenzioni
- Come aprire una buona issue o PR
Hai trovato un problema di sicurezza? Per favore non aprire una issue pubblica — usa la segnalazione privata delle vulnerabilità. SECURITY.md descrive l'ambito, il safe harbour e cosa aspettarsi in modo realistico.
Buone prime issue sono etichettate good first issue nel tracker delle issue.
Roadmap
| Stato | Funzionalità |
|---|---|
| ✅ Fatto | Ricerca semantica (Ollama / nomic-embed-text) |
| ✅ Fatto | Backend SQLite, Docker, CI/CD |
| ✅ Fatto | Avvisi email per il registro delle cancellazioni GDPR |
| ✅ Fatto | Pacchetti demo multilingue (DE / EN / FR / NL) |
| ✅ Fatto | Modulo Rilievi di audit con piani d'azione (V 1.37.2.0) |
| ✅ Fatto | Traduzioni delle guide FR/NL + configurazione delle lingue da admin (V 1.37.2.0) |
| ✅ Fatto | Backend MariaDB/MySQL (STORAGE_BACKEND=mariadb, V 1.37.2.1) |
| ✅ Fatto | Scanner → bozza di rischio (importazione XML + PDF Greenbone/OpenVAS, V 1.37.2.0) |
| ✅ Fatto | Conferma delle policy — il personale conferma digitalmente le policy con audit trail (V 1.37.2.0) |
| ✅ Fatto | CRUD delle guide — crea, modifica e carica la tua documentazione (V 1.37.2.0) |
| ✅ Fatto | Ricerca nelle guide — ricerca full-text tra le categorie con estratto (V 1.37.2.0) |
| ✅ Fatto | Obiettivi di protezione degli asset — CIA + autenticità (1–4), dipendenze ed ereditarietà secondo il principio del massimo BSI (V 1.37.2.0) |
| ✅ Fatto | Checklist di governance NIS2 Art. 21 (30 voci) e scadenze di notifica Art. 23 con avvisi automatici (V 1.37.2.0) |
| 🔜 Prossimo | Assistente AI per le policy — Ollama redige i contenuti delle policy da titolo + framework |
| 🔜 Prossimo | Report pianificati — report di conformità settimanali/mensili consegnati via email |
| 🔜 Prossimo | Backend PostgreSQL |
| 🔜 Prossimo | Rilevamento delle anomalie nell'audit log (batch LLM) |
| 🚀 In seguito | Valutazione quantitativa del rischio (valori in €, ispirata a FAIR) |
| 🚀 In seguito | Portale di collaborazione per gli auditor — accesso esterno in sola lettura per gli auditor |
| 🚀 In seguito | Integrazione ownCloud / Nextcloud |
| 🚀 In seguito | Analisi dei gap delle policy (LLM) |
| 🏁 V 2.x | Categorie di guide configurabili — gli amministratori definiscono categorie personalizzate (ad es. flussi di lavoro, documenti organizzativi) |
Informazioni sull'autore
Claude Hecker lavora nell'IT da oltre 35 anni. Dopo circa 15 anni come CIO, è passato ai ruoli di CISO e Responsabile della protezione dei dati (DSO/DSB). Durante la sua carriera ha progettato e implementato infrastrutture IT a livello aziendale e connettività di rete geografica (VPN, MPLS) per una grande multinazionale europea — con la responsabilità di operazioni affidabili e sicure in più sedi e giurisdizioni.
ISMS Builder è nato direttamente da quell'esperienza: costruire e mantenere un ISMS conforme nel mondo reale, attraverso audit reali, con una pressione normativa reale. Lo strumento riflette ciò di cui i professionisti hanno davvero bisogno — non ciò che un product manager pensa che serva.
Perché open source? Le PMI meritano l'accesso a una vera piattaforma ISMS senza canoni di licenza a cinque cifre. Lo sforzo di onboarding è reale qualunque strumento si scelga — ma quel costo non dovrebbe essere aggravato dal vendor lock-in o dai dati che escono dalla propria infrastruttura. Questo progetto rappresenta la libertà del software e il principio che i tuoi dati di conformità appartengono a te.
Nota di riferimento agli standard
Questo software fa riferimento a identificatori di controllo e titoli brevi di standard pubblicati esclusivamente a fini di interoperabilità e gestione della conformità.
- ISO/IEC 27001, ISO 9000, ISO 9001 sono standard pubblicati dall'
Organizzazione internazionale per la normazione (ISO). Le definizioni dei controlli
di questi standard non sono incluse in questa distribuzione software —
il copyright ISO non consente la ridistribuzione del testo dei controlli. Gli utenti devono
fornire il proprio file JSON (vedi la sezione precedente e
scripts/import-iso-controls.sh). Gli standard devono essere ottenuti da ISO o da un distributore nazionale autorizzato. - BSI IT-Grundschutz è un materiale pubblicato dall'Ufficio federale tedesco per la sicurezza delle informazioni (BSI) ed è liberamente disponibile su bsi.bund.de.
- NIS2, CRA, EUCS, EU AI Act sono atti legislativi dell'UE e sono pubblicamente disponibili tramite eur-lex.europa.eu.
Licenza
Copyright (C) 2026 Claude Hecker
Questo programma è software libero concesso in licenza secondo la GNU Affero General Public License v3.0.
Se esegui una versione modificata come servizio di rete, devi rendere il codice sorgente completo disponibile agli utenti di quel servizio (AGPL §13).
Questo progetto include componenti di terze parti con licenze MIT, BSD-2-Clause e Apache-2.0. Vedi THIRD-PARTY-LICENSES.md per l'attribuzione completa e i testi delle licenze.






