[DOCS] Rischi rework: help online + manuale + KB (matrice 4 fasce/toggle, trasversali 12 col)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4809d8e895
commit
f421f4ecdb
@@ -78,11 +78,25 @@ Un requisito può essere **conforme** e avere comunque un **rischio residuo alto
|
|||||||
sono due piani distinti. Questa scelta evita di far dire al sistema "sei conforme perché il rischio
|
sono due piani distinti. Questa scelta evita di far dire al sistema "sei conforme perché il rischio
|
||||||
è basso", che sarebbe normativamente scorretto.
|
è basso", che sarebbe normativamente scorretto.
|
||||||
|
|
||||||
## 6. La matrice 5×5
|
## 6. Le matrici di rischio 5×5
|
||||||
Ogni rischio con **inerente** valutato compare nella matrice 5×5 (sempre visibile), insieme ai rischi trasversali. La matrice è uno **strumento di rappresentazione**, non un obbligo (art. 24
|
Ci sono **due matrici**: una per i **rischi dai requisiti** (subito sotto la prima tabella) e una
|
||||||
D.Lgs. 138/2024). Esclude i requisiti "non applicabili".
|
per i **rischi trasversali** (in fondo). Ogni rischio valutato con Probabilità e Impatto compare
|
||||||
|
automaticamente nella propria matrice.
|
||||||
|
|
||||||
## 7. Chi può fare cosa
|
- **4 fasce di rischio** (dal prodotto Probabilità × Impatto): **1–2 basso** (verde), **3–8 medio**
|
||||||
|
(arancione), **9–12 alto** (rosso tenue), **15–25 critico** (rosso) — le stesse soglie della colonna Alert.
|
||||||
|
- Il tasto **Inerente / Residuo** sopra ogni matrice mostra i giudizi prima o dopo il trattamento.
|
||||||
|
- La matrice dei requisiti esclude i "non applicabili".
|
||||||
|
|
||||||
|
La matrice è uno **strumento di rappresentazione**, non un obbligo (art. 24 D.Lgs. 138/2024).
|
||||||
|
|
||||||
|
## 7. La sezione «Rischi trasversali» (in fondo alla pagina)
|
||||||
|
Comprimibile e riservata ai profili amministrativi. Ha le **stesse 12 colonne** dei rischi dai requisiti
|
||||||
|
(valutazione inerente e residua, Alert, Esito residuo). In testa ci sono i tasti **AI Suggerisci** e
|
||||||
|
**Nuovo Rischio**; ogni riga ha un tasto per **eliminare** il rischio; sotto la tabella c'è la sua
|
||||||
|
**matrice 5×5** con lo stesso tasto Inerente/Residuo.
|
||||||
|
|
||||||
|
## 8. Chi può fare cosa
|
||||||
- **Tutti** vedono la tabella e i valori.
|
- **Tutti** vedono la tabella e i valori.
|
||||||
- **Amministratore / Compliance Manager / super admin**: compilano Probabilità/Impatto (inerente e
|
- **Amministratore / Compliance Manager / super admin**: compilano Probabilità/Impatto (inerente e
|
||||||
residuo), creano azioni, aggiornano lo stato del requisito, aggiungono rischi all-hazard.
|
residuo), creano azioni, aggiornano lo stato del requisito, aggiungono rischi all-hazard.
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ I profili che valutano (super_admin/org_admin/compliance_manager) compilano Prob
|
|||||||
|
|
||||||
- Rischio **inerente** = rischio di non conformità **prima** del trattamento; **residuo** = **dopo** il trattamento (framing coerente con "rischio di non conformità"). "Inerente/residuo" è impostazione **ISO 27005 / ISO 27001 §6.1.3** (accettazione del rischio residuo dal risk owner): **best practice**, non obbligo NIS2.
|
- Rischio **inerente** = rischio di non conformità **prima** del trattamento; **residuo** = **dopo** il trattamento (framing coerente con "rischio di non conformità"). "Inerente/residuo" è impostazione **ISO 27005 / ISO 27001 §6.1.3** (accettazione del rischio residuo dal risk owner): **best practice**, non obbligo NIS2.
|
||||||
- Le **soglie** dell'Alert e il metodo P×I sono una **scelta metodologica** dell'organizzazione (rif. ISO/IEC 27001 §6.1.2), **strumento di rappresentazione, NON obbligo**: l'**art. 24 del D.Lgs. 138/2024** richiede un'analisi dei rischi proporzionata e con approccio **multirischio (all-hazard)**, senza imporre una metodologia specifica.
|
- Le **soglie** dell'Alert e il metodo P×I sono una **scelta metodologica** dell'organizzazione (rif. ISO/IEC 27001 §6.1.2), **strumento di rappresentazione, NON obbligo**: l'**art. 24 del D.Lgs. 138/2024** richiede un'analisi dei rischi proporzionata e con approccio **multirischio (all-hazard)**, senza imporre una metodologia specifica.
|
||||||
- **Impatto** è una scala di severità 1-5 (non euro). La matrice 5×5 (sempre visibile) esclude i requisiti "non applicabili".
|
- **Impatto** è una scala di severità 1-5 (non euro).
|
||||||
|
- **Matrici 5×5**: ce ne sono **due** — una per i rischi dai requisiti (sotto la prima tabella) e una per i rischi trasversali (in fondo). Le celle hanno **4 fasce** (prodotto P×I): 1-2 basso (verde), 3-8 medio (arancione), 9-12 alto (rosso tenue), 15-25 critico (rosso) — stesse soglie dell'Alert. Un **tasto Inerente/Residuo** mostra i giudizi prima o dopo il trattamento. La matrice dei requisiti esclude i "non applicabili". È uno strumento di rappresentazione, non un obbligo (metodo interno, ISO 27001 §6.1.2).
|
||||||
- Dall'Alert si possono creare **azioni** sul rischio (seme del futuro Modulo Azioni: registro azioni, audit, KPI, budget).
|
- Dall'Alert si possono creare **azioni** sul rischio (seme del futuro Modulo Azioni: registro azioni, audit, KPI, budget).
|
||||||
|
|
||||||
## Rischi trasversali (all-hazards) — sezione comprimibile
|
## Rischi trasversali (all-hazards) — sezione comprimibile
|
||||||
|
|||||||
@@ -167,7 +167,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth check ───────────────────────────────────────────
|
// ── Auth check ───────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -90,7 +90,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth check ───────────────────────────────────────────
|
// ── Auth check ───────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth check ───────────────────────────────────────────
|
// ── Auth check ───────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -1127,7 +1127,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
loadSidebar(); // = loadTopnavV3()
|
loadSidebar(); // = loadTopnavV3()
|
||||||
|
|||||||
@@ -275,7 +275,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth check ───────────────────────────────────────────
|
// ── Auth check ───────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
+1
-1
@@ -382,7 +382,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth & Init ─────────────────────────────────────────
|
// ── Auth & Init ─────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -195,7 +195,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
'use strict';
|
'use strict';
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -202,7 +202,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|
||||||
|
|||||||
@@ -197,7 +197,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script src="/js/competenze.js?v=20260627"></script>
|
<script src="/js/competenze.js?v=20260627"></script>
|
||||||
<script>
|
<script>
|
||||||
function v3Icons() { if (window.lucide && lucide.createIcons) { try { lucide.createIcons(); } catch (e) {} } }
|
function v3Icons() { if (window.lucide && lucide.createIcons) { try { lucide.createIcons(); } catch (e) {} } }
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script src="/js/connettori-discovery.js?v=20260627"></script>
|
<script src="/js/connettori-discovery.js?v=20260627"></script>
|
||||||
<script>
|
<script>
|
||||||
if (typeof checkAuth === 'function' && !checkAuth()) {
|
if (typeof checkAuth === 'function' && !checkAuth()) {
|
||||||
|
|||||||
@@ -160,7 +160,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
'use strict';
|
'use strict';
|
||||||
/* Controlli periodici (control monitoring §9.1/A.8.16): controlli ricorrenti + esecuzioni (evidenza) + NC/AC. */
|
/* Controlli periodici (control monitoring §9.1/A.8.16): controlli ricorrenti + esecuzioni (evidenza) + NC/AC. */
|
||||||
|
|||||||
@@ -227,7 +227,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Icone inline (Lucide stroke) usate nelle stringhe HTML generate dal JS.
|
// ── Icone inline (Lucide stroke) usate nelle stringhe HTML generate dal JS.
|
||||||
// Renderizzate immediatamente (no createIcons re-run), self-host, niente sprite BI. ──
|
// Renderizzate immediatamente (no createIcons re-run), self-host, niente sprite BI. ──
|
||||||
|
|||||||
@@ -117,7 +117,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script src="/js/dashboard.js?v=20260724a"></script>
|
<script src="/js/dashboard.js?v=20260724a"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth check ───────────────────────────────────────────
|
// ── Auth check ───────────────────────────────────────────
|
||||||
|
|||||||
+1
-1
@@ -1182,7 +1182,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// La guida è accessibile anche da non autenticati (utile per onboarding)
|
// La guida è accessibile anche da non autenticati (utile per onboarding)
|
||||||
// ma se sei loggato carichi chrome + i18n normalmente. ZERO modifiche backend.
|
// ma se sei loggato carichi chrome + i18n normalmente. ZERO modifiche backend.
|
||||||
|
|||||||
@@ -364,7 +364,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth & Init ──────────────────────────────────────────────
|
// ── Auth & Init ──────────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -936,7 +936,7 @@ curl -H <span class="str">"X-API-Key: nis2_TUA_CHIAVE"</span> \
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
loadSidebar(); // = loadTopnavV3()
|
loadSidebar(); // = loadTopnavV3()
|
||||||
|
|||||||
@@ -165,7 +165,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
'use strict';
|
'use strict';
|
||||||
/*
|
/*
|
||||||
|
|||||||
+1
-1
@@ -204,7 +204,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script src="/js/isms.js?v=20260627v3"></script>
|
<script src="/js/isms.js?v=20260627v3"></script>
|
||||||
<script>
|
<script>
|
||||||
// Icone Lucide della chrome + crumb/page-head statici. L'init dati e il wiring
|
// Icone Lucide della chrome + crumb/page-head statici. L'init dati e il wiring
|
||||||
|
|||||||
+6
-7
@@ -611,18 +611,17 @@ const HelpSystem = (function () {
|
|||||||
'La colonna <strong>Alert</strong> compare in base al punteggio inerente: <em>Azione Prioritaria</em> (15–25), <em>Azione Critica</em> (9–12), <em>Azione Necessaria</em> (3–8), <em>Azione Suggerita</em> (1–2). Le soglie sono una <strong>scelta metodologica</strong> dell\'organizzazione (rif. ISO/IEC 27001 §6.1.2), <strong>non un obbligo di legge</strong>. Cliccando l\'Alert si apre l\'elenco delle azioni passate su quel rischio e si può <strong>creare una nuova azione</strong>.',
|
'La colonna <strong>Alert</strong> compare in base al punteggio inerente: <em>Azione Prioritaria</em> (15–25), <em>Azione Critica</em> (9–12), <em>Azione Necessaria</em> (3–8), <em>Azione Suggerita</em> (1–2). Le soglie sono una <strong>scelta metodologica</strong> dell\'organizzazione (rif. ISO/IEC 27001 §6.1.2), <strong>non un obbligo di legge</strong>. Cliccando l\'Alert si apre l\'elenco delle azioni passate su quel rischio e si può <strong>creare una nuova azione</strong>.',
|
||||||
'La colonna <strong>Esito residuo</strong> segnala se il rischio residuo va <strong>rivalutato</strong> (punteggio 9–25) o è <strong>adeguato</strong> (1–8). <strong>Importante</strong>: il punteggio di rischio residuo <strong>non</strong> determina automaticamente lo <em>stato di conformità</em> del requisito. La <strong>conformità</strong> dipende dall\'attuazione della misura e dalle evidenze e si aggiorna in modo esplicito dal link "stato" nella colonna Rischio Residuo. Sono due piani distinti (punteggio di rischio ≠ conformità al requisito).',
|
'La colonna <strong>Esito residuo</strong> segnala se il rischio residuo va <strong>rivalutato</strong> (punteggio 9–25) o è <strong>adeguato</strong> (1–8). <strong>Importante</strong>: il punteggio di rischio residuo <strong>non</strong> determina automaticamente lo <em>stato di conformità</em> del requisito. La <strong>conformità</strong> dipende dall\'attuazione della misura e dalle evidenze e si aggiorna in modo esplicito dal link "stato" nella colonna Rischio Residuo. Sono due piani distinti (punteggio di rischio ≠ conformità al requisito).',
|
||||||
'La tabella elenca <strong>solo i requisiti applicabili alla tua classe</strong> (importante → Allegato 1, essenziale → Allegato 2 della Determinazione ACN 164179/2025). Se l\'elenco e\' lungo, il riquadro <strong>scorre verticalmente</strong> con l\'intestazione fissa.',
|
'La tabella elenca <strong>solo i requisiti applicabili alla tua classe</strong> (importante → Allegato 1, essenziale → Allegato 2 della Determinazione ACN 164179/2025). Se l\'elenco e\' lungo, il riquadro <strong>scorre verticalmente</strong> con l\'intestazione fissa.',
|
||||||
'La seconda sezione, <strong>Rischi trasversali (approccio multirischio / all-hazards)</strong> — comprimibile, riservata ai <strong>profili amministrativi</strong> — serve a registrare le minacce non riconducibili a un singolo requisito (ambiente fisico, catena di fornitura, eventi naturali, errore umano): copre l\'approccio multirischio richiesto dall\'art. 24 D.Lgs. 138/2024 (che recepisce l\'art. 21 §2 della Direttiva (UE) 2022/2555). Si distingue dai «rischi di non conformità» derivati dai requisiti. La sezione resta sempre presente: se è vuota si apre da sola.'
|
'In <strong>fondo alla pagina</strong> trovi la sezione <strong>Rischi trasversali (approccio multirischio / all-hazards)</strong> — comprimibile, riservata ai <strong>profili amministrativi</strong> — per registrare le minacce non riconducibili a un singolo requisito (ambiente fisico, catena di fornitura, eventi naturali, errore umano): copre l\'approccio multirischio richiesto dall\'art. 24 D.Lgs. 138/2024 (che recepisce l\'art. 21 §2 della Direttiva (UE) 2022/2555). Si distingue dai «rischi di non conformità» derivati dai requisiti.',
|
||||||
|
'La tabella dei <strong>Rischi trasversali</strong> ha le <strong>stesse 12 colonne</strong> dei rischi dai requisiti (valutazione inerente e residua, Alert, Esito residuo). In testa alla tabella ci sono i tasti <strong>AI Suggerisci</strong> e <strong>Nuovo Rischio</strong>; ogni riga ha un tasto per <strong>eliminare</strong> il rischio. Sotto la tabella c\'è una <strong>seconda matrice 5×5</strong> dedicata ai soli rischi trasversali, con lo stesso tasto Inerente/Residuo.'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
heading: 'Matrice di Rischio',
|
heading: 'Matrice di Rischio',
|
||||||
items: [
|
items: [
|
||||||
'La matrice 5×5 e\' uno <strong>strumento di rappresentazione</strong>, non un obbligo normativo: l\'art. 24 D.Lgs. 138/2024 richiede un\'analisi dei rischi proporzionata e con approccio multirischio, senza imporre una metodologia specifica.',
|
'La matrice 5×5 (Probabilità × Impatto) e\' uno <strong>strumento di rappresentazione</strong>, non un obbligo normativo: l\'art. 24 D.Lgs. 138/2024 richiede un\'analisi dei rischi proporzionata e con approccio multirischio, senza imporre una metodologia specifica.',
|
||||||
'Ogni rischio-da-requisito <strong>valutato con Probabilità e Impatto</strong> compare automaticamente nella matrice 5×5, insieme ai <strong>rischi aggiuntivi</strong> (custom): la matrice rappresenta così <strong>tutti i rischi</strong>. La matrice <strong>esclude i requisiti "non applicabili"</strong> (per classe o marcati tali).',
|
'Le celle hanno <strong>4 fasce di rischio</strong> (dal prodotto Probabilità × Impatto): <strong>1–2 basso</strong> (verde), <strong>3–8 medio</strong> (arancione), <strong>9–12 alto</strong> (rosso tenue), <strong>15–25 critico</strong> (rosso). Sono le stesse soglie della colonna Alert; una <strong>scelta metodologica</strong> dell\'organizzazione (ISO/IEC 27001 §6.1.2), <strong>non un obbligo di legge</strong>.',
|
||||||
'La <strong>matrice Probabilita\' x Impatto</strong> (5x5) classifica automaticamente i rischi in base alla loro gravita\'.',
|
'Il tasto <strong>Inerente / Residuo</strong> sopra la matrice mostra i giudizi <strong>prima</strong> o <strong>dopo</strong> il trattamento.',
|
||||||
'I livelli di probabilita\' vanno da <em>Molto Bassa</em> a <em>Molto Alta</em>.',
|
'Ci sono <strong>due matrici</strong>: una per i <strong>rischi dai requisiti</strong> (subito sotto la prima tabella) e una per i <strong>rischi trasversali</strong> (in fondo). La matrice dei requisiti <strong>esclude i "non applicabili"</strong> (per classe o marcati tali).'
|
||||||
'I livelli di impatto vanno da <em>Trascurabile</em> a <em>Critico</em>.',
|
|
||||||
'Il punteggio di rischio risultante determina il colore e la priorita\' del rischio.'
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
+1
-1
@@ -180,7 +180,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script src="/js/kb.js"></script>
|
<script src="/js/kb.js"></script>
|
||||||
<script>
|
<script>
|
||||||
// Gate auth + chrome come le altre pagine V3.
|
// Gate auth + chrome come le altre pagine V3.
|
||||||
|
|||||||
@@ -152,7 +152,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
'use strict';
|
'use strict';
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -180,7 +180,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
'use strict';
|
'use strict';
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -142,7 +142,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth + chrome + i18n + help ──────────────────────────
|
// ── Auth + chrome + i18n + help ──────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -156,7 +156,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script src="/js/organigramma.js?v=20260627"></script>
|
<script src="/js/organigramma.js?v=20260627"></script>
|
||||||
<script>
|
<script>
|
||||||
// Render icone Lucide (chrome + crumb + bottoni). organigramma.js fa render albero
|
// Render icone Lucide (chrome + crumb + bottoni). organigramma.js fa render albero
|
||||||
|
|||||||
@@ -345,7 +345,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth & Init ─────────────────────────────────────────
|
// ── Auth & Init ─────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
+1
-1
@@ -146,7 +146,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script src="/js/raci.js?v=20260627"></script>
|
<script src="/js/raci.js?v=20260627"></script>
|
||||||
<script>
|
<script>
|
||||||
function v3Icons() { if (window.lucide && lucide.createIcons) { try { lucide.createIcons(); } catch (e) {} } }
|
function v3Icons() { if (window.lucide && lucide.createIcons) { try { lucide.createIcons(); } catch (e) {} } }
|
||||||
|
|||||||
+1
-1
@@ -237,7 +237,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth & Init ─────────────────────────────────────────
|
// ── Auth & Init ─────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -162,7 +162,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
'use strict';
|
'use strict';
|
||||||
/*
|
/*
|
||||||
|
|||||||
+1
-1
@@ -612,7 +612,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth & Init ──────────────────────────────────────────────
|
// ── Auth & Init ──────────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -740,7 +740,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth check ───────────────────────────────────────────
|
// ── Auth check ───────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -220,7 +220,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
'use strict';
|
'use strict';
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -215,7 +215,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
'use strict';
|
'use strict';
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -547,7 +547,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth & Init ─────────────────────────────────────────
|
// ── Auth & Init ─────────────────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -195,7 +195,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth & Init (ordine V3) ─────────────────────────────
|
// ── Auth & Init (ordine V3) ─────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
@@ -263,7 +263,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
loadSidebar();
|
loadSidebar();
|
||||||
|
|||||||
@@ -148,7 +148,7 @@
|
|||||||
<script src="/vendor/lucide/lucide.min.js"></script>
|
<script src="/vendor/lucide/lucide.min.js"></script>
|
||||||
<script src="/js/topnav-v3.js?v=20260729"></script>
|
<script src="/js/topnav-v3.js?v=20260729"></script>
|
||||||
<script src="/js/i18n.js?v=20260731"></script>
|
<script src="/js/i18n.js?v=20260731"></script>
|
||||||
<script src="/js/help.js?v=20260731"></script>
|
<script src="/js/help.js?v=20260801"></script>
|
||||||
<script>
|
<script>
|
||||||
// ── Auth + chrome + i18n + help ──────────────────────────────
|
// ── Auth + chrome + i18n + help ──────────────────────────────
|
||||||
if (!checkAuth()) throw new Error('Not authenticated');
|
if (!checkAuth()) throw new Error('Not authenticated');
|
||||||
|
|||||||
Reference in New Issue
Block a user