Nuovo modulo guidato in 6 step (cl. 4-10 + Statement of Applicability): - migration 037 (isms_models/roles/soa/documents) + 038 (dataset 111 controlli: 93 Annex A:2022 + 7 CLD/27017 + 11 PII/27018) + runner scripts/migrate-isms.php - IsmsModelController (16 endpoint) registrato in index.php - SoA pre-popolato dalle risposte Gap Analysis NIS2 (mapping iso27001_control) - estensioni cloud condizionali 27017/27018 via flag uses_public_cloud/ is_cloud_provider/processes_pii_in_cloud - AIService::generateIsmsDocument + fonti ISO in nis2_sources.php - frontend isms.html/isms.js + api client + sidebar + help + i18n IT/EN - ingest KB ISO (scope SYSTEM, solo titoli/sintesi: no testo coperto da copyright) - version.json 1.14.0; doc studio + deploy handoff Strumento di supporto/pre-audit (non certificazione). Migration DA APPLICARE su host. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
249 lines
21 KiB
Markdown
249 lines
21 KiB
Markdown
# Studio — Modulo "Modello Organizzativo ISO 27000 (SGSI)" + Onboarding PMI
|
||
|
||
> **Tipo**: documento di studio e piano di implementazione (NO codice applicato).
|
||
> **Data**: 2026-06-11 — Autore: sessione Claude (devapp3)
|
||
> **Stato**: bozza in attesa di revisione utente prima di toccare codice.
|
||
> **Decisioni utente (2026-06-11)**:
|
||
> 1. Ambito = **SGSI completo** (clausole ISO/IEC 27001:2022 4–10 + Statement of Applicability)
|
||
> 2. Deliverable corrente = **questo documento di studio + piano** (niente migration/controller finché non approvato)
|
||
> 3. Percorso PMI = **stesso wizard completo, con più guida e supporto AI** (nessuna semplificazione dei contenuti normativi)
|
||
> 4. **Aggiornamento 2026-06-11**: includere le estensioni cloud della famiglia 27000 nelle versioni **attuali** — **ISO/IEC 27017:2015** (controlli sicurezza servizi cloud) e **ISO/IEC 27018:2019** (protezione PII in cloud pubblico per PII processor), come **estensioni condizionali** del SoA (vedi §3.3bis e §4.2).
|
||
|
||
---
|
||
|
||
## 1. Obiettivo
|
||
|
||
Estendere NIS2 Agile con una **procedura guidata (wizard)** che accompagni l'azienda nella costruzione del proprio **Sistema di Gestione della Sicurezza delle Informazioni (SGSI / ISMS)** secondo **ISO/IEC 27001:2022**, riusando il più possibile i dati e i moduli già presenti per la compliance NIS2.
|
||
|
||
Il wizard deve produrre, a fine percorso, gli artefatti minimi di un SGSI:
|
||
- **Ambito e contesto** del SGSI (cl. 4)
|
||
- **Policy SGSI + ruoli/responsabilità** (cl. 5)
|
||
- **Metodologia di risk assessment + obiettivi** (cl. 6)
|
||
- **Statement of Applicability (SoA)** sui 93 controlli Annex A:2022 (cl. 6.1.3 d), **estendibile** con i controlli cloud **ISO 27017:2015** e i controlli privacy-cloud **ISO 27018:2019** quando pertinenti (vedi §3.3bis / §4.2)
|
||
- **Documented information** minima obbligatoria (cl. 7–8)
|
||
- **Piano di monitoraggio, audit interni e miglioramento** (cl. 9–10)
|
||
|
||
**Famiglia ISO 27000 coperta** (versioni attuali):
|
||
- **ISO/IEC 27001:2022** — requisiti SGSI (base del wizard)
|
||
- **ISO/IEC 27002:2022** — guida implementativa Annex A
|
||
- **ISO/IEC 27017:2015** — *estensione condizionale*: controlli di sicurezza per servizi cloud (cliente e/o fornitore cloud)
|
||
- **ISO/IEC 27018:2019** — *estensione condizionale*: protezione dei PII in cloud pubblico per chi agisce da PII processor (ponte verso GDPR)
|
||
|
||
Per le **PMI**, lo stesso percorso resta integrale ma viene arricchito di guida contestuale, esempi e bozze AI dimensionate alla realtà di una piccola/media impresa (vedi §8).
|
||
|
||
---
|
||
|
||
## 2. Stato dell'arte — cosa esiste già (riuso, non riscrittura)
|
||
|
||
Il prodotto contiene già un ponte significativo NIS2 ↔ ISO 27001. Riuso previsto:
|
||
|
||
| Componente esistente | File / Tabella | Come lo riuso |
|
||
|---|---|---|
|
||
| ENUM framework controlli | `compliance_controls.framework` = `nis2 \| iso27001 \| both` | La tabella regge nativamente i controlli ISO: i record SoA finiscono qui con `framework='iso27001'` |
|
||
| Mapping per-domanda | `application/data/nis2_questionnaire.json` → ogni domanda ha `iso27001_control` (es. `A.5.1`); ogni categoria ha `iso27001_controls[]` | **Pre-popolazione del SoA** dalle risposte NIS2 già date |
|
||
| Matrice articoli→ISO | `AuditController::iso27001Mapping` (NIS2 Art.21.2.a–j → Annex A) | Base per derivare lo stato iniziale dei controlli |
|
||
| Modulo Risk | `RiskController`, risk register, matrice 5×5, AI suggest | Clausola 6 (risk assessment & treatment) — si aggancia, non si riscrive |
|
||
| Audit + NCR/CAPA | `AuditController`, `non_conformities`, `corrective_actions` | Clausole 9–10 (audit interni, riesame, miglioramento) |
|
||
| AI | `AIService` (gap, policy gen) + vincolo fonti certe `application/config/nis2_sources.php` | Bozze policy/SoA con citazione fonte (da estendere a ISO 27002) |
|
||
| KB / RAG | `KnowledgeBaseController`, `RagService`, Qdrant `nis2_kb` | Ingest testo ISO 27001/27002 scope SYSTEM per la guida contestuale |
|
||
| Audit chain | `AuditService` hash-chain SHA-256 | Tracciamento immutabile di ogni step del wizard SGSI |
|
||
| Multi-tenancy | `organization_id` su ogni tabella + `requireOrgAccess()` | Stesso isolamento per i nuovi dati SGSI |
|
||
| Pattern onboarding | `OnboardingController::initializeComplianceControls()` (13 controlli NIS2 a setup org) | Pattern speculare per inizializzare il SoA ISO |
|
||
|
||
**Gap attuale**: i 93 controlli **Annex A:2022 non sono seedati** (oggi a onboarding nascono solo i 13 control-code NIS2). Vanno introdotti come dataset di riferimento.
|
||
|
||
---
|
||
|
||
## 3. Architettura proposta (additiva, zero breaking change)
|
||
|
||
Stesso stack: PHP 8.4 vanilla, Front Controller, PDO singleton, JWT multi-tenant, frontend HTML/JS vanilla. Nessun rebuild Docker (edit live `.php`/`.html` + `kill -USR2 1`). Migration da eseguire sull'**host MySQL** (`mysql -h localhost`), coerente con la topologia DB documentata (l'app HTTP fpm parla con l'host via socket).
|
||
|
||
### 3.1 Nuove tabelle (migration `037_isms_model.sql` → eventualmente `038`)
|
||
|
||
> Convenzioni del repo: ALTER/CREATE idempotenti via check su `information_schema` (no `IF NOT EXISTS` su ADD COLUMN in MySQL 8.0). Niente `DELIMITER` via pipe.
|
||
|
||
- **`isms_models`** — un SGSI per organization
|
||
`id, organization_id, status (draft/active/under_review), scope_statement TEXT, context_internal TEXT, context_external TEXT, interested_parties JSON, boundaries TEXT, exclusions TEXT, risk_methodology TEXT, isms_objectives JSON, version, created_at, updated_at, approved_by, approved_at`
|
||
|
||
- **`isms_roles`** — ruoli e responsabilità (RACI SGSI), cl. 5.3
|
||
`id, isms_model_id, role_name, user_id NULL, responsibility TEXT, raci ENUM(R,A,C,I), created_at`
|
||
|
||
- **`iso27001_annex_controls`** — **dataset di riferimento** dei controlli (globale, non per-org)
|
||
`control_code (A.5.1…A.8.34, CLD.*, PII.*), standard ENUM(iso27001/iso27017/iso27018), theme, title_it, title_en, purpose_it, iso27002_ref, condition_tag NULL` — seedato da migration. La colonna `standard` distingue i 93 controlli Annex A:2022 dai controlli aggiuntivi cloud (27017) e privacy-cloud (27018); `condition_tag` segna se un controllo è condizionale (es. `cloud_customer`, `cloud_provider`, `pii_processor`).
|
||
|
||
- **`isms_soa`** — Statement of Applicability per org (il cuore)
|
||
`id, isms_model_id, control_code, applicable BOOL, justification_inclusion TEXT, justification_exclusion TEXT, implementation_status (not_started/in_progress/implemented/verified), implementation_pct, derived_from_nis2 BOOL, linked_control_id (→compliance_controls), updated_by, updated_at`
|
||
|
||
- **`isms_documents`** — documented information minima (cl. 7.5), bozze AI
|
||
`id, isms_model_id, doc_type, title, status (draft/review/approved), ai_generated BOOL, body_html LONGTEXT, version, linked_policy_id NULL`
|
||
|
||
(Il monitoraggio/audit interni cl. 9–10 **non** crea tabelle nuove: si appoggia ad `AuditController` + `non_conformities`/`corrective_actions` esistenti, con un `isms_model_id` opzionale come tag.)
|
||
|
||
### 3.2 Nuovo controller — `IsmsModelController.php`
|
||
|
||
Registrato in `public/index.php` (controllerMap + actionMap), pattern identico agli altri controller. Endpoint additivi:
|
||
|
||
| Metodo | Endpoint | Scopo |
|
||
|---|---|---|
|
||
| GET | `/api/isms/model` | SGSI dell'org corrente (o 404 → wizard da iniziare) |
|
||
| POST | `/api/isms/model` | Crea/inizializza SGSI (scope, contesto) — cl. 4 |
|
||
| PUT | `/api/isms/model` | Salva step (leadership, risk methodology, objectives) |
|
||
| GET | `/api/isms/annex-controls` | I 93 controlli di riferimento (per il SoA) |
|
||
| GET | `/api/isms/soa` | SoA dell'org, **pre-popolato dal NIS2** al primo accesso |
|
||
| PUT | `/api/isms/soa/{code}` | Aggiorna applicabilità + motivazione + stato di un controllo |
|
||
| POST | `/api/isms/soa/derive` | (Ri)deriva lo stato iniziale del SoA dalle risposte NIS2 |
|
||
| GET | `/api/isms/documents` / POST / PUT | Documented information + bozze |
|
||
| POST | `/api/isms/documents/ai-generate` | Genera bozza policy/procedura via AIService |
|
||
| GET | `/api/isms/readiness` | % completamento SGSI + checklist clausole 4–10 |
|
||
| GET | `/api/isms/export` | Export SGSI completo (HTML stampabile / SoA CSV) |
|
||
|
||
### 3.3 Frontend
|
||
|
||
- **`public/isms.html`** — wizard a 6 step (struttura `assessment.html`: `app-layout` → `sidebar` + `main-content`), stepper in alto, salvataggio per step.
|
||
- **`public/js/isms.js`** — handler wizard via client `api.js`, auto-detect ruolo/firm da `/api/auth/me`.
|
||
- Voce sidebar **"Modello Organizzativo (SGSI)"** in sezione *Gestione* di `common.js` (icona scudo/organigramma).
|
||
- Aggiornare `help.js` (help contestuale IT/EN) e KB AI come da regola progetto.
|
||
|
||
### 3.3bis Estensioni cloud — ISO 27017:2015 e ISO 27018:2019
|
||
|
||
Le due norme **non sono SGSI a sé**: sono *code of practice* che **estendono** i controlli 27002. Nel modulo diventano **set di controlli aggiuntivi e condizionali** dentro lo stesso SoA, attivati in base al profilo dell'org raccolto allo Step 1.
|
||
|
||
**ISO/IEC 27017:2015 — servizi cloud.** Fornisce guida cloud-specifica su ~37 controlli 27002 + **7 controlli aggiuntivi `CLD.*`**:
|
||
- `CLD.6.3.1` — Ruoli e responsabilità condivisi in ambiente cloud
|
||
- `CLD.8.1.5` — Rimozione degli asset del cliente cloud (a fine contratto)
|
||
- `CLD.9.5.1` — Segregazione negli ambienti di virtual computing
|
||
- `CLD.9.5.2` — Hardening delle virtual machine
|
||
- `CLD.12.1.5` — Sicurezza operativa dell'amministratore
|
||
- `CLD.12.4.5` — Monitoraggio dei servizi cloud
|
||
- `CLD.13.1.4` — Allineamento sicurezza reti virtuali e fisiche
|
||
|
||
Si applicano sia al **cliente cloud** sia al **fornitore cloud** (alcuni hanno responsabilità diverse per ruolo → si usa `raci`/`condition_tag`).
|
||
|
||
> ⚠️ **Numerazione**: 27017:2015 è scritta sul **27002:2013** (vecchia numerazione, es. `CLD.9.5.x`). Il modulo è su Annex A:**2022**. Va mantenuto un **cross-reference** 2013↔2022 nel dataset (`iso27002_ref`) per non confondere l'utente. Nessuna revisione 2022 di 27017 esiste a oggi → resta `27017:2015`.
|
||
|
||
**ISO/IEC 27018:2019 — PII in cloud pubblico (PII processor).** Aumenta i controlli 27002 con guida per la protezione dei dati personali e aggiunge un set di controlli (Annex A della 27018) organizzati sui **principi privacy ISO 29100** (consenso/scelta, limitazione finalità, minimizzazione, limitazione uso/conservazione/divulgazione, trasparenza, partecipazione dell'interessato, accountability, sicurezza, conformità privacy). Mappabili come `PII.*` nel dataset.
|
||
|
||
**Ponte GDPR/NIS2**: 27018 copre obblighi del *responsabile del trattamento* in cloud → si collega ai riferimenti GDPR già citati nel prodotto (es. Art.17 erasure, codice etico persona digitale) e rafforza il dominio NIS2 *supply chain*/*cloud*. Da NON spacciare come conformità GDPR automatica (disclaimer, vedi §7).
|
||
|
||
**Attivazione condizionale (Step 1 del wizard)**: tre flag sul profilo SGSI —
|
||
`uses_public_cloud` (→ abilita 27017 lato cliente), `is_cloud_provider` (→ 27017 lato fornitore), `processes_pii_in_cloud` (→ 27018). I controlli `CLD.*`/`PII.*` entrano nel SoA **solo** se il relativo flag è attivo; altrimenti restano fuori (con motivazione di esclusione precompilata "non applicabile: l'org non eroga/usa servizi cloud / non tratta PII in cloud"). Segnali utili già disponibili per **proporre** i flag: settore, `assets` (asset di tipo cloud), modulo `suppliers` (fornitori cloud).
|
||
|
||
---
|
||
|
||
## 4. Il wizard SGSI — 6 step mappati alle clausole 27001:2022
|
||
|
||
| Step | Clausola | Cosa raccoglie | Riuso |
|
||
|---|---|---|---|
|
||
| **1. Contesto & Ambito** | 4 | Perimetro, sedi, asset coperti, parti interessate, confini, esclusioni motivate | Asset module per il perimetro |
|
||
| **2. Leadership** | 5 | Policy SGSI, organigramma sicurezza, ruoli/responsabilità (RACI), comitato | Tabella `isms_roles`; PolicyController per la policy |
|
||
| **3. Risk** | 6 | Metodologia (es. ISO 27005), criteri, obiettivi SGSI misurabili | **Aggancia `RiskController` esistente** (no doppione del risk register) |
|
||
| **4. Statement of Applicability** | 6.1.3 | I 93 controlli Annex A: applicabile sì/no + motivazione, **pre-spuntati dal NIS2**; + estensioni condizionali **27017** (cloud) e **27018** (PII-cloud) | `iso27001_control` del questionario + `iso27001Mapping`; flag cloud/PII (§3.3bis, §4.2) |
|
||
| **5. Documented Information** | 7–8 | Policy/procedure obbligatorie, bozze AI, versioning | `AIService::generatePolicy`, `isms_documents` |
|
||
| **6. Monitoraggio & Miglioramento** | 9–10 | Piano audit interni, riesame direzione, gestione NC | **Aggancia Audit + NCR/CAPA esistenti** |
|
||
|
||
### 4.1 Logica di pre-popolazione del SoA (valore chiave)
|
||
|
||
Al primo accesso al SoA (o via `POST /api/isms/soa/derive`):
|
||
|
||
1. Per ogni controllo Annex A si guarda quali domande NIS2 hanno quel `iso27001_control`.
|
||
2. Si aggrega lo stato delle risposte (`implemented`/`partial`/`not_implemented`/`not_applicable`).
|
||
3. Si imposta una **proposta** iniziale: `applicable=true`, `implementation_status` e `implementation_pct` derivati, `derived_from_nis2=true`, e una bozza di `justification_inclusion` citando l'articolo NIS2 di origine.
|
||
4. L'utente conferma/modifica. I controlli ISO **senza** corrispondenza NIS2 (es. parte di A.7 fisici) restano da compilare manualmente, evidenziati come "non coperti dall'assessment NIS2".
|
||
|
||
Questo trasforma un assessment NIS2 già fatto in una **prima bozza di SoA pronta all'80%**, che è il principale argomento di vendita del modulo.
|
||
|
||
### 4.2 SoA esteso con 27017/27018 (condizionale)
|
||
|
||
Lo Step 4 mostra il SoA **stratificato per standard**:
|
||
1. **Sezione base** — 93 controlli Annex A:2022 (sempre).
|
||
2. **Sezione cloud (27017)** — i 7 `CLD.*` + i ~37 controlli 27002 con guida cloud, visibili solo se `uses_public_cloud` o `is_cloud_provider`. Per ogni controllo: lente "cosa cambia in cloud" e distinzione responsabilità cliente vs fornitore.
|
||
3. **Sezione PII-cloud (27018)** — controlli `PII.*` (principi 29100), visibili solo se `processes_pii_in_cloud`, con tag del principio privacy e link al riferimento GDPR pertinente.
|
||
|
||
`isms_soa` distingue le righe via il `standard` del controllo collegato. La derivazione automatica dal NIS2 (§4.1) copre la sezione base; le sezioni cloud/PII partono da bozze di motivazione AI (non hanno corrispondenza diretta nel questionario NIS2) e sono evidenziate come "da compilare — estensione cloud/privacy".
|
||
|
||
---
|
||
|
||
## 5. Integrazione AI (fonti certe)
|
||
|
||
- Estendere `application/config/nis2_sources.php` (registry fonti certe) con i riferimenti **ISO/IEC 27001:2022, 27002:2022, 27017:2015 e 27018:2019** così che `AIService::authoritativeSourcesBlock()` possa citarli e vietare riferimenti inventati. Marcare 27017/27018 come *code of practice* (guida, non requisiti certificabili a sé).
|
||
- Nuovi prompt:
|
||
- **Motivazione SoA**: data una scelta di applicabilità, genera/propone la `justification_inclusion`/`exclusion`.
|
||
- **Bozza documented information**: policy/procedura per un controllo o gruppo di controlli (riusa il pattern `generatePolicy`).
|
||
- **Spiegazione clausola** (guida contestuale, soprattutto PMI).
|
||
- Ingest del testo ISO 27001/27002 in KB Qdrant `nis2_kb` scope SYSTEM (pipeline `scripts/ingest-*` esistente) → `askWithRag()` risponde alle domande dell'utente durante il wizard.
|
||
|
||
> ⚠️ Il testo integrale ISO è coperto da copyright: ingestare **parafrasi/sintesi proprietarie + riferimenti**, non il testo letterale della norma. Da chiarire con l'utente (vedi §10).
|
||
|
||
---
|
||
|
||
## 6. Schema migrazioni — punto di partenza
|
||
|
||
Ultima migration presente: **`036_acn_gap_assessment.sql`**. Le nuove partono da:
|
||
- `037_isms_model.sql` — `isms_models`, `isms_roles`, `isms_soa`, `isms_documents` + indici
|
||
- `038_iso27001_annex_controls.sql` — tabella di riferimento + **seed dei 93 controlli Annex A:2022** (4 temi) + **7 controlli `CLD.*` ISO 27017:2015** + **controlli `PII.*` ISO 27018:2019** (con `standard` e `condition_tag`); ALTER `isms_models` per i 3 flag `uses_public_cloud`/`is_cloud_provider`/`processes_pii_in_cloud`
|
||
|
||
Tutte additive, idempotenti, da girare sull'host MySQL.
|
||
|
||
---
|
||
|
||
## 7. Impatto e rischi
|
||
|
||
**Impatto basso / additivo:**
|
||
- Nessuna modifica a schema esistente se non un eventuale ALTER `compliance_controls` per linkare al SoA (valutare: forse non serve, si usa `isms_soa.linked_control_id`).
|
||
- Nessun controller esistente toccato nella logica (solo registrazione del nuovo in `index.php`).
|
||
- Nessun rebuild Docker.
|
||
|
||
**Rischi / attenzioni:**
|
||
1. **Copyright ISO** (vedi §5/§10) — non ingestare testo letterale.
|
||
2. **Volume dataset Annex A** (93 controlli × bilingue) — lavoro di data-entry/curatela contenuti.
|
||
3. **Disallineamento mapping** — il mapping NIS2→ISO è una *guida*, non una corrispondenza 1:1 certificabile: il SoA derivato è una **bozza assistita**, va dichiarato chiaramente nell'UI (disclaimer, come già fatto per gauge/bozze AI).
|
||
4. **Topologia DB** — migration sull'host, non `docker exec nis2-db` (path secondario non-prod).
|
||
5. **Governance**: ogni step va proposto e confermato; commit immediato post-smoke; push via host se cache token vuota.
|
||
|
||
---
|
||
|
||
## 8. Modello onboarding PMI (decisione: stesso percorso + più AI)
|
||
|
||
`employee_count` e `annual_turnover_eur` sono già raccolti a onboarding → si può **rilevare automaticamente** che l'org è una PMI e attivare un *layer di assistenza*, **senza** ridurre i contenuti:
|
||
|
||
- **Guida contestuale potenziata**: ogni step del wizard mostra spiegazione "cosa significa per una PMI", esempi concreti dimensionati, stima di effort.
|
||
- **Bozze AI dimensionate**: prompt arricchiti col contesto PMI (settore, dimensione, range dipendenti — già anonimizzato in `AIService`) → policy/procedure realistiche e snelle ma complete.
|
||
- **Co-pilota conversazionale**: `askWithRag()` disponibile nel wizard per domande libere ("devo davvero fare l'audit interno?").
|
||
- **Roadmap a fasi suggerita**: stesso SoA completo, ma con priorità/sequenza proposta per non sovraccaricare (quick win prima), riusando la logica `quick_wins`/`compliance_roadmap` già prodotta dall'AI gap analysis.
|
||
- **Estensioni cloud per PMI**: molte PMI usano SaaS/cloud pubblico ma non se ne rendono conto → l'AI, dai segnali (suppliers, asset), **propone** di attivare 27017/27018 spiegando in linguaggio semplice perché ("usi Microsoft 365/AWS → questi 7 controlli cloud ti riguardano").
|
||
- **Nessun contenuto rimosso**: i 93 controlli e le 6 clausole restano tutti; cambia solo il *supporto*, coerente con la scelta utente.
|
||
|
||
---
|
||
|
||
## 9. Roadmap di implementazione proposta (a fasi)
|
||
|
||
| Fase | Contenuto | Output verificabile |
|
||
|---|---|---|
|
||
| **F0 — Dataset** | Curatela + seed 93 controlli Annex A:2022 + 7 `CLD.*` (27017) + `PII.*` (27018) con cross-ref numerazione (`038`) + estensione `nis2_sources.php` | Tabella popolata (3 standard), fonti ISO citabili |
|
||
| **F1 — Backend SGSI** | Migration `037`, `IsmsModelController`, endpoint model/SoA + derive, registrazione `index.php` | curl: crea modello, deriva SoA dal NIS2, legge readiness |
|
||
| **F2 — Wizard frontend** | `isms.html` + `isms.js` 6 step, voce sidebar, help.js | Wizard navigabile end-to-end su org demo |
|
||
| **F3 — AI & docs** | Prompt SoA/policy, `ai-generate`, ingest KB ISO | Bozza policy generata + risposta RAG nel wizard |
|
||
| **F4 — PMI layer** | Guida contestuale, co-pilota, roadmap a fasi | Org PMI demo: percorso completo con assistenza |
|
||
| **F5 — Export & polish** | Export SGSI HTML stampabile + SoA CSV, audit-chain tag, version.json bump | Documento SGSI esportabile |
|
||
|
||
Ogni fase: edit → `kill -USR2 1` → smoke curl → commit → push (via host se serve). Test su org demo (id≤4 / `%.demo%`), reset con `reset-demo.sql`.
|
||
|
||
---
|
||
|
||
## 10. Decisioni aperte da chiarire con l'utente
|
||
|
||
1. **Copyright ISO**: confermo l'approccio "sintesi/parafrasi proprietarie + riferimenti" per la KB e i titoli controlli? (necessario per non violare il copyright della norma)
|
||
2. **Versione Annex A**: confermato **2022 (93 controlli, 4 temi)**? (lo studio assume 2022; il questionario usa già codici `A.5.x`/`A.8.x` 2022)
|
||
2bis. **Estensioni cloud**: confermo le versioni attuali **27017:2015** e **27018:2019** (non esistono revisioni più recenti) e l'approccio a **sezioni condizionali** del SoA attivate dai 3 flag cloud/PII? Includo anche il **cross-reference numerazione 27017 (2013→2022)** nel dataset?
|
||
3. **Posizionamento**: il SGSI è un modulo **a sé** in sidebar, o un percorso che parte dalla pagina assessment esistente?
|
||
4. **Certificabilità**: il modulo è di **supporto/pre-audit** (bozze assistite con disclaimer) — confermi che NON deve presentarsi come certificazione automatica?
|
||
5. **Mobile/multi-superficie**: rilevante il tag `data-app-version`/`surface` (std feedback-version-provenance) anche per le nuove pagine? (di default sì, additivo)
|
||
|
||
---
|
||
|
||
## 11. Riepilogo
|
||
|
||
Il modulo è **realizzabile in larga parte per riuso**: il dato più prezioso (mapping NIS2→ISO per domanda) è già nel prodotto e abilita un **SoA pre-popolato all'80%** da un assessment NIS2 esistente — il vero differenziatore. L'implementazione è additiva, non breaking, su pattern noti. Il percorso PMI è un layer di assistenza AI sopra lo stesso wizard completo.
|
||
|
||
**Prossimo passo**: revisione di questo studio + risposte alle decisioni aperte (§10) → poi avvio Fase F0/F1 mostrando i diff prima di qualsiasi commit.
|