From 09f51795c154692517ef5143eb0928281abc8b39 Mon Sep 17 00:00:00 2001 From: DevEnv nis2-agile Date: Mon, 1 Jun 2026 11:57:37 +0200 Subject: [PATCH] [DOCS] Analisi normativa: verifica finding revisore Gap Analysis ACN su fonti ACN Verifica punto-per-punto delle affermazioni del revisore (GV.RR-04, GV.PO-01, codifica importanti/essenziali) contro i testi ufficiali ACN. Esito: finding fondato; imprecisioni di contorno documentate. Razionale del modulo Gap Analysis ACN. Co-Authored-By: Claude Opus 4.8 --- docs/ANALISI_GAP_ANALYSIS_ACN.md | 108 +++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 docs/ANALISI_GAP_ANALYSIS_ACN.md diff --git a/docs/ANALISI_GAP_ANALYSIS_ACN.md b/docs/ANALISI_GAP_ANALYSIS_ACN.md new file mode 100644 index 0000000..1ff0196 --- /dev/null +++ b/docs/ANALISI_GAP_ANALYSIS_ACN.md @@ -0,0 +1,108 @@ +# Analisi: Gap Analysis Art. 21 vs. misure di base ACN + +> **Data:** 2026-06-01 +> **Origine:** finding di un revisore sulla pagina guida cap. 5 ("Gap Analysis — le 10 misure dell'Art. 21"). +> **Metodo:** verifica diretta sui documenti ACN ufficiali presenti nel repo (`docs/nis2/allegati_acn/Allegato{1,2,3,4}.txt`, PDF), sui 203 requisiti strutturati, sul questionario reale dell'app, con riscontro in rete sul sito ACN. +> **Esito:** il revisore ha ragione sul punto sostanziale. Modulo **Gap Analysis ACN** implementato (prod v1.13.0). Vedi `docs/sql/036_acn_gap_assessment.sql`, `application/controllers/AcnAssessmentController.php`, `application/data/acn_measures.json`, `public/acn-gap.html`. + +--- + +## Il finding del revisore (trascrizione) + +> Ha frainteso completamente il senso dell'Analisi GAP. +> +> La normativa prevede che alcune persone chiave dell'organigramma dimostrino di avere una preparazione / esperienza / certificazione adeguata al ruolo — REQUISITO GV.RR-04. +> +> Sempre la normativa prevede che questo controllo di 'adeguatezza al ruolo' venga formalizzato — REQUISITO GV.PO-01. +> +> ATTENZIONE: la codifica requisiti, che sono 43, è identica sia per soggetti IMPORTANTI che per gli ESSENZIALI; semplicemente per quest'ultimi, su alcuni requisiti, vi sono dei punti in più da rispettare. + +--- + +## Verdetto sintetico + +Il revisore **ha ragione**, e l'osservazione è di qualità: ha individuato il gap architetturale reale del prodotto e l'ha ancorato a due requisiti corretti, citati con la stessa logica della Tabella 1 della Determinazione ACN. Le uniche imprecisioni sono di contorno e non intaccano la sostanza. + +--- + +## 1. "Ha frainteso il senso dell'Analisi GAP" → fondato, è il punto vero + +La Gap Analysis dell'app (`application/data/nis2_questionnaire.json`, 80 domande, 10 categorie) è costruita sulle **10 lettere dell'Art. 21.2 NIS2** (a→j: risk, incidenti, continuità, supply-chain, ecc.). Questo è il livello **direttiva europea**: generico, di orientamento. + +Ma in Italia il metro di conformità **non è** l'Art. 21 in astratto: è la **Determinazione ACN n. 164179 del 14/04/2025**, che declina quelle 10 famiglie in misure e requisiti puntuali con codifica del Framework Nazionale (GV/ID/PR/DE/RS/RC). + +| | Misure | Requisiti | +|---|---|---| +| **Soggetti IMPORTANTI** (Allegato 1) | 37 | 87 | +| **Soggetti ESSENZIALI** (Allegato 2) | 43 (= 37 + 6) | 116 (= 87 + 29) | + +L'autovalutazione che i soggetti NIS compilano per l'ACN si misura **contro questi 87/116 requisiti**, non contro 10 caselle. L'app, prima dell'intervento, faceva quindi una gap analysis *di primo livello* (utile per capire dove si è messi male) ma **non** la gap analysis di conformità ACN — quella che un CISO/consulente deve realmente produrre. Il revisore chiama questo "fraintendere il senso". + +## 2. "GV.RR-04 — persone chiave devono dimostrare adeguatezza al ruolo" → vero nella sostanza, impreciso nei dettagli + +Testo ufficiale (Allegato 2, §1.3.2) — GV.RR-04 *"La cybersecurity è inclusa nelle pratiche delle risorse umane"*: + +- **punto 1:** il *personale autorizzato* ad accedere ai sistemi rilevanti è individuato *previa valutazione dell'esperienza, capacità e affidabilità*; +- **punto 2:** idem per gli *amministratori di sistema*. + +Esiste quindi un requisito di idoneità/adeguatezza del personale al ruolo. Due precisazioni: + +- Non sono "persone chiave dell'organigramma" (che evoca il top management): sono **il personale con accesso ai sistemi + gli amministratori di sistema** (profili tecnici/operativi). +- La norma dice *"esperienza, capacità e affidabilità"* — **non parla di "certificazione"**. La certificazione può essere *un* modo per dimostrarla, non un obbligo. + +> Nota: gli *organi di amministrazione e direttivi* compaiono altrove — per **approvare** le misure (GV.RR-02 p.1, GV.PO-01 p.3) — e per la **formazione** del management (Art. 23 D.Lgs 138/2024). Cosa diversa da GV.RR-04. + +## 3. "Il controllo di adeguatezza va formalizzato — GV.PO-01" → esatto, confermato dalla tabella ufficiale + +GV.PO-01 impone politiche documentate; il punto 1.c) è proprio *"affidabilità delle risorse umane"*. La **Tabella 1 in appendice** all'Allegato mappa l'ambito così: + +> **c) Affidabilità delle risorse umane** → GV.RR-04: punti 1, 2 e 4 · GV.PO-01: punti 1, 2 e 3. + +Il revisore ha indicato **esattamente la coppia GV.RR-04 + GV.PO-01** che la norma stessa accoppia: dimostra di conoscere il documento. + +## 4. "Codifica identica importanti/essenziali, agli essenziali si aggiungono punti" → corretto, con una imprecisione terminologica + +Verificato sui 203 requisiti strutturati: + +- **Codifica identica:** vero, gli stessi codici (GV.RR-04…) valgono per entrambi; le misure degli importanti sono un **sottoinsieme** di quelle degli essenziali (37 ⊂ 43). +- **6 misure solo per essenziali:** `ID.AM-03`, `PR.AT-02`, `PR.IR-03`, `PR.PS-01`, `PR.PS-03`, `RC.CO-03`. +- **16 misure con punti aggiuntivi** per gli essenziali. Esempio da manuale, proprio GV.RR-04: importanti = punti **1,2,3** / essenziali = punti **1,2,3,4,5**. +- ⚠️ **Imprecisione:** il revisore dice "i requisiti, che sono 43". **43 è il numero di _misure_**, non di requisiti (che sono 116 per gli essenziali, 87 per gli importanti). Confonde i due termini, ma il concetto è giusto. + +--- + +## Riepilogo imprecisioni del revisore (di contorno) + +| Affermazione | Realtà normativa | +|---|---| +| "persone chiave dell'organigramma" | personale con accesso ai sistemi + amministratori di sistema (GV.RR-04 p.1-2) | +| "certificazione adeguata al ruolo" | "esperienza, capacità e affidabilità" — la certificazione è una possibile evidenza, non un obbligo | +| "i requisiti, che sono 43" | 43 sono le **misure** (essenziali); i **requisiti** sono 116 (ess.) / 87 (imp.) | + +Nessuna di queste intacca la correttezza del punto centrale. + +--- + +## Conseguenza pratica (implementata) + +È stato realizzato il modulo **Gap Analysis ACN** di secondo livello, affiancato a quello Art. 21 esistente: + +- distinzione **importante vs essenziale** (il soggetto risponde solo ai punti che lo riguardano, filtrati da `organizations.entity_type`); +- mappatura punto-per-punto ai codici GV/ID/PR/DE/RS/RC con i **testi integrali** estratti dagli Allegati ufficiali; +- scoring complessivo + per funzione del Framework Nazionale, piano d'azione sui gap, analisi AI con grounding sui 203 requisiti ACN già in knowledge base; +- output allineato alla logica dell'autovalutazione del portale ACN. + +**Numeri del dataset canonico** (`application/data/acn_measures.json`, validati a zero discrepanze): +importanti 37 misure / 87 requisiti · essenziali 43 misure / 116 requisiti. + +--- + +## Fonti ufficiali consultate + +- ACN — Modalità e specifiche di base NIS: +- ACN — Allegato 1 (soggetti importanti): +- ACN — Allegato 2 (soggetti essenziali): +- ACN — FAQ misure e notifiche di base: +- Repo: `docs/nis2/allegati_acn/Allegato{1,2,3,4}.txt` (testi ufficiali), `application/data/acn_measures.json` (87 importanti + 116 essenziali, testi integrali). + +> ⚠️ **Da non confondere:** gli **Allegati 1 e 2** della Determinazione contengono le **misure di sicurezza** (importanti / essenziali). Gli **Allegati 3 e 4** contengono invece gli **incidenti significativi di base** (3 = importanti, 4 = essenziali). Riferimento incrociato: memoria `reference_acn_allegati`.