[FEAT] Integrazione analisi docs/nis2 v1.7.0 — scoring asset, tassonomia incidenti, PIR, NIST CSF, fonti certe
Fase 1 - Asset Relevance Scoring NIS2 (GV.OC-04): metodologia 0-100 a 6 criteri, AssetScoringService + endpoint scoringGrid/score/relevantSystems + UI assets.html + registro stampabile. Fase 2 - Tassonomia incidenti Determina ACN 164179/2025: IS-1..4 + regime essenziale/importante (Allegati 3/4). Fase 3 - Post-Incident Review (5-Whys) + metriche TTD/TTC/TTR + timestamp di fase. Fase 4 - Mapping NIST CSF 2.0 (43 controlli) reference-only. Fonti certe: registry config/nis2_sources.php + grounding AI (vieta riferimenti inventati) + citazioni help.js + ingest PDF normativi nella KB RAG (scripts/ingest-nis2-sources.php). Migrazioni 020/021/022 (additive idempotenti). Fix VectorService IP Qdrant (drift .5->.3). Analisi concorrenza Evix (docs/EVIX_ANALISI_CONCORRENZA.html, gap-driven). 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
a7a21faa82
commit
5c545ea3d0
Binary file not shown.
@@ -0,0 +1,233 @@
|
||||
Agenda di Ricerca e Innovazione
|
||||
per la Cybersicurezza
|
||||
|
||||
Settore
|
||||
|
||||
Sottosettore o tipologia di soggetto
|
||||
Sottosettore o tipologia di Allegato
|
||||
soggetto I: Settori ad alta criticità
|
||||
|
||||
Grandi imprese
|
||||
|
||||
(occupano almeno 250 dipendenti oppure hanno un fatturato
|
||||
di almeno 50M€ oppure hanno un bilancio di almeno 43M€)
|
||||
|
||||
Medie imprese
|
||||
|
||||
(occupano almeno 50 dipendenti oppure hanno un fatturato
|
||||
di almeno 10M€ oppure hanno un bilancio di almeno 10M€)
|
||||
|
||||
Piccole e micro imprese
|
||||
|
||||
Autorità di Settore
|
||||
|
||||
1. Energia elettrica
|
||||
2. Teleriscaldamento e teleraffrescamento
|
||||
1. Energia
|
||||
|
||||
3. Petrolio
|
||||
4. Gas
|
||||
5. Idrogeno
|
||||
1. Trasporto aereo
|
||||
|
||||
2. Trasporti
|
||||
|
||||
2. Trasporto ferroviario
|
||||
3. Trasporto per vie d'acqua
|
||||
4. Trasporto su strada
|
||||
|
||||
3. Settore bancario
|
||||
|
||||
1. Enti creditizi quali definiti all'articolo 4, punto 1), del regolamento (UE) n. 575/2013 del Parlamento europeo e del Consiglio
|
||||
(DORA lex specialis)
|
||||
1. Gestori delle sedi di negoziazione quali definiti all'articolo 4, punto 24), della direttiva 2014/65/UE del Parlamento europeo e del Consiglio
|
||||
|
||||
4. Infrastrutture dei mercati finanziari
|
||||
|
||||
2. Controparti centrali (CCP) quali definite all'articolo 2, punto 1), del regolamento (UE) n. 648/2012 del Parlamento europeo e del Consiglio
|
||||
(DORA lex specialis)
|
||||
|
||||
Essenziali
|
||||
|
||||
Importanti1
|
||||
|
||||
Non in ambito2
|
||||
|
||||
Essenziali
|
||||
|
||||
Importanti1
|
||||
|
||||
Non in ambito2
|
||||
|
||||
1. Prestatori di assistenza sanitaria quali definiti all'articolo 3, lettera g), della direttiva 2011/24/UE del Parlamento europeo e del Consiglio
|
||||
2. Laboratori di riferimento dell'UE quali definiti all'articolo 15 del regolamento (UE) 2022/2371 del Parlamento europeo e del Consiglio
|
||||
5. Settore sanitario
|
||||
|
||||
3. Soggetti che svolgono attività di ricerca e sviluppo relative ai medicinali quali definiti all'articolo 1, punto 2), della direttiva 2001/83/CE
|
||||
del Parlamento europeo e del Consiglio
|
||||
4. Soggetti che fabbricano prodotti farmaceutici di base e preparati farmaceutici di cui alla sezione C, divisione 21, della NACE Rev. 2
|
||||
5. Soggetti che fabbricano dispositivi medici considerati critici durante un'emergenza di sanità pubblica (elenco dei dispositivi critici per
|
||||
l'emergenza di sanità pubblica) di cui all'articolo 22 del regolamento (UE) 2022/123 del Parlamento europeo e del Consiglio
|
||||
|
||||
6. Acqua potabile
|
||||
|
||||
1. Fornitori e distributori di acque destinate al consumo umano, quali definiti all'articolo 2, punto 1, lettera a), della direttiva (UE) 2020/2184
|
||||
del Parlamento europeo e del Consiglio, ma esclusi i distributori per i quali la distribuzione di acque destinate al consumo umano è una parte
|
||||
non essenziale dell'attività generale di distribuzione di altri prodotti e beni
|
||||
|
||||
7. Acque reflue
|
||||
|
||||
1. Imprese che raccolgono, smaltiscono o trattano acque reflue urbane, domestiche o industriali quali definite all'articolo 2, punti da 1), 2) e 3),
|
||||
della direttiva 91/271/CEE del Consiglio, escluse le imprese per cui la raccolta, lo smaltimento o il trattamento di acque reflue urbane,
|
||||
domestiche o industriali è una parte non essenziale della loro attività generale
|
||||
1. Fornitori di punti di interscambio Internet (Internet exchange point – IXP)
|
||||
2. Fornitori di servizi di sistema dei nomi di dominio (domain name system – DNS), esclusi gli operatori dei server dei nomi radice
|
||||
|
||||
Essenziali
|
||||
|
||||
3. Gestori di registri dei nomi di dominio di primo livello (top level domain – TLD)
|
||||
4. Fornitori di servizi di cloud computing
|
||||
8. Infrastrutture digitali
|
||||
|
||||
Essenziali
|
||||
|
||||
5. Fornitori di servizi di data center
|
||||
|
||||
Importanti1
|
||||
|
||||
Non in ambito2
|
||||
|
||||
6. Fornitori di reti di distribuzione dei contenuti (content delivery network – CDN)
|
||||
|
||||
Essenziali
|
||||
|
||||
7. Prestatori di servizi fiduciari qualificati e non qualificati
|
||||
8. Fornitori di reti pubbliche di comunicazione elettronica
|
||||
|
||||
10. Spazio
|
||||
|
||||
Importanti1
|
||||
|
||||
Essenziali
|
||||
|
||||
9. Fornitori di servizi di comunicazione elettronica accessibili al pubblico
|
||||
9. Gestione dei servizi TIC
|
||||
(business-to-business)
|
||||
|
||||
Essenziali i servizi fiduciari qualificati/Importanti1 quelli non qualificati
|
||||
|
||||
1. Fornitori di servizi gestiti
|
||||
2. Fornitori di servizi di sicurezza gestiti
|
||||
1. Operatori di infrastrutture terrestri possedute, gestite e operate dagli Stati membri o da privati, che sostengono la fornitura di servizi
|
||||
spaziali, esclusi i fornitori di reti pubbliche di comunicazione elettronica
|
||||
|
||||
Essenziali
|
||||
|
||||
Importanti1
|
||||
|
||||
Non in ambito2
|
||||
|
||||
Essenziali
|
||||
|
||||
Importanti1
|
||||
|
||||
Non in ambito2
|
||||
|
||||
Allegato II: altri settori critici
|
||||
1. Servizi postali e di corriere
|
||||
|
||||
1. Fornitori di servizi postali quali definiti all'articolo 2, punto 1 bis), della direttiva 97/67/CE, tra cui i fornitori di servizi di corriere
|
||||
|
||||
2. Gestione dei rifiuti
|
||||
|
||||
1. Imprese che si occupano della gestione dei rifiuti quali definite all'articolo 3, punto 9), della direttiva 2008/98/CE del Parlamento europeo
|
||||
e del Consiglio, escluse quelle per cui la gestione dei rifiuti non è la principale attività economica
|
||||
|
||||
3. Fabbricazione, produzione e distribuzione
|
||||
di sostanze chimiche
|
||||
|
||||
1. Imprese che si occupano della fabbricazione di sostanze e della distribuzione di sostanze o miscele di cui all'articolo 3, punti 9) e 14),
|
||||
del regolamento (CE) n. 1907/2006 del Parlamento europeo e del Consiglio e imprese che si occupano della produzione di articoli quali definite
|
||||
all'articolo 3, punto 3), del medesimo regolamento, da sostanze o miscele
|
||||
|
||||
4. Produzione, trasformazione e distribuzione
|
||||
di alimenti
|
||||
|
||||
1. Imprese alimentari quali definite all'articolo 3, punto 2), del regolamento (CE) n. 178/2002 del Parlamento europeo e del Consiglio che
|
||||
si occupano della distribuzione all'ingrosso e della produzione industriale e trasformazione
|
||||
1. Fabbricazione di dispositivi medici e di dispositivi medico-diagnostici in vitro
|
||||
|
||||
Importanti1
|
||||
|
||||
Non in ambito2
|
||||
|
||||
2. Fabbricazione di computer e prodotti di elettronica e ottica
|
||||
5. Fabbricazione
|
||||
|
||||
3. Fabbricazione di apparecchiature elettriche
|
||||
4. Fabbricazione di macchinari e apparecchiature n.c.a.
|
||||
5. Fabbricazione di autoveicoli, rimorchi e semirimorchi
|
||||
6. Fabbricazione di altri mezzi di trasporto
|
||||
1. Fornitori di mercati online
|
||||
|
||||
6. Fornitori di servizi digitali
|
||||
|
||||
2. Fornitori di motori di ricerca online
|
||||
3. Fornitori di piattaforme di social network
|
||||
|
||||
Importanti1
|
||||
|
||||
4. Fornitori di servizi di registrazione dei nomi di dominio
|
||||
7. Ricerca
|
||||
|
||||
Importanti1
|
||||
|
||||
1. Organizzazioni di ricerca
|
||||
|
||||
Non in ambito2
|
||||
|
||||
Allegato III: Amministrazioni centrali, regionali, locali e di altro tipo
|
||||
Amministrazioni centrali:
|
||||
1. Gli Organi costituzionali e di rilievo costituzionale
|
||||
2. La Presidenza del Consiglio dei ministri e i Ministeri
|
||||
3. Le Agenzie fiscali
|
||||
4. Le Autorità amministrative indipendenti
|
||||
|
||||
Essenziali
|
||||
|
||||
Amministrazioni regionali:
|
||||
1. Le Regioni e le Province autonome
|
||||
|
||||
Pubbliche Amministrazioni
|
||||
|
||||
Amministrazioni locali:
|
||||
1. Le Città metropolitane
|
||||
2. I Comuni con popolazione superiore a 100.000 abitanti
|
||||
3. I Comuni capoluoghi di regione
|
||||
4. Le Aziende sanitarie locali
|
||||
|
||||
Importanti1
|
||||
|
||||
Altri soggetti pubblici:
|
||||
1. Gli Enti di regolazione dell'attività economica
|
||||
2. Gli Enti produttori di servizi economici
|
||||
3. Gli Enti a struttura associativa
|
||||
4. Gli Enti produttori di servizi assistenziali, ricreativi e culturali
|
||||
5. Gli Enti e le Istituzioni di ricerca
|
||||
6. Gli Istituti zooprofilattici sperimentali
|
||||
|
||||
Allegato IV: Ulteriori tipologie di soggetti
|
||||
1. Soggetti che forniscono servizi di trasporto pubblico locale
|
||||
2. Istituti di istruzione che svolgono attività di ricerca
|
||||
|
||||
Soggetti a eventuale individuazione dell’Autorità
|
||||
|
||||
Ulteriori tipologie di soggetti
|
||||
3. Soggetti che svolgono attività di interesse culturale
|
||||
4. Società in house, società partecipate e società a controllo pubblico, come definite nel decreto legislativo 19 agosto 2016, n.175
|
||||
|
||||
Possibile individuazione dell’Autorità come essenziali
|
||||
2
|
||||
Possibile individuazione dell’Autorità come importanti o essenziali
|
||||
1
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,241 @@
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
Determinazione del Direttore Generale dell’Agenzia per la
|
||||
cybersicurezza nazionale
|
||||
di cui all’articolo 31, commi 1 e 2, del decreto legislativo 4 settembre 2024, n. 138, adottata
|
||||
secondo le modalità di cui all’articolo 40, comma 5, lettera l), che, ai sensi dell’articolo 42,
|
||||
comma 1, lettera c), in fase di prima applicazione, stabilisce le modalità e le specifiche di base
|
||||
per l’adempimento agli obblighi di cui agli articoli 23, 24, 25, 29 e 32 del decreto medesimo.
|
||||
IL DIRETTORE GENERALE
|
||||
VISTO il decreto-legge 14 giugno 2021, n. 82, come convertito con modificazioni nella legge 4
|
||||
agosto 2021, n. 109, recante “Disposizioni urgenti in materia di cybersicurezza, definizione
|
||||
dell’architettura nazionale di cybersicurezza e istituzione dell’Agenzia per la cybersicurezza
|
||||
nazionale”;
|
||||
VISTO il decreto legislativo 4 settembre 2024, n. 138, recante “il recepimento della direttiva (UE)
|
||||
2022/2555, relativa a misure per un livello comune elevato di cibersicurezza nell’Unione, recante
|
||||
modifica del regolamento (UE) n. 910/2014 e della direttiva (UE) 2018/1972 e che abroga la
|
||||
direttiva (UE) 2016/1148”, c.d. decreto NIS, ed in particolare l’articolo 31, commi 1 e 2, che
|
||||
prevede che, ai fini di cui agli articoli 23, 24, 25, 27, 28 e 29, l'Autorità nazionale competente NIS
|
||||
stabilisce obblighi proporzionati tenuto debitamente conto del grado di esposizione dei soggetti ai
|
||||
rischi, delle dimensioni dei soggetti e della probabilità che si verifichino incidenti, nonché della
|
||||
loro gravità, compreso il loro impatto sociale ed economico, nonché termini, modalità, specifiche
|
||||
e tempi graduali di implementazione di tali obblighi;
|
||||
VISTO l’articolo 40, comma 5, lettera l), del decreto NIS che prevede che tali obblighi sono stabiliti
|
||||
con una o più Determinazioni dell’Agenzia per la cybersicurezza nazionale, sentito il Tavolo per
|
||||
l’attuazione della disciplina NIS;
|
||||
VISTO altresì l’articolo 42, comma 1, lettera c), del decreto NIS, che prevede, in fase di prima
|
||||
applicazione, che l’Autorità nazionale competente NIS stabilisce le modalità e le specifiche di base
|
||||
per l’adempimento ai predetti obblighi;
|
||||
VISTO il decreto del Presidente del Consiglio dei ministri del 10 marzo 2023, recante la nomina
|
||||
del Prefetto Bruno Frattasi a Direttore generale dell’Agenzia per la cybersicurezza nazionale;
|
||||
VISTO il “Framework Nazionale per la Cybersecurity e la Data Protection”, edizione 2025
|
||||
(Framework nazionale), realizzato dal Centro di ricerca di cyber intelligence and information
|
||||
security (CIS) della Sapienza Università di Roma e dal Cybersecurity national lab del Consorzio
|
||||
interuniversitario nazionale per l'informatica (CINI), in collaborazione con l’Agenzia per la
|
||||
cybersicurezza nazionale (ACN), quale strumento di supporto per le organizzazioni pubbliche e
|
||||
private in materia di strategie e processi volti alla sicurezza informatica;
|
||||
CONSIDERATO che gli allegati tecnici recanti le predette specifiche di base, illustrate nella
|
||||
seconda riunione plenaria del Tavolo per l’attuazione della disciplina NIS, tenutasi il 28 gennaio
|
||||
1 di 6
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
2025, sono stati condivisi con le Autorità di settore e con le associazioni di categoria anche per
|
||||
mezzo dei tavoli settoriali di cui all’articolo 11, comma 4, lettera f), del decreto NIS;
|
||||
PRESSO ATTO dei riscontri pervenuti;
|
||||
SENTITO il Tavolo per l’attuazione della disciplina NIS nella riunione del 10 aprile 2025;
|
||||
RITENUTO di avviare la procedura di informazione ai sensi della Direttiva (UE) n. 2015/1535 del
|
||||
Parlamento europeo e del Consiglio del 9 settembre 2015;
|
||||
CONSIDERATO il grado di esposizione dei soggetti ai rischi, le dimensioni dei soggetti e la
|
||||
probabilità che si verifichino incidenti, nonché la loro gravità, compreso il loro impatto sociale ed
|
||||
economico;
|
||||
|
||||
ADOTTA LA PRESENTE DETERMINAZIONE
|
||||
|
||||
Articolo 1
|
||||
(Definizioni)
|
||||
1. Ai fini della presente determinazione si intende per:
|
||||
a) “decreto NIS”, il decreto legislativo 4 settembre 2024, n. 138;
|
||||
b) “Agenzia per la cybersicurezza nazionale”, l’Agenzia per la cybersicurezza nazionale
|
||||
di cui all’articolo 5, comma 1, del decreto-legge 14 giugno 2021, n. 82;
|
||||
c) “Autorità nazionale competente NIS”, l’Autorità nazionale competente di cui
|
||||
all’articolo 10, comma 1, del decreto NIS;
|
||||
d) “Autorità di settore NIS”, le Amministrazioni di cui all’articolo 11, commi 1 e 2, del
|
||||
decreto NIS;
|
||||
e) “soggetto NIS”, un soggetto, di cui all’articolo 2, comma 1, lettera hhh), del decreto
|
||||
NIS, di natura giuridica pubblica o privata che rientra nell’ambito di applicazione del
|
||||
decreto NIS;
|
||||
f) “soggetti essenziali”, i soggetti NIS considerati essenziali ai sensi del decreto NIS;
|
||||
g) “soggetti importanti”, i soggetti NIS considerati importanti ai sensi del decreto NIS;
|
||||
h) “comunicazione di inserimento nell’elenco dei soggetti NIS”, la comunicazione di cui
|
||||
all’articolo 7, comma 3, lettera a), del decreto NIS;
|
||||
i) “organi di amministrazione e direttivi”, gli organi di amministrazione e direttivi di cui
|
||||
all’articolo 23 del decreto NIS, ivi incluso, laddove presente, il consiglio di
|
||||
amministrazione dei soggetti NIS;
|
||||
j) “misure di sicurezza di base”, specifiche di base per gli obblighi di cui agli articoli 23
|
||||
e 24 del decreto NIS, sviluppate in accordo al Framework nazionale e organizzate in
|
||||
funzioni, categorie, sottocategorie e requisiti;
|
||||
k) “incidenti significativi di base”, le specifiche di base che descrivono gli incidenti
|
||||
significativi di cui all’articolo 25 del decreto NIS;
|
||||
|
||||
2 di 6
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
l) “sistemi informativi e di rete rilevanti”, sistemi informativi e di rete la cui
|
||||
compromissione comporterebbe un impatto significativo sulla confidenzialità, integrità
|
||||
e disponibilità delle attività e servizi per i quali il soggetto NIS rientra nell’ambito di
|
||||
applicazione del decreto NIS;
|
||||
m) “fornitori di servizi di registrazione dei nomi di dominio”, i fornitori di cui all’articolo
|
||||
2, comma 1, lettera oo), del decreto NIS;
|
||||
n) “gestori di registri dei nomi di dominio di primo livello”, i gestori di cui all’articolo 2,
|
||||
comma 1, lettera pp), del decreto NIS;
|
||||
o) “soggetti PSNC-NIS”, i soggetti di cui all'articolo 1, comma 2-bis, del decreto-legge n.
|
||||
105 del 2019 che sono soggetti NIS;
|
||||
p) “sistemi informativi e di rete PSNC”, sistemi informativi e di rete che sono inseriti
|
||||
nell'elenco di cui all'articolo 1, comma 2, lettera b), del decreto-legge n. 105 del 2019
|
||||
q) “operatori di servizi essenziali”, c.d. OSE, i soggetti NIS identificati prima della data di
|
||||
entrata in vigore del decreto NIS come operatori di servizi essenziali ai sensi del decreto
|
||||
legislativo 18 maggio 2018, n. 65;
|
||||
r) “sistemi informativi e di rete OSE”, sistemi informativi e di rete dell’operatore di servizi
|
||||
essenziali che abilitano i servizi essenziali per i quali l’operatore stesso è stato
|
||||
identificato ai sensi del decreto legislativo 18 maggio 2018, n. 65;
|
||||
s) “operatori telco”, i soggetti NIS che forniscono reti pubbliche di comunicazione
|
||||
elettronica o servizi di comunicazioni elettroniche accessibili al pubblico ai sensi del
|
||||
decreto legislativo 1° agosto 2003, n. 259, ad un numero di utenti pari o superiore, anche
|
||||
alternativamente:
|
||||
1) all’1% della base di utenti nazionale, calcolato sulla base dei dati pubblicati
|
||||
dall’Osservatorio trimestrale delle comunicazioni a cura dell’Autorità per le
|
||||
garanzie nelle comunicazioni;
|
||||
2) a un milione;
|
||||
t) “sistemi informativi e di rete telco”, sistemi informativi e di rete per l’accesso alla rete
|
||||
fissa o mobile, da postazione o da terminale mobile, individuati come critici
|
||||
dall’operatore telco in quanto potenzialmente in grado di servire, per ciascun servizio
|
||||
indicato:
|
||||
1) una percentuale dell’utenza pari o superiore all’1% della base di utenti nazionale
|
||||
per quel servizio, sulla base dei dati pubblicati dall’Osservatorio trimestrale delle
|
||||
comunicazioni a cura dell’Autorità per le garanzie nelle comunicazioni;
|
||||
2) un’utenza pari o superiore a un milione.
|
||||
Articolo 2
|
||||
(Adozione delle specifiche di base)
|
||||
1. In fase di prima applicazione del decreto NIS sono adottate le specifiche di base di cui agli
|
||||
allegati 1, 2, 3 e 4, facenti parte integrante della presente determinazione.
|
||||
2. Le misure di sicurezza di base, a carico degli organi di amministrazione e direttivi e in
|
||||
materia di misure di gestione dei rischi per la sicurezza informatica, sono stabiliti:
|
||||
a) per i soggetti importanti, nell’allegato 1;
|
||||
b) per i soggetti essenziali, nell’allegato 2.
|
||||
3 di 6
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
3. Gli incidenti significativi di base sono stabiliti:
|
||||
a) per i soggetti importanti, nell’allegato 3;
|
||||
b) per i soggetti essenziali, nell’allegato 4.
|
||||
Articolo 3
|
||||
(Termini per l’adozione delle specifiche di base)
|
||||
1. Il termine per l’adozione delle misure di sicurezza di base di cui agli allegati 1 e 2 è fissato
|
||||
in diciotto mesi dalla ricezione, da parte del soggetto NIS della comunicazione di
|
||||
inserimento nell’elenco dei soggetti NIS.
|
||||
2. Il termine per l’adempimento dell’obbligo di notifica degli incidenti significativi di base
|
||||
descritti negli allegati 3 e 4 è fissato in nove mesi dalla ricezione, da parte del soggetto NIS,
|
||||
della comunicazione di inserimento nell’elenco dei soggetti NIS.
|
||||
Articolo 4
|
||||
(Sicurezza, stabilità e resilienza dei sistemi di nomi di dominio)
|
||||
1. Fermo restando quanto previsto dall’articolo 29 del decreto NIS, entro diciotto mesi dalla
|
||||
ricezione della comunicazione di inserimento nell’elenco dei soggetti NIS, i gestori di
|
||||
registri dei nomi di dominio di primo livello e i fornitori di servizi di registrazione dei nomi
|
||||
di dominio si adeguano alle previsioni di cui al predetto articolo, commi 1 e 2, nonché
|
||||
adottano e rendono pubbliche le politiche e le procedure di cui al comma 3 del medesimo
|
||||
articolo.
|
||||
2. Le modalità di adeguamento alle previsioni di cui all’articolo 29, commi 1 e 2, nonché le
|
||||
politiche e le procedure di cui al comma 3 del medesimo articolo sono approvate dagli organi
|
||||
di amministrazione e direttivi.
|
||||
3. Ai sensi dell’articolo 32, comma 3, i gestori di registri dei nomi di dominio di primo livello
|
||||
e i fornitori di servizi di registrazione dei nomi di dominio adottano politiche al fine di
|
||||
assicurare un livello di sicurezza informatica coerente con le specifiche di cui all’allegato 1.
|
||||
4. Le politiche di sicurezza informatica di cui al comma 3 sono approvate dagli organi di
|
||||
amministrazione e direttivi.
|
||||
Articolo 5
|
||||
(Obblighi di notifica per i soggetti PSNC-NIS)
|
||||
1. Fermo restando quanto previsto dall’articolo 33 del decreto NIS, i soggetti PSNC-NIS
|
||||
notificano gli incidenti significativi di base di cui all’allegato 4, ai sensi dell’articolo 25 del
|
||||
decreto NIS, limitatamente ai sistemi informativi e di rete diversi da quelli PSNC.
|
||||
2. Il termine per l’obbligo di cui al comma 1 decorre dalla data di entrata in vigore della
|
||||
presente determinazione.
|
||||
|
||||
4 di 6
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
Articolo 6
|
||||
(Regime transitorio per gli operatori di servizi essenziali)
|
||||
1. Fermo restando quanto previsto dall’articolo 2, comma 2, e dall’articolo 3, comma 1, gli
|
||||
operatori di servizi essenziali, limitatamente ai sistemi informativi e di rete OSE, per quanto
|
||||
non in contrasto con la legge e il decreto NIS, assicurano il mantenimento delle misure
|
||||
tecniche e organizzative già adottate prima dell’entrata in vigore del decreto NIS ai sensi del
|
||||
decreto legislativo 18 maggio 2018, n. 65.
|
||||
2. Al fine di assicurare la continuità dell’obbligo di notifica di incidente di cui all’articolo 12,
|
||||
comma 5, del decreto legislativo 18 maggio 2018, n. 65, dall’entrata in vigore della presente
|
||||
determinazione, ai sensi dell’articolo 25 del decreto NIS, gli operatori di servizi essenziali,
|
||||
limitatamente ai sistemi informativi e di rete OSE, notificano gli incidenti significativi di
|
||||
base di cui:
|
||||
a) all’allegato 3, qualora siano soggetti importanti;
|
||||
b) all’allegato 4, qualora siano soggetti essenziali.
|
||||
3. Il termine per gli adempimenti di cui al presente articolo decorre dalla data di entrata in
|
||||
vigore della presente determinazione.
|
||||
Articolo 7
|
||||
(Regime transitorio per gli operatori telco)
|
||||
1. Fermo restando quanto previsto dall’articolo 2, comma 2, e dall’articolo 3, comma 1, gli
|
||||
operatori telco, limitatamente ai sistemi informativi e di rete telco, per quanto non in
|
||||
contrasto con la legge e il decreto NIS, assicurano il mantenimento delle misure di sicurezza
|
||||
e di integrità delle reti e dei servizi già adottate prima dell’entrata in vigore del decreto NIS
|
||||
ai sensi del decreto del Ministro dello sviluppo economico del 12 dicembre 2018.
|
||||
2. Al fine di assicurare la continuità dell’obbligo di notifica di incidente di cui all’articolo 40,
|
||||
comma 3, lettera b), del decreto legislativo 1° agosto 2003, n. 259, ai sensi dell’articolo 25
|
||||
del decreto NIS, dall’entrata in vigore della presente determinazione, gli operatori telco,
|
||||
limitatamente ai sistemi informativi e di rete telco, notificano gli incidenti significativi di
|
||||
base:
|
||||
a) di cui all’allegato 3, qualora siano soggetti importanti;
|
||||
b) di cui all’allegato 4, qualora siano soggetti essenziali.
|
||||
3. Ai fini del comma 2, nella definizione del livello di servizio atteso di cui agli allegati 3 e 4,
|
||||
gli operatori telco considerano come incidenti significativi di base i seguenti casi:
|
||||
a) durata superiore ad un’ora e percentuale degli utenti colpiti superiore al quindici per
|
||||
cento del totale degli utenti nazionali del servizio interessato;
|
||||
b) durata superiore a due ore e percentuale degli utenti colpiti superiore al dieci per
|
||||
cento del totale degli utenti nazionali del servizio interessato;
|
||||
c) durata superiore a quattro ore e percentuale degli utenti colpiti superiore al cinque
|
||||
per cento del totale degli utenti nazionali del servizio interessato;
|
||||
5 di 6
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
d) durata superiore a sei ore e percentuale degli utenti colpiti superiore al due per cento
|
||||
del totale degli utenti nazionali del servizio interessato;
|
||||
e) durata superiore ad otto ore e percentuale degli utenti colpiti superiore all’uno per
|
||||
cento del totale degli utenti nazionali del servizio interessato.
|
||||
4.
|
||||
|
||||
Il termine per gli adempimenti di cui al presente articolo decorre dalla data di entrata in
|
||||
vigore della presente determinazione.
|
||||
Articolo 8
|
||||
(Disposizioni finanziarie)
|
||||
|
||||
1. Dalla presente determinazione non derivano nuovi o maggiori oneri a carico della finanza
|
||||
pubblica, anche ai sensi dell’articolo 12, comma 6, del decreto NIS.
|
||||
Articolo 9
|
||||
(Pubblicità)
|
||||
1. La presente determinazione è pubblicata sui siti web istituzionali dell’Agenzia per la
|
||||
cybersicurezza nazionale e delle Autorità di settore NIS. Ne sarà data, altresì,
|
||||
comunicazione tramite pubblicazione nella Gazzetta Ufficiale della Repubblica italiana.
|
||||
Articolo 10
|
||||
(Entrata in vigore e disposizioni transitorie)
|
||||
1. Per quanto non previsto dalla presente determinazione, si applicano le disposizioni del
|
||||
decreto NIS.
|
||||
2. La presente determinazione entra in vigore a decorrere dal 30 aprile 2025.
|
||||
3. L’articolo 2, commi 2 e 3, e l’articolo 3 entrano in vigore il giorno successivo
|
||||
all’esperimento della procedura di informazione ai sensi della Direttiva (UE) n. 2015/1535
|
||||
del Parlamento europeo e del Consiglio del 9 settembre 2015.
|
||||
Roma, data del protocollo
|
||||
IL DIRETTORE GENERALE
|
||||
Bruno Frattasi
|
||||
|
||||
Firmato digitalmente da: Bruno
|
||||
Frattasi
|
||||
Data: 14/04/2025 10:52:39
|
||||
|
||||
6 di 6
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,678 @@
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
Determinazione del Direttore generale dell’Agenzia per la
|
||||
cybersicurezza nazionale
|
||||
di cui all’articolo 7, comma 6, del decreto legislativo 4 settembre 2024, n. 138, adottata
|
||||
secondo le modalità di cui all’articolo 40, comma 5, recante termini, modalità e procedimenti
|
||||
di utilizzo e accesso alla piattaforma digitale nonché ulteriori informazioni che i soggetti
|
||||
devono fornire all’Autorità nazionale competente NIS e termini, modalità e procedimento di
|
||||
designazione dei rappresentanti NIS sul territorio nazionale.
|
||||
IL DIRETTORE GENERALE
|
||||
VISTO il decreto legislativo 12 gennaio 2019, n. 14, recante “Codice della crisi d'impresa e
|
||||
dell'insolvenza in attuazione della legge 19 ottobre 2017, n. 155”;
|
||||
VISTO il decreto-legge 14 giugno 2021, n. 82, convertito, con modificazioni, dalla legge 4 agosto
|
||||
2021, n. 109, recante “Disposizioni urgenti in materia di cybersicurezza, definizione
|
||||
dell’architettura nazionale di cybersicurezza e istituzione dell’Agenzia per la cybersicurezza
|
||||
nazionale”;
|
||||
VISTO il decreto legislativo 4 settembre 2024, n. 138, recante “Recepimento della direttiva (UE)
|
||||
2022/2555, relativa a misure per un livello comune elevato di cibersicurezza nell’Unione, recante
|
||||
modifica del regolamento (UE) n. 910/2014 e della direttiva (UE) 2018/1972 e che abroga la
|
||||
direttiva (UE) 2016/1148” e, in particolare, l’articolo 7 e l’articolo 40, comma 5, lettera b);
|
||||
VISTO il Regolamento (CEE) n. 2137/85 del Consiglio del 25 luglio 1985 relativo all'istituzione di
|
||||
un gruppo europeo di interesse economico (GEIE);
|
||||
VISTO il decreto legislativo 23 luglio 1991, n. 240, recante “Norme per l’applicazione del
|
||||
regolamento n. 85/2137/CEE relativo all’istituzione di un Gruppo europeo di interesse economico GEIE, ai sensi dell’art. 17 della legge 29 dicembre 1990, n. 428”;
|
||||
VISTA la raccomandazione 2003/361/CE della Commissione, del 6 maggio 2003, relativa alla
|
||||
definizione delle microimprese, piccole e medie imprese;
|
||||
VISTA la legge 28 giugno 2024, n. 90, recante “Disposizioni in materia di rafforzamento della
|
||||
cybersicurezza nazionale e di reati informatici”;
|
||||
VISTO il decreto del Presidente della Repubblica 28 dicembre 2000, n. 445, recante “Testo unico
|
||||
delle disposizioni legislative e regolamentari in materia di documentazione amministrativa”, e, in
|
||||
particolare, l’articolo 76;
|
||||
CONSIDERATO che, ai sensi del richiamato articolo 7, comma 1, del decreto legislativo 4
|
||||
settembre 2024, n. 138, i soggetti di cui all'articolo 3 del medesimo decreto si registrano o
|
||||
|
||||
1 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
aggiornano la propria registrazione sulla piattaforma digitale resa disponibile dall'Autorità
|
||||
nazionale competente NIS;
|
||||
CONSIDERATO, altresì, che, ai sensi dell’articolo 7, comma 6, e dell’articolo 40, comma 5,
|
||||
lettera b), del decreto legislativo 4 settembre 2024, n. 138, con determinazione dell’Agenzia per la
|
||||
cybersicurezza nazionale, sentito il Tavolo per l’attuazione della disciplina NIS, sono stabiliti i
|
||||
termini, le modalità nonché i procedimenti di utilizzo e accesso alla piattaforma digitale di cui
|
||||
all’articolo 7 e le eventuali ulteriori informazioni che i soggetti devono fornire ai sensi dello stesso
|
||||
articolo, nonché i termini, le modalità e i procedimenti di designazione dei rappresentanti di cui
|
||||
all’articolo 5, comma 3, del medesimo decreto legislativo;
|
||||
RICHIAMATA la propria determinazione n. 333017 del 22 settembre 2025 che ha aggiornato la
|
||||
precedente determinazione n.38565 del 26 novembre 2024 integrandovi le modalità di designazione
|
||||
del referente CSIRT e di aggiornamento annuale delle informazioni, tramite il servizio dedicato
|
||||
NIS/Aggiornamento annuale disponibile sul Portale ACN;
|
||||
RITENUTO di aggiornare e sostituire la predetta determinazione in vista della registrazione 2026
|
||||
dei soggetti NIS sul portale ACN tramite il servizio dedicato NIS/Dichiarazione;
|
||||
SENTITO il Tavolo per l’attuazione della disciplina NIS di cui all’articolo 12 del decreto
|
||||
legislativo 4 settembre 2024, n. 138, nella riunione del 18 dicembre 2025;
|
||||
ADOTTA LA PRESENTE DETERMINAZIONE
|
||||
Capo I
|
||||
Disposizioni di carattere generale
|
||||
Articolo 1
|
||||
(Definizioni)
|
||||
1. Ai fini della presente determinazione si intende per:
|
||||
a) “decreto NIS”, il decreto legislativo 4 settembre 2024, n. 138;
|
||||
b) “Agenzia per la cybersicurezza nazionale”, l’Agenzia per la cybersicurezza nazionale
|
||||
di cui all’articolo 5, comma 1, del decreto-legge 14 giugno 2021, n. 82;
|
||||
c) “Autorità nazionale competente NIS”, l’Autorità nazionale competente di cui
|
||||
all’articolo 10, comma 1, del decreto NIS;
|
||||
d) “Autorità di settore NIS”, le Amministrazioni di cui all’articolo 11, commi 1 e 2, del
|
||||
decreto NIS;
|
||||
e) “organi di amministrazione e direttivi”, gli organi di amministrazione e direttivi di cui
|
||||
all’articolo 23 del decreto NIS, ivi incluso, laddove presente, il consiglio di
|
||||
amministrazione dei soggetti NIS;
|
||||
f) “Portale ACN”, il Portale dei servizi tramite il quale sono accessibili i servizi che
|
||||
l’Agenzia per la cybersicurezza nazionale mette a disposizione dei suoi interlocutori e
|
||||
dei soggetti, pubblici e privati, che rientrano nell’ambito di applicazione della disciplina
|
||||
cyber o con i quali l’Agenzia deve interagire ai sensi della stessa;
|
||||
2 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
g) “SPID”, il Sistema pubblico dell’identità digitale, istituito ai sensi dell'art. 64 del CAD,
|
||||
modificato dall’art. 17-ter del decreto-legge 21 giugno 2013, n. 69, convertito con
|
||||
modificazioni, dalla legge 9 agosto 2013, n. 98, ai sensi del Decreto del Presidente del
|
||||
Consiglio dei Ministri 24 ottobre 2014;
|
||||
h) “CIE”, Carta di Identità Elettronica, è il documento d’identità personale garantita dallo
|
||||
Stato e rilasciata dal Ministero dell’Interno che permette l’accertamento dell’identità del
|
||||
possessore e l’accesso ai servizi online delle Pubbliche Amministrazioni;
|
||||
i) “Servizi NIS”, i servizi, accessibili tramite il Portale ACN, necessari per supportare
|
||||
l’espletamento degli adempimenti previsti dal decreto NIS e le interlocuzioni tra
|
||||
l’Autorità nazionale compente NIS e i soggetti;
|
||||
j) “Servizio NIS/Dichiarazione”, il Servizio NIS reso disponibile dall’Autorità nazionale
|
||||
competente NIS ai soggetti ai fini della registrazione di cui all’articolo 7, comma 1, del
|
||||
decreto NIS;
|
||||
k) “Servizio NIS/Aggiornamento annuale informazioni”, il Servizio NIS reso disponibile
|
||||
dall’Autorità nazionale competente NIS ai soggetti NIS per l’aggiornamento annuale,
|
||||
delle informazioni di cui all’articolo 7, commi 4 e 5, del decreto NIS;
|
||||
l) “Servizio NIS/Aggiornamento continuo informazioni”, il Servizio NIS reso disponibile
|
||||
dall’Autorità nazionale competente NIS ai soggetti NIS per l’aggiornamento continuo,
|
||||
delle informazioni trasmesse ai sensi dell’articolo 7, comma 7, del decreto NIS;
|
||||
m) “sito web”, il sito web istituzionale dell’Agenzia per la cybersicurezza nazionale
|
||||
(acn.gov.it);
|
||||
n) “piattaforma digitale”, la piattaforma digitale di cui all’articolo 7, comma 1, del decreto
|
||||
NIS, accessibile tramite il Portale ACN per l’erogazione dei Servizi NIS;
|
||||
o) “soggetto”, un soggetto, di cui all’articolo 2, comma 1, lettera hhh), del decreto NIS, di
|
||||
natura giuridica pubblica o privata per conto della quale un utente accede al Portale
|
||||
ACN e, in particolare, ai Servizi NIS;
|
||||
p) “soggetto NIS”, un soggetto che rientra nell’ambito di applicazione del decreto NIS;
|
||||
q) “punto di contatto”, la persona fisica designata dal soggetto NIS ai sensi dell’articolo 7,
|
||||
comma 1, lettera c), del decreto NIS;
|
||||
r) “sostituto punto di contatto”, la persona fisica designata dal soggetto NIS ai sensi
|
||||
dell’articolo 7, comma 4, lettera d), del decreto NIS;
|
||||
s) “segreteria”, la persona fisica che svolge funzioni di supporto al punto di contatto e al
|
||||
sostituto punto di contatto per promuovere l’efficace interlocuzione con l’Autorità
|
||||
nazionale competente NIS;
|
||||
t) “operatore”, la persona fisica che svolge funzioni di supporto al punto di contatto e al
|
||||
sostituto punto di contatto operando sui servizi NIS;
|
||||
u) “utente”, i componenti degli organi di amministrazione e direttivi, il punto di contatto,
|
||||
il sostituto punto di contatto, la segreteria, il referente CSIRT, il sostituto referente
|
||||
CSIRT e gli operatori che accedono al Portale ACN e, in particolare, accedono ai servizi
|
||||
di competenza;
|
||||
v) “referente CSIRT e sostituti”, le persone fisiche designate dal Punto di contatto per
|
||||
interloquire con lo CSIRT Italia, di cui all’articolo 2, comma 1, lettera i) del decreto
|
||||
NIS, ed effettuare le notifiche di cui agli articoli 25 e 26 del medesimo decreto;
|
||||
w) “rappresentante NIS”, il rappresentante di cui all’articolo 5, comma 3, del decreto NIS;
|
||||
3 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
x) “censimento”, il processo di autenticazione, tracciamento e verifica di un utente
|
||||
finalizzato alla sua associazione a un soggetto per accedere al Portale ACN e, in
|
||||
particolare, ai Servizi NIS;
|
||||
y) “associazione”, il processo di tracciamento, verifica e convalida dell’associazione
|
||||
dell’utenza con un soggetto che consente all’utente stesso di accedere al Portale ACN
|
||||
e, in particolare, ai Servizi NIS;
|
||||
z) “registrazione”, il processo di cui all’articolo 7, comma 1, del decreto NIS;
|
||||
aa) “dichiarazione”, la dichiarazione resa dal punto di contatto ai fini della registrazione;
|
||||
bb) “elenco dei soggetti NIS”, l’elenco dei soggetti essenziali e dei soggetti importanti di
|
||||
cui all’articolo 7, comma 3, del decreto NIS;
|
||||
cc) “impresa collegata”, un soggetto che soddisfa i criteri di cui all’articolo 3, paragrafi 2 e
|
||||
3, dell’allegato alla raccomandazione 2003/361/CE, o che fa parte di un gruppo di
|
||||
imprese;
|
||||
dd) “impresa autonoma”, una impresa non identificabile come impresa collegata;
|
||||
ee) “gruppo di imprese”, ai sensi dell’articolo 2, comma 1, lettera h), del decreto legislativo
|
||||
12 gennaio 2019, n. 14, l'insieme delle società, delle imprese e degli enti, esclusi lo
|
||||
Stato e gli enti territoriali, che esercitano o sono sottoposti, ai sensi degli articoli
|
||||
2497 e 2545-septies del codice civile, alla direzione e coordinamento di una società, di
|
||||
un ente o di una persona fisica; a tal fine si presume, salvo prova contraria, che l'attività
|
||||
di direzione e coordinamento delle società del gruppo sia esercitata dalla società o ente
|
||||
tenuto al consolidamento dei loro bilanci oppure dalla società o ente che le controlla,
|
||||
direttamente o indirettamente, anche nei casi di controllo congiunto;
|
||||
ff) “gruppo europeo di interesse economico (GEIE)”, un gruppo di imprese costituito sulla
|
||||
base delle condizioni, modalità ed effetti disciplinati dal Regolamento (CEE) n.
|
||||
2137/85.
|
||||
gg) “aggiornamento annuale delle informazioni”, il processo tramite il quale i soggetti NIS
|
||||
forniscono e, ogni anno, aggiornano le informazioni di cui all’articolo 7, commi 4 e 5,
|
||||
del decreto NIS;
|
||||
hh) “aggiornamento continuo delle informazioni”, il processo tramite il quale, ai sensi
|
||||
dell’articolo 7, comma 7, del decreto NIS, i soggetti NIS comunicano qualsiasi modifica
|
||||
delle informazioni trasmesse ai sensi dei commi 4 e 5 del medesimo articolo
|
||||
tempestivamente e, in ogni caso, entro quattordici giorni dalla data della modifica;
|
||||
ii) “spazio di indirizzamento IP pubblico in uso o nella disponibilità del soggetto NIS”, gli
|
||||
indirizzi IP pubblici e statici che un soggetto NIS utilizza o ha nella propria disponibilità
|
||||
in forza di contratti o accordi con fornitori di servizi Internet (ISP), Registri Internet
|
||||
Regionali o altre organizzazioni deputate alla fornitura di indirizzi IP sulla base delle
|
||||
normative e degli accordi nazionali, europei e internazionali vigenti;
|
||||
jj) “nomi di dominio in uso o nella disponibilità del soggetto NIS”, i nomi di dominio che
|
||||
un soggetto NIS utilizza o ha nella propria disponibilità in forza di contratti o accordi
|
||||
con fornitori di servizi di registrazione di nomi di dominio o altre organizzazioni
|
||||
deputate loro fornitura di nomi di dominio sulla base delle normative e degli accordi
|
||||
nazionali, europei e internazionali vigenti;
|
||||
kk) “accordi di condivisione”, gli accordi di condivisione delle informazioni sulla sicurezza
|
||||
informatica, di cui all’articolo 17, comma 2, del decreto NIS.
|
||||
4 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
Articolo 2
|
||||
(Oggetto, ambito di applicazione e finalità)
|
||||
1. La presente determinazione stabilisce termini, modalità e procedimenti di utilizzo e accesso
|
||||
al Portale ACN e, in particolare, ai Servizi NIS nonché le ulteriori informazioni che i
|
||||
soggetti NIS devono fornire all’Autorità nazionale competente NIS ai fini dello svolgimento
|
||||
delle funzioni attribuite dal decreto NIS, i termini, le modalità e i procedimenti di
|
||||
designazione dei rappresentanti NIS nell’Unione.
|
||||
2. Ai fini del comma 1, la presente determinazione definisce:
|
||||
a) le modalità di designazione del punto di contatto e del sostituto punto di contatto:
|
||||
b) il processo per il censimento degli utenti per accedere al Portale ACN;
|
||||
c) il procedimento per l’associazione degli utenti al soggetto per conto del quale accedono
|
||||
ai Servizi NIS;
|
||||
d) il procedimento per la registrazione, tramite il “Servizio NIS/Dichiarazione”;
|
||||
e) il processo per la conferma annuale delle informazioni, tramite il “Servizio
|
||||
NIS/Aggiornamento annuale informazioni”;
|
||||
f) il processo per l’aggiornamento continuo delle informazioni, tramite il “Servizio
|
||||
NIS/Aggiornamento continuo informazioni”.
|
||||
3. Ai sensi dell’articolo 23, comma 1, lettera b), del decreto NIS, gli organi di amministrazione
|
||||
e direttivi dei soggetti NIS sovrintendono alla registrazione, comunicazione o
|
||||
aggiornamento delle informazioni di cui all’articolo 7 del medesimo decreto e sono
|
||||
responsabili delle eventuali violazioni.
|
||||
4. La mancata registrazione, comunicazione o aggiornamento delle informazioni di cui
|
||||
all’articolo 7 del decreto NIS, con le modalità sopra indicate, è punita ai sensi dell’articolo
|
||||
38 del medesimo decreto.
|
||||
Articolo 3
|
||||
(Termini di uso del Portale ACN e dei Servizi NIS)
|
||||
1. I soggetti comunicano con l’Autorità nazionale competente NIS, anche ai fini del
|
||||
censimento, dell’associazione e della registrazione, esclusivamente tramite i Servizi NIS o
|
||||
tramite la sezione dedicata nell’area NIS del sito web, salvo in caso di diversa espressa
|
||||
specifica indicazione dell’Autorità nazionale competente o per cause di forza maggiore,
|
||||
fermo restando quanto previsto dal decreto NIS.
|
||||
2. Le istruttorie dell’Autorità nazionale competente NIS e delle Autorità di settore NIS ai fini
|
||||
della presente determinazione sono svolte prioritariamente sulla base delle informazioni
|
||||
trasmesse dai soggetti tramite i Servizi NIS.
|
||||
3. Gli utenti aggiornano le informazioni trasmesse tramite il Portale ACN o tramite i Servizi
|
||||
NIS tempestivamente, secondo eventuale specifica indicazione dell’Autorità nazionale
|
||||
competente NIS, nel rispetto dei termini indicati dal decreto NIS.
|
||||
4. Gli utenti sono tenuti a verificare la correttezza delle informazioni visualizzate o ricevute
|
||||
tramite il Portale ACN e i Servizi NIS, e in caso di incongruenze effettuano la segnalazione
|
||||
di cui al comma 6.
|
||||
|
||||
5 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
5. Resta ferma la responsabilità penale, ai sensi dell’articolo 76 del decreto del Presidente della
|
||||
Repubblica del 28 dicembre 2000, n. 445, in caso di rilascio di dichiarazioni mendaci,
|
||||
formazione di atti falsi o, comunque, contenenti dati non più rispondenti a verità.
|
||||
6. Gli utenti segnalano, tramite gli appositi canali di comunicazione del Portale ACN o tramite
|
||||
la sezione dedicata nell’area NIS del sito web, malfunzionamenti o comportamenti inattesi
|
||||
del Portale ACN stesso e dei Servizi NIS.
|
||||
7. Le informazioni visualizzate o ricevute tramite il Portale ACN e i Servizi NIS sono
|
||||
condivise nel rispetto della politica di condivisione delle informazioni. Salvo diversa
|
||||
specifica indicazione, le informazioni visualizzate o ricevute tramite il Portale ACN e i
|
||||
Servizi NIS sono a divulgazione limitata e sono ristrette all’originatore e ai destinatari
|
||||
dell’informazione, nonché alle loro organizzazioni, alle loro terze parti e ai propri clienti. I
|
||||
destinatari non possono condividere le informazioni ricevute al di fuori della propria
|
||||
organizzazione, delle loro terze parti e dei propri clienti. La condivisione delle informazioni
|
||||
ricevute nella propria organizzazione con le terze parti e con i clienti è limitata ai dati
|
||||
strettamente necessari per lo svolgimento delle attività (principio del need-to-know).
|
||||
Articolo 4
|
||||
(Punto di contatto)
|
||||
1. Il punto di contatto è una persona fisica designata dal soggetto NIS con il compito di curare
|
||||
l'attuazione delle disposizioni del decreto NIS per conto del soggetto stesso. In particolare,
|
||||
il punto di contatto accede al Portale ACN e ai Servizi NIS, effettua, per conto del soggetto,
|
||||
la registrazione di cui all’articolo 7 del decreto NIS, e interloquisce, per conto del soggetto
|
||||
NIS, con l’Autorità nazionale competente NIS.
|
||||
2. Le funzioni di punto di contatto possono essere svolte dal rappresentante legale del soggetto
|
||||
NIS, da uno dei procuratori generali del soggetto NIS, censiti sul registro delle imprese di
|
||||
cui all’articolo 8 della legge 29 dicembre 1993, n. 580, o da un dipendente del soggetto NIS
|
||||
delegato dal rappresentante legale del soggetto medesimo. Laddove il punto di contatto,
|
||||
nell’espletamento delle proprie funzioni, si avvalga di personale esterno, restano comunque
|
||||
ferme le disposizioni di cui al comma 1.
|
||||
3. Qualora il soggetto sia parte di un gruppo di imprese, le funzioni di punto di contatto
|
||||
possono essere svolte da un dipendente di un’altra impresa del gruppo che rientra
|
||||
nell’ambito di applicazione del decreto NIS, delegato dal rappresentante legale del soggetto
|
||||
stesso.
|
||||
4. Qualora il soggetto NIS sia una pubblica amministrazione, le funzioni di punto di contatto
|
||||
possono essere svolte da personale che presta servizio o dipendente di un’altra pubblica
|
||||
amministrazione che rientra nell’ambito di applicazione del decreto NIS, previa
|
||||
autorizzazione di quest'ultima ai sensi dell'articolo 53 del decreto legislativo 30 marzo 2001,
|
||||
n. 165, delegato dal rappresentante legale del soggetto stesso.
|
||||
5. Il punto di contatto riferisce direttamente al vertice gerarchico del soggetto NIS nonché agli
|
||||
organi di amministrazione e direttivi del soggetto medesimo ai fini di quanto previsto dal
|
||||
decreto NIS.
|
||||
|
||||
6 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
6. Resta ferma, in ogni caso, la responsabilità degli organi di amministrazione e direttivi del
|
||||
soggetto NIS ai sensi dell’articolo 23 del decreto NIS e delle persone fisiche ai sensi
|
||||
dell’articolo 38 del medesimo decreto.
|
||||
7. Nel caso di avvicendamento del punto di contatto, gli organi di amministrazione e direttivi
|
||||
provvedono senza ingiustificato ritardo alla designazione del nuovo punto di contatto e
|
||||
assicurano il suo censimento sul Portale ACN.
|
||||
8. La designazione del punto di contatto da parte dei soggetti di cui all’articolo 1, comma 1,
|
||||
della legge 28 giugno 2024, n. 90, che rientrano nell’ambito di applicazione del decreto NIS,
|
||||
può soddisfare l’obbligo di nomina e comunicazione del referente per la cybersicurezza di
|
||||
cui all’articolo 8, comma 2, della medesima legge.
|
||||
Articolo 5
|
||||
(Sostituto punto di contatto)
|
||||
1. Il sostituto punto di contatto è una persona fisica, distinta dal punto di contatto, designato
|
||||
con le medesime modalità di quest’ultimo ai sensi dell’articolo 4, a cui si applicano le
|
||||
previsioni del citato articolo.
|
||||
2. Il sostituto punto di contatto supporta il punto di contatto nell’esercizio delle proprie
|
||||
funzioni, può interloquire direttamente con l’Autorità nazionale competente NIS e può
|
||||
effettuare sulla piattaforma digitale le medesime azioni del punto di contatto, ad eccezione
|
||||
della registrazione di cui all’articolo 7 del decreto NIS.
|
||||
3. Il sostituto punto di contatto è designato entro il 31 maggio dell’anno in cui il soggetto NIS
|
||||
ha ricevuto comunicazione di inserimento nell’elenco dei soggetti NIS.
|
||||
4. L’obbligo di designazione del sostituto punto di contatto non si applica ai soggetti NIS che
|
||||
versino nell’impossibilità materiale di effettuare tale adempimento, in quanto il punto di
|
||||
contatto è l’unica persona fisica operante nell’organizzazione.
|
||||
Articolo 6
|
||||
(Rappresentante nell’Unione)
|
||||
1. Per designare il proprio rappresentante NIS in Italia, i soggetti NIS di cui all’articolo 5,
|
||||
comma 1, lettera b), del decreto NIS, trasmettono e aggiornano, dal primo settembre al trenta
|
||||
novembre di ogni anno, al domicilio digitale dell’Agenzia per la cybersicurezza nazionale
|
||||
la documentazione indicata nella sezione dedicata del sito web. Con le medesime modalità,
|
||||
tali soggetti comunicano il domicilio digitale per le conseguenti interlocuzioni con
|
||||
l’Autorità nazionale competente NIS.
|
||||
2. L’Autorità nazionale competente NIS comunica al domicilio digitale del soggetto
|
||||
l’autorizzazione, o il diniego, a procedere al censimento e alla registrazione entro trenta
|
||||
giorni dalla ricezione della trasmissione di cui al comma 1.
|
||||
3. Ove si renda necessario richiedere al soggetto integrazioni o informazioni, i termini di cui
|
||||
al comma 2 sono sospesi e ricominciano a decorrere dalla data di ricevimento delle
|
||||
integrazioni e delle informazioni che sono rese entro il termine di dieci giorni dalla richiesta.
|
||||
Il tardivo riscontro alle richieste di cui al presente comma può essere motivo di diniego di
|
||||
censimento e registrazione.
|
||||
7 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
4. Fermo restando quanto previsto dall’articolo 4, comma 2, i soggetti di cui al comma 1 del
|
||||
presente articolo possono delegare le funzioni di punto di contatto:
|
||||
a) al rappresentante NIS stesso, qualora sia una persona fisica;
|
||||
b) al rappresentante legale, a uno dei procuratori generali o a un dipendente del
|
||||
rappresentante NIS stesso, qualora quest’ultimo sia una persona giuridica.
|
||||
Articolo 7
|
||||
(Referente CSIRT e sostituti)
|
||||
1. Il referente CSIRT è una persona fisica designata dal Punto di Contatto, a partire dal 20
|
||||
novembre ed entro il 31 dicembre 2025, tramite la dedicata procedura telematica resa
|
||||
disponibile dal Portale ACN.
|
||||
2. Il referente CSIRT ha il compito di interloquire con lo CSIRT Italia, di cui all’articolo 2,
|
||||
comma 1, lettera i) del decreto NIS, ed effettuare le notifiche di cui agli articoli 25 e 26 del
|
||||
medesimo decreto per conto del soggetto NIS.
|
||||
3. Al fine di assicurare il tempestivo svolgimento dei compiti del referente CSIRT, con
|
||||
particolare riferimento alla notifica degli incidenti significativi di cui all’articolo 25 del
|
||||
decreto NIS e relativi seguiti, con le medesime modalità di cui al comma 1, possono essere
|
||||
designati uno o più sostituti referente CSIRT.
|
||||
4. I sostituti referente CSIRT, ove designati, supportano il referente CSIRT nell’esercizio delle
|
||||
funzioni di cui al comma 2 e possono svolgerle per suo conto.
|
||||
5. Il referente CSIRT e i suoi sostituti, ove designati, possiedono almeno competenze di base
|
||||
in materia di sicurezza informatica e di gestione di incidenti informatici, nonché una
|
||||
conoscenza approfondita dei sistemi informativi e di rete del soggetto per conto del quale
|
||||
operano.
|
||||
|
||||
Capo II
|
||||
Censimento e associazione delle utenze
|
||||
Articolo 8
|
||||
(Censimento degli utenti)
|
||||
1. Gli utenti si autenticano sul Portale ACN tramite CIE o SPID personale.
|
||||
2. Gli utenti completano la propria anagrafica fornendo le informazioni seguenti, se non già
|
||||
condivise tramite CIE o SPID:
|
||||
a) nome e cognome;
|
||||
b) codice fiscale;
|
||||
c) luogo e data di nascita;
|
||||
d) cittadinanza;
|
||||
e) Paese di residenza e, ove richiesto, di domicilio;
|
||||
f) indirizzo della sede prevalente di servizio, aziendale o professionale;
|
||||
g) indirizzo di posta elettronica ordinaria, preferibilmente individuale, nonché di servizio,
|
||||
aziendale o professionale;
|
||||
8 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
h) ove disponibile, un indirizzo di posta elettronica certificata, preferibilmente individuale,
|
||||
nonché di servizio, aziendale o professionale;
|
||||
i) numero di telefono, preferibilmente individuale, nonché di servizio, aziendale o
|
||||
professionale;
|
||||
j) ove disponibile, un numero alternativo di telefono, preferibilmente individuale di
|
||||
servizio, aziendale o professionale;
|
||||
k) denominazione e codice fiscale dell’organizzazione di appartenenza prevalente.
|
||||
3. Qualora, ai sensi della normativa vigente, un utente non possa disporre di credenziali SPID
|
||||
o di CIE, può autenticarsi con credenziali personali. La procedura per la richiesta delle
|
||||
credenziali personali è pubblicata nella sezione dedicata del sito web. Tali utenti forniscono
|
||||
un codice di identificazione nazionale in luogo del codice fiscale di cui al comma 2, lettera
|
||||
c).
|
||||
Articolo 9
|
||||
(Associazione dell’utenza del punto di contatto e del sostituto al soggetto NIS)
|
||||
1. Il punto di contatto, censito sul Portale ACN, effettua l’associazione della sua utenza con il
|
||||
soggetto che lo ha designato attraverso la digitazione del suo codice fiscale o del codice
|
||||
dell’indice dei domicili digitali delle pubbliche amministrazioni e dei gestori di pubblici
|
||||
servizi (IPA).
|
||||
2. L’utente:
|
||||
a) verifica la denominazione nonché l’indirizzo, il domicilio digitale e i recapiti della sede
|
||||
legale del soggetto visualizzati dal Portale ACN;
|
||||
b) indica se è:
|
||||
1) rappresentante legale del soggetto;
|
||||
2) procuratore generale del soggetto;
|
||||
3) delegato dal rappresentante legale del soggetto;
|
||||
c) indica il codice fiscale dell’organizzazione di cui è dipendente qualora diverso dal
|
||||
soggetto al quale si sta associando;
|
||||
d) indica il ruolo svolto presso il soggetto.
|
||||
3. Nel caso di cui al comma 2, lettera b), numero 3, l’utente inserisce sul Portale ACN la delega
|
||||
rilasciata a suo nome dal soggetto NIS, dichiarando che la stessa lo autorizza ad accedere al
|
||||
Portale ACN stesso e ai Servizi NIS per conto del medesimo soggetto.
|
||||
4. L’associazione dell’utenza del punto di contatto è sottoposta alla convalida del soggetto
|
||||
NIS, secondo la procedura telematica indicata nella richiesta inviata al domicilio digitale di
|
||||
quest’ultimo.
|
||||
5. Al termine del processo di censimento e associazione, il soggetto riceve al suo domicilio
|
||||
digitale la comunicazione di conclusione del processo stesso.
|
||||
6. La convalida dell’associazione dell’utenza del punto di contatto ad un soggetto NIS
|
||||
determina la dissociazione, se presente, dell’utenza del punto di contatto precedentemente
|
||||
associata.
|
||||
7. Il sostituto punto di contatto effettua, su invito del punto di contatto, l’associazione con le
|
||||
medesime modalità del punto di contatto di cui al presente articolo.
|
||||
|
||||
9 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
Articolo 10
|
||||
(Associazione delle utenze al soggetto NIS)
|
||||
1. Al punto di contatto è data facoltà di invitare ulteriori utenti con il ruolo di operatore e, al
|
||||
più, un utente con il ruolo di segreteria.
|
||||
2. Gli utenti censiti sul Portale ACN che non sono stati designati e associati quali punti di
|
||||
contatto o sostituti punti di contatto:
|
||||
a) sono associati al soggetto NIS, per conto del quale operano, su indicazione e invito
|
||||
del punto di contatto;
|
||||
b) non possono effettuare azioni sul Portale ACN che determinano la trasmissione di
|
||||
comunicazioni, inerenti il perfezionamento degli adempimenti di cu al decreto NIS,
|
||||
al domicilio digitale del soggetto NIS o all’Autorità nazionale competente NIS.
|
||||
3. Tutti gli utenti possono:
|
||||
a) annullare la propria associazione con il soggetto NIS;
|
||||
b) disabilitare la propria utenza.
|
||||
4. Il punto di contatto, il sostituto punto di contatto, e la segreteria possono ridurre il proprio
|
||||
ruolo ad operatore.
|
||||
|
||||
Capo III
|
||||
Registrazione dei soggetti NIS e elaborazione dell’elenco dei soggetti NIS
|
||||
Articolo 11
|
||||
(Registrazione)
|
||||
1. Dal 1° gennaio al 28 febbraio di ogni anno, gli utenti compilano, tramite il “Servizio NIS/
|
||||
Dichiarazione”, la dichiarazione per il soggetto per cui operano ai fini della sua
|
||||
registrazione, assicurandosi che le informazioni fornite siano corrette e aggiornate.
|
||||
2. In particolare, l’utente:
|
||||
a) qualora il soggetto non sia un’impresa autonoma, indica se il soggetto è parte di un
|
||||
gruppo di imprese e, in tal caso, indica se il soggetto è la capo gruppo ovvero indica il
|
||||
codice fiscale della capo gruppo;
|
||||
b) qualora il soggetto non sia un’impresa autonoma, elenca i soggetti NIS di cui è a
|
||||
conoscenza che sono imprese collegate nei confronti delle quali soddisfi almeno uno
|
||||
dei criteri di cui all’articolo 3, comma 10, del decreto NIS, indicando il codice fiscale
|
||||
di tali imprese e quale dei criteri è soddisfatto;
|
||||
c) qualora il soggetto non sia un’impresa autonoma, elenca le imprese collegate che
|
||||
soddisfano nei suoi confronti almeno uno dei criteri di cui all’articolo 3, comma 10, del
|
||||
decreto NIS, indicando il codice fiscale di tali imprese e quale dei criteri è soddisfatto,
|
||||
ai fini della loro identificazione come soggetti NIS ai sensi del medesimo comma;
|
||||
d) elenca i codici ATECO che descrivono l’attività del soggetto;
|
||||
e) indica le normative settoriali dell’Unione europea citate negli allegati I e II del decreto
|
||||
NIS per definire le tipologie di soggetto che rientrano nell’ambito di applicazione del
|
||||
decreto NIS;
|
||||
10 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
f) indica i valori del fatturato e del bilancio nonché del numero di dipendenti al fine di
|
||||
determinare l’appartenenza del soggetto NIS alla categoria delle medie o grandi imprese
|
||||
ai sensi della raccomandazione 2003/361/CE. Le pubbliche amministrazioni possono
|
||||
non indicare i valori del fatturato e del bilancio;
|
||||
g) elenca le tipologie di soggetto di cui agli allegati I, II, III e IV del decreto NIS a cui il
|
||||
soggetto è riconducibile.
|
||||
3. Fermo restando l’obbligo di registrazione per i soggetti di cui all’articolo 3, comma 10, del
|
||||
decreto NIS, l’Autorità nazionale competente NIS informa le imprese di cui al comma 2,
|
||||
lettera c), del presente articolo che nei loro confronti si sono verificati i presupposti di cui
|
||||
al citato articolo del decreto NIS.
|
||||
4. Qualora il soggetto non sia una impresa autonoma, il calcolo del fatturato e del bilancio
|
||||
nonché del numero di dipendenti di cui al comma 2, lettera f), del presente articolo è
|
||||
effettuato ai sensi dell’articolo 6, paragrafo 2, dell’allegato alla raccomandazione
|
||||
2003/361/CE.
|
||||
5. Qualora in fase di compilazione della dichiarazione siano rilevate incongruenze, queste sono
|
||||
segnalate all’utente che deve procedere a:
|
||||
a) modificare la dichiarazione correggendo le informazioni errate o incomplete;
|
||||
b) fornire ulteriori elementi informativi per giustificare l’incongruenza rilevata.
|
||||
6. Al termine della compilazione della dichiarazione, all’utente è rimessa la conferma della
|
||||
valutazione preliminare fornita automaticamente dalla piattaforma, sulla base dei criteri di
|
||||
cui agli articoli 3 e 6 del decreto NIS, fondata sulla base delle informazioni fornite ai sensi
|
||||
del presente articolo.
|
||||
7. Gli utenti designati quali punti di contatto confermano, ai sensi del decreto del Presidente
|
||||
della Repubblica del 28 dicembre 2000, n. 445, le informazioni fornite e le trasmettono
|
||||
telematicamente tramite il “Servizio NIS/Dichiarazione” all’Autorità nazionale competente
|
||||
NIS. Copia di tali informazioni, per ricevuta, è inviata al domicilio digitale del soggetto con
|
||||
l’avvertenza che tale dichiarazione potrà essere sottoposta alle verifiche di coerenza di cui
|
||||
all’articolo 14.
|
||||
8. Decorsi dieci giorni solari dalla sottomissione della dichiarazione questa si intende
|
||||
definitivamente acquisita e non ulteriormente modificabile dall’utente.
|
||||
9. Le dichiarazioni sottomesse o modificate oltre i termini di cui al comma 1 sono considerate
|
||||
tardive, salvo che il ritardo sia determinato da documentate criticità tecnico-operative non
|
||||
imputabili all’utente.
|
||||
10. Ai soggetti già inseriti nell’elenco dei soggetti NIS, all’avvio della registrazione per l’anno
|
||||
2026, viene presentata una bozza di dichiarazione precompilata sulla base delle
|
||||
informazioni trasmesse nel corso dell’anno solare precedente tramite i Servizi NIS.
|
||||
Articolo 12
|
||||
(Clausola di salvaguardia)
|
||||
1. Nel caso in cui l’utente ritenga che il calcolo effettuato ai sensi dell’articolo 11, comma 4,
|
||||
non sia proporzionato tenuto conto dei criteri di cui al decreto del Presidente del Consiglio
|
||||
dei ministri di cui all’articolo 40, comma 1, lettera a), del decreto NIS, nel corso della
|
||||
11 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
registrazione può chiedere l’applicazione della clausola di salvaguardia di cui all’articolo 3,
|
||||
comma 12, del decreto NIS.
|
||||
2. Ai fini della richiesta di cui al comma 1, tramite il “Servizio NIS/Dichiarazione”, l’utente
|
||||
fornisce gli elementi di valutazione corrispondenti ai criteri di cui al decreto del Presidente
|
||||
del Consiglio dei ministri di cui all’articolo 40, comma 1, lettera a), del decreto NIS
|
||||
all’Autorità nazionale competente NIS, che li condivide con le Autorità di settore interessate
|
||||
ai fini delle valutazioni di cui all’articolo 11, comma 4, lettera c), del medesimo decreto.
|
||||
3. Al soggetto NIS è fornito riscontro con la comunicazione dell’Autorità nazionale
|
||||
competente NIS ai sensi dell’articolo 7, comma 3, del decreto NIS.
|
||||
|
||||
Articolo 13
|
||||
(Individuazione da parte dell’Autorità nazionale competente NIS)
|
||||
1. I soggetti che ricevono una notifica di individuazione da parte dell’Autorità nazionale
|
||||
competente NIS, su proposta delle Autorità di settore, ai sensi dell’articolo 3, comma 13,
|
||||
del decreto NIS, procedono al censimento e alla registrazione alla stregua delle disposizioni
|
||||
del presente capo.
|
||||
2. In fase di registrazione, tali soggetti prendono visione e confermano gli elementi presenti
|
||||
nella notifica di cui al comma 1.
|
||||
Articolo 14
|
||||
(Verifiche di coerenza)
|
||||
1. Le verifiche di coerenza delle informazioni contenute nelle dichiarazioni sono svolte, a
|
||||
campione, dall’Autorità nazionale competente NIS d’intesa con le Autorità di settore e non
|
||||
sollevano il soggetto NIS dall’obbligo del rispetto dei termini d’uso di cui all’articolo 3
|
||||
della presente determinazione e, in particolare, dalla responsabilità per le dichiarazioni
|
||||
mendaci di cui al comma 5 del medesimo articolo.
|
||||
2. Nei casi di cui al comma 1, l’Autorità nazionale competente NIS fornisce riscontro al
|
||||
soggetto entro trenta giorni dalla presentazione della dichiarazione tramite il “Servizio NIS/
|
||||
Dichiarazione”. Il predetto termine può essere prorogato dall’Autorità nazionale competente
|
||||
NIS, per una sola volta e fino ad un massimo di ulteriori venti giorni, qualora sia necessario
|
||||
svolgere approfondimenti complessi riguardanti la coerenza delle informazioni contenute
|
||||
nella dichiarazione.
|
||||
3. Ove si renda necessario richiedere al soggetto integrazioni, informazioni aggiuntive o
|
||||
modifiche della dichiarazione, i termini di cui al comma 2 sono sospesi e ricominciano a
|
||||
decorrere dalla data di ricevimento delle integrazioni e delle informazioni che sono rese
|
||||
entro il termine di dieci giorni dalla richiesta. Il tardivo riscontro alle richieste di cui al
|
||||
presente comma può essere motivo di rigetto della dichiarazione.
|
||||
4. Al termine delle verifiche di coerenza delle informazioni contenute nelle dichiarazioni,
|
||||
l’Autorità nazionale competente comunica, tramite i Servizi NIS al domicilio digitale del
|
||||
soggetto NIS:
|
||||
a) l’esito positivo della verifica;
|
||||
12 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
b) l’esito negativo della verifica.
|
||||
5. La comunicazione di cui al comma 4, lettera b), non solleva il soggetto NIS dall’obbligo di
|
||||
registrazione di cui all’articolo 7, comma 1, del decreto NIS.
|
||||
Articolo 15
|
||||
(Elaborazione dell’elenco dei soggetti NIS e comunicazioni)
|
||||
1. L’elenco dei soggetti NIS di cui all’articolo 7, comma 2, del decreto NIS è elaborato
|
||||
dall’Autorità nazionale competente NIS sulla base delle informazioni trasmesse dai soggetti
|
||||
NIS ai sensi del capo III della presente determinazione e delle verifiche svolte dalle Autorità
|
||||
di settore ai sensi dell’articolo 11, comma 4, lettera a), del medesimo decreto che, ove
|
||||
necessario, possono proseguire anche successivamente all’elaborazione dell’elenco dei
|
||||
soggetti NIS.
|
||||
2. Ai sensi del comma 1, il processo di registrazione di cui alla presente determinazione
|
||||
costituisce la fase endoprocedimentale del procedimento di costituzione dell’elenco dei
|
||||
soggetti NIS.
|
||||
3. Ai sensi dell’articolo 7, comma 3, del decreto NIS, l’Autorità nazionale competente NIS
|
||||
comunica ai soggetti registrati l'inserimento, o meno, nell'elenco dei soggetti NIS. Ai
|
||||
soggetti inseriti nell’elenco dei soggetti NIS e ai loro punti di contatto viene, altresì,
|
||||
comunicato un codice identificativo univoco, per il soggetto NIS, al fine di facilitare le
|
||||
interlocuzioni con l’Autorità nazionale competente NIS.
|
||||
|
||||
Capo IV
|
||||
Aggiornamento delle informazioni
|
||||
Articolo 16
|
||||
(Processo per l’aggiornamento annuale delle informazioni)
|
||||
1. Dal 15 aprile al 31 maggio di ogni anno, gli utenti aggiornano, tramite il “Servizio NIS/
|
||||
Aggiornamento annuale informazioni”, le informazioni per conto del soggetto per cui
|
||||
operano, assicurandone la correttezza.
|
||||
2. Per tutti i soggetti NIS:
|
||||
a) il punto di contatto si assicura che i propri dati anagrafici e di contatto siano corretti e
|
||||
aggiornati. Ove prevista dall’articolo 4, il punto di contatto si assicura che la delega
|
||||
conferitagli dal rappresentante legale del soggetto sia corretta, aggiornata e conforme a
|
||||
quanto previsto dall’articolo medesimo;
|
||||
b) il sostituto punto di contatto si assicura che i propri dati anagrafici e di contatto siano
|
||||
corretti e aggiornati. Ove prevista delega il sostituto punto di contatto si assicura che la
|
||||
delega conferitagli dal rappresentante legale del soggetto sia corretta, aggiornata e
|
||||
conforme a quanto previsto dall’articolo medesimo;
|
||||
c) la segreteria, ove presente, si assicura che i propri dati anagrafici e di contatto siano
|
||||
corretti e aggiornati.
|
||||
3. Per tutti i soggetti NIS, gli utenti verificano la correttezza e l’aggiornamento:
|
||||
13 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
a) dei dati anagrafici e di contatto del soggetto NIS. Tali informazioni includono almeno
|
||||
il codice fiscale, la denominazione, l’indirizzo della sede legale, l’indicazione del
|
||||
rappresentante legale, l’elenco dei procuratori generali, il numero di telefono, il
|
||||
domicilio digitale e un indirizzo di posta elettronica ordinaria funzionale;
|
||||
b) dell’elenco dei componenti degli organi di amministrazione e direttivi, quali persone
|
||||
fisiche responsabili ai sensi dell’articolo 38, comma 5, del decreto NIS;
|
||||
c) ove applicabile, dell’elenco dei servizi che rientrano nell’ambito di applicazione della
|
||||
direttiva 2022/2555 che il soggetto NIS offre nell’UE e indicando in quali Stati membri;
|
||||
d) dello spazio di indirizzamento IP pubblico e dei nomi di dominio in uso o nella
|
||||
disponibilità del soggetto NIS, eventualmente distinto a livello di articolazioni di primo
|
||||
livello;
|
||||
e) dell’elenco degli accordi di condivisione delle informazioni
|
||||
f) dei dati identificativi del referente CSIRT e degli eventuali sostituti.
|
||||
4. Per i soggetti NIS di cui all’articolo 7, comma 5, del decreto NIS gli utenti verificano la
|
||||
correttezza e l’aggiornamento dell’elenco delle sedi del soggetto NIS nell’Unione,
|
||||
indicandone l’indirizzo.
|
||||
5. Per i soggetti NIS di cui all’articolo 5, comma 1, lettera b), del decreto NIS, che hanno
|
||||
designato il proprio rappresentante NIS in Italia ai sensi dell’articolo 6 della presente
|
||||
determinazione, gli utenti verificano che dati anagrafici e di contatto del rappresentante NIS
|
||||
siano corretti e aggiornati.
|
||||
6. Qualora ritenuto opportuno, è data la facoltà di descrivere la struttura organizzativa
|
||||
dell’organizzazione, indicandone la suddivisione in articolazioni di primo livello. Tale
|
||||
descrizione della struttura organizzativa potrà essere impiegata per l’eventuale conferimento
|
||||
di informazioni di dettaglio relative alle articolazioni di primo livello.
|
||||
7. Gli utenti designati quali punti di contatto confermano, ai sensi del decreto del Presidente
|
||||
della Repubblica del 28 dicembre 2000, n. 445, le informazioni fornite e le trasmettono
|
||||
telematicamente tramite il “Servizio NIS/Aggiornamento annuale informazioni”
|
||||
all’Autorità nazionale competente NIS. Copia di tali informazioni, per ricevuta, è inviata al
|
||||
domicilio digitale del soggetto.
|
||||
8. La modifica, confermata da punto di contatto, dell’indicazione del rappresentante legale o
|
||||
dell’elenco dei procuratori generali del soggetto NIS è sottoposta alla convalida del soggetto
|
||||
medesimo, secondo la procedura telematica indicata nella richiesta inviata al domicilio
|
||||
digitale di quest’ultimo.
|
||||
9. Le modifiche dei dati anagrafici e di contatto del soggetto NIS sono trasmesse, per ricevuta,
|
||||
al domicilio digitale di quest’ultimo.
|
||||
10. Le modifiche dei dati anagrafici e di contatto degli utenti sono trasmesse, per ricevuta,
|
||||
all’indirizzo di posta elettronica certificata indicata dall’utente stesso o, in subordine,
|
||||
all’indirizzo di posta elettronica ordinaria indicata dall’utente stesso.
|
||||
11. In fase di prima applicazione, fermo restando quanto previsto dall’articolo 35, comma 3,
|
||||
lettera c), e dall’articolo 42, comma 1, lettera c), del decreto NIS, in caso di registrazione
|
||||
tardiva, il termine per completare l’aggiornamento annuale è comunicato di volta in volta
|
||||
dall’Autorità nazionale competente NIS.
|
||||
|
||||
14 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
12. Il comma 3, lettera b), del presente articolo e l’articolo 17 non si applicano ai soggetti che
|
||||
rientrano nell’ambito di applicazione del decreto NIS e del Regolamento UE 2022/2554
|
||||
(DORA).
|
||||
Articolo 17
|
||||
(Elencazione degli organi di amministrazione e direttivi)
|
||||
1. Ai fini dell’articolo 16, comma 3, lettera b), tramite il “Servizio NIS/Aggiornamento
|
||||
annuale informazioni”, gli utenti elencano i codici fiscali delle persone fisiche che
|
||||
compongono gli organi di amministrazione e direttivi, indicandone l’indirizzo di posta
|
||||
elettronica certificata.
|
||||
2. Le informazioni di cui al comma 1 sono confermate dal punto di contatto.
|
||||
3. Ai fini dell’articolo 7, comma 4, lettera c), del decreto NIS, le persone fisiche appartenenti
|
||||
agli organi di amministrazione e direttivi del soggetto NIS accettano tale indicazione
|
||||
accedendo al Portale ACN, secondo la procedura telematica indicata nella richiesta inviata
|
||||
a loro indirizzo di posta elettronica certificata di cui al comma 1.
|
||||
Articolo 18
|
||||
(Processo per l’aggiornamento continuo delle informazioni)
|
||||
1. A seguito del perfezionamento dell’aggiornamento annuale, laddove siano sopravvenute
|
||||
modifiche alle informazioni trasmesse ai sensi dell’articolo 16, tramite il “Servizio NIS/
|
||||
Aggiornamento continuo informazioni” gli utenti forniscono le informazioni aggiornate per
|
||||
conto del soggetto per cui operano, assicurandone la correttezza.
|
||||
2. L’aggiornamento continuo delle informazioni è possibile fino al 14 aprile di ogni anno
|
||||
successivo alla ricezione della comunicazione di cui all’articolo 7, comma 3, lettera a), del
|
||||
decreto NIS.
|
||||
3. Gli utenti designati quali punti di contatto confermano, ai sensi del decreto del Presidente
|
||||
della Repubblica del 28 dicembre 2000, n. 445, le informazioni fornite e le trasmettono
|
||||
telematicamente tramite il “Servizio NIS/Aggiornamento continuo informazioni”
|
||||
all’Autorità nazionale competente NIS. Copia di tali informazioni, per ricevuta, è inviata al
|
||||
domicilio digitale del soggetto.
|
||||
4. La modifica, confermata da punto di contatto, dell’indicazione del rappresentante legale o
|
||||
dell’elenco dei procuratori generali del soggetto NIS è sottoposta alla convalida del soggetto
|
||||
medesimo, secondo la procedura telematica indicata nella richiesta inviata al domicilio
|
||||
digitale di quest’ultimo.
|
||||
5. Le modifiche dei dati anagrafici e di contatto del soggetto NIS sono trasmesse, per ricevuta,
|
||||
al domicilio digitale di quest’ultimo.
|
||||
6. Le modifiche dei dati anagrafici e di contatto degli utenti sono trasmesse, per ricevuta,
|
||||
all’indirizzo di posta elettronica certificata indicata dall’utente stesso o, in subordine,
|
||||
all’indirizzo di posta elettronica ordinaria indicata dall’utente stesso.
|
||||
|
||||
15 di 16
|
||||
|
||||
Agenzia per la Cybersicurezza Nazionale
|
||||
Capo V
|
||||
Disposizioni finali
|
||||
Articolo 19
|
||||
(Disposizioni finanziarie)
|
||||
1. Agli oneri derivanti dalla presente determinazione, a carico dell’Autorità nazionale
|
||||
competente NIS e delle Autorità di settore, si provvede, rispettivamente, con le risorse di
|
||||
cui agli articoli 10 e 11 del decreto NIS.
|
||||
|
||||
Articolo 20
|
||||
(Pubblicità)
|
||||
1. La presente determinazione è pubblicata sul sito web e sui siti web istituzionali delle
|
||||
Autorità di settore NIS e ne sarà data, altresì, comunicazione tramite pubblicazione nella
|
||||
Gazzetta Ufficiale della Repubblica italiana.
|
||||
Articolo 21
|
||||
(Applicazione)
|
||||
1. La presente determinazione aggiorna e sostituisce la determinazione ACN n. 333017 del 22
|
||||
settembre 2025.
|
||||
2. Per quanto non previsto dalla presente determinazione, si applicano le disposizioni del
|
||||
decreto NIS.
|
||||
3. La presente determinazione si applica a decorrere dal 31 dicembre 2025.
|
||||
Roma, data del protocollo
|
||||
IL DIRETTORE GENERALE
|
||||
Bruno Frattasi
|
||||
Bruno
|
||||
Frattasi
|
||||
18.12.2025
|
||||
18:12:36
|
||||
GMT+01:00
|
||||
|
||||
16 di 16
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,88 @@
|
||||
# Integrazione analisi `docs/nis2/` → NIS2 Agile
|
||||
|
||||
> Data: 2026-05-29 (CEST) · Versione: v1.7.0 · Stato: **✅ DEPLOYATO ED ESEGUITO IN PRODUZIONE (Hetzner)**
|
||||
|
||||
## ✅ Eseguito in produzione (2026-05-29 ~17:06 CEST)
|
||||
- **Codice**: live su `/var/www/nis2-agile` (stesso filesystem del container dev via bind mount → nessuno scp necessario). 5 nuovi endpoint verificati live (HTTP 401 auth, routing OK).
|
||||
- **Migrazioni DB 020/021/022**: applicate e verificate (colonne assets/incidents + tabella `incident_pir` create).
|
||||
- **Ingest KB**: **287 chunk** normativi indicizzati in Qdrant `nis2_kb` scope SYSTEM (171 NIS2 + 77 CER + 25 Det.333017 + 9 Det.164179 + 5 Ambiti). Retrieval verificato (query "preallarme CSIRT" → Direttiva NIS2; "settori alta criticità" → Ambiti Allegati I/II).
|
||||
- **Backup**: `/root/backup_pre_v170_20260529_165447.sql`.
|
||||
|
||||
### ⚠️ Azione consigliata residua (richiede conferma — recreate container)
|
||||
**Qdrant IP drift**: il container `nis2-qdrant` non ha IP statico in `docker-compose.yml` ed è driftato da `172.21.0.5` → `172.21.0.3`. Fallback in `VectorService.php` aggiornato a `.3` (live). Per evitare ricorrenze: in `docker/docker-compose.yml` assegnare `ipv4_address` statico al servizio `qdrant` e allineare `QDRANT_URL`, poi `docker compose up -d --force-recreate qdrant app`. NB: nota anche che `kb_uploaded_documents` non esiste su questo DB (migrazioni KB 012-014 non applicate qui) → il tracking MySQL dei doc KB è saltato (best-effort), ma la ricerca RAG legge da Qdrant e funziona.
|
||||
|
||||
---
|
||||
|
||||
Integrazione del materiale di analisi (mockup HTML + testi normativi PDF) nel prodotto NIS2 Agile.
|
||||
Tutto il codice è scritto e lint-clean (`php -l` / `node --check`). **Le migrazioni DB e l'ingest KB
|
||||
NON sono ancora stati eseguiti** (questo container dev non raggiunge il DB/Qdrant di produzione).
|
||||
|
||||
---
|
||||
|
||||
## Cosa è stato implementato
|
||||
|
||||
### Fase 1 — Asset Relevance Scoring NIS2 (GV.OC-04)
|
||||
Metodologia di scoring 0-100 su 6 criteri pesati, soglia rilevanza ≥40, classi critico/alto/medio/basso/trascurabile.
|
||||
- `docs/sql/020_asset_relevance.sql` — colonne `relevance_score`, `relevance_criteria` (JSON), `relevance_class`, `is_nis2_relevant`, `relevance_assessed_at/by` + indice
|
||||
- `application/services/AssetScoringService.php` — logica pura + griglia ufficiale in costante
|
||||
- `application/controllers/AssetController.php` — `GET scoringGrid`, `POST {id}/score`, `GET relevantSystems`, filtro `nis2_relevant`
|
||||
- `public/assets.html` — colonna "Rilevanza NIS2" + modale di valutazione a 6 criteri con anteprima punteggio
|
||||
- `public/js/api.js` — `getScoringGrid`, `scoreAsset`, `listRelevantSystems`, `deleteAsset`
|
||||
- Verifica: esempio ERP del mockup = **91/100 → critico** ✓
|
||||
|
||||
### Fase 2 — Tassonomia incidenti (Determina ACN 164179/2025)
|
||||
- `docs/sql/021_incident_nis2_taxonomy.sql` — colonne `nis2_incident_type` ENUM(IS-1..IS-4), `entity_obligation` ENUM(essential/important)
|
||||
- `application/controllers/IncidentController.php` — `create()` deriva il regime (Allegato 3 essenziali / Allegato 4 importanti) e blocca IS-4 per gli importanti
|
||||
- `application/services/AIService.php` — `classifyIncident()` cita le fonti e restituisce `nis2_incident_type` + `notification_basis`
|
||||
|
||||
### Fase 3 — Post-Incident Review + metriche TTD/TTC/TTR
|
||||
- `docs/sql/022_incident_metrics_pir.sql` — timestamp di fase (`triaged_at`, `contained_at`, `eradicated_at`, `recovered_at`) + tabella `incident_pir` (5-Whys, metriche, costo, lesson learned)
|
||||
- `IncidentController.php` — `GET {id}/metrics`, `GET {id}/pir`, `POST {id}/pir`; `update()` timbra i timestamp di fase al cambio stato
|
||||
- `public/js/api.js` — `getIncidentMetrics`, `getIncidentPir`, `saveIncidentPir`, `aiClassifyIncident`
|
||||
|
||||
### Fase 4 — Layer mapping NIST CSF 2.0 (reference, non invasivo)
|
||||
- `application/controllers/AuditController.php` — `GET nistCsfMapping`: 43 controlli NIST CSF 2.0 → NIS2 Art.21/23 → modulo. **Nessuna migrazione**, nessuna modifica all'assessment esistente.
|
||||
|
||||
### Fonti normative certe (richiesta esplicita: AI + help citano fonti certe)
|
||||
- `application/config/nis2_sources.php` — **registry canonico citabile** (Dir. 2022/2555, Dir. 2022/2557, D.Lgs. 138/2024, Determina ACN 164179/2025, Determina ACN 333017/2025, Ambiti NIS2)
|
||||
- `application/services/AIService.php` — `authoritativeSourcesBlock()` iniettato nei system prompt (default, RAG, classifyIncident): impone di citare le fonti e vieta riferimenti inventati
|
||||
- `public/js/help.js` — riferimenti normativi italiani aggiunti a incidenti e asset
|
||||
- `scripts/ingest-nis2-sources.php` — indicizza i 5 PDF normativi nella KB (Qdrant `nis2_kb`, scope SYSTEM) per il grounding RAG
|
||||
|
||||
### Report
|
||||
- `ReportService::generateRelevantSystemsRegister()` + `GET /api/audit/relevantSystemsRegister` — registro formale "Sistemi Rilevanti NIS2" (GV.OC-04) HTML stampabile con citazioni.
|
||||
|
||||
---
|
||||
|
||||
## Deploy su Hetzner (da eseguire, in ordine — CHIEDERE CONFERMA UTENTE)
|
||||
|
||||
```bash
|
||||
# 0) Backup pre-migrazione
|
||||
ssh -i docs/credentials/hetzner_key root@135.181.149.254
|
||||
mysqldump nis2_agile_db assets incidents > /root/backup_pre_v170_$(date +%F).sql
|
||||
|
||||
# 1) Deploy codice (bind mount: PHP live; verificare path reale di produzione)
|
||||
cd /var/www/nis2-agile && git pull origin main # dopo push su Gitea
|
||||
|
||||
# 2) Migrazioni DB (additive, idempotenti). NB: usare host MySQL, non docker exec nis2-db
|
||||
mysql -h localhost nis2_agile_db -e "source /var/www/nis2-agile/docs/sql/020_asset_relevance.sql"
|
||||
mysql -h localhost nis2_agile_db -e "source /var/www/nis2-agile/docs/sql/021_incident_nis2_taxonomy.sql"
|
||||
mysql -h localhost nis2_agile_db -e "source /var/www/nis2-agile/docs/sql/022_incident_metrics_pir.sql"
|
||||
|
||||
# 3) Ingest fonti normative nella KB (richiede Qdrant + Voyage attivi)
|
||||
docker exec -i nis2-app php /var/www/nis2-agile/scripts/ingest-nis2-sources.php --dry-run # verifica
|
||||
docker exec -i nis2-app php /var/www/nis2-agile/scripts/ingest-nis2-sources.php # esegui
|
||||
|
||||
# 4) Smoke test
|
||||
curl -s https://nis2.agile.software/api/assets/scoringGrid -H "Authorization: Bearer <jwt>" | head
|
||||
```
|
||||
|
||||
### Rollback
|
||||
Ogni `.sql` contiene la sezione ROLLBACK in coda. Per la KB: cancellare i chunk scope=SYSTEM/source=normativa o ripristinare la collection.
|
||||
|
||||
---
|
||||
|
||||
## Note
|
||||
- **Phase 4** è volutamente reference-only (nessuna tabella/migrazione) per non toccare l'assessment Art.21 consolidato.
|
||||
- I PDF normativi restano in `docs/nis2/*.pdf` come libreria sorgente referenziata da `nis2_sources.php`.
|
||||
- I file `*copy.html` e `incidente_r00/` dei mockup non sono stati usati (duplicati/superati).
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,450 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="it">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Diagramma Topologia Rete - NIS2</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg-primary: #ffffff;
|
||||
--text-primary: #1a1a1a;
|
||||
--text-secondary: #666666;
|
||||
--border-color: #cccccc;
|
||||
--accent-primary: #0066cc;
|
||||
--zone-dmz: #fff3cd;
|
||||
--zone-internal: #d1ecf1;
|
||||
--zone-secure: #d4edda;
|
||||
--zone-external: #f8d7da;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
background-color: #f5f5f5;
|
||||
color: var(--text-primary);
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.document-container {
|
||||
max-width: 297mm;
|
||||
margin: 0 auto;
|
||||
background-color: var(--bg-primary);
|
||||
padding: 30px;
|
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.header {
|
||||
text-align: center;
|
||||
border-bottom: 3px solid var(--text-primary);
|
||||
padding-bottom: 20px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
color: var(--accent-primary);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.doc-title {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
.doc-subtitle {
|
||||
font-size: 12px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.classification {
|
||||
text-align: center;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
color: #d32f2f;
|
||||
background-color: #ffebee;
|
||||
padding: 10px;
|
||||
border: 2px solid #d32f2f;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.diagram-container {
|
||||
width: 100%;
|
||||
background-color: #fafafa;
|
||||
border: 2px solid var(--border-color);
|
||||
padding: 30px;
|
||||
margin: 20px 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.zone {
|
||||
border: 2px dashed #333;
|
||||
padding: 20px;
|
||||
margin: 15px 0;
|
||||
border-radius: 8px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.zone-label {
|
||||
position: absolute;
|
||||
top: -12px;
|
||||
left: 20px;
|
||||
background-color: var(--bg-primary);
|
||||
padding: 0 10px;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.zone-external {
|
||||
background-color: var(--zone-external);
|
||||
border-color: #721c24;
|
||||
}
|
||||
|
||||
.zone-dmz {
|
||||
background-color: var(--zone-dmz);
|
||||
border-color: #856404;
|
||||
}
|
||||
|
||||
.zone-internal {
|
||||
background-color: var(--zone-internal);
|
||||
border-color: #004085;
|
||||
}
|
||||
|
||||
.zone-secure {
|
||||
background-color: var(--zone-secure);
|
||||
border-color: #155724;
|
||||
}
|
||||
|
||||
.device {
|
||||
background-color: white;
|
||||
border: 2px solid #333;
|
||||
border-radius: 6px;
|
||||
padding: 15px;
|
||||
margin: 10px;
|
||||
display: inline-block;
|
||||
min-width: 150px;
|
||||
text-align: center;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.device-icon {
|
||||
font-size: 32px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.device-name {
|
||||
font-weight: bold;
|
||||
font-size: 12px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.device-ip {
|
||||
font-size: 10px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.device-code {
|
||||
font-size: 9px;
|
||||
color: var(--accent-primary);
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.connection {
|
||||
text-align: center;
|
||||
font-size: 24px;
|
||||
color: #333;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.legend {
|
||||
margin-top: 30px;
|
||||
padding: 20px;
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.legend-title {
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
margin-bottom: 15px;
|
||||
color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.legend-item {
|
||||
display: inline-block;
|
||||
margin: 5px 15px 5px 0;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.legend-color {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border: 1px solid #333;
|
||||
margin-right: 8px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.info-box {
|
||||
background-color: #e7f3ff;
|
||||
border-left: 4px solid var(--accent-primary);
|
||||
padding: 15px;
|
||||
margin: 20px 0;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.info-box-title {
|
||||
font-weight: bold;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.no-print {
|
||||
position: fixed;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.btn-print {
|
||||
padding: 12px 24px;
|
||||
background-color: var(--accent-primary);
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.btn-print:hover {
|
||||
background-color: #0052a3;
|
||||
}
|
||||
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
||||
gap: 15px;
|
||||
justify-items: center;
|
||||
}
|
||||
|
||||
@media print {
|
||||
body {
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
}
|
||||
.document-container {
|
||||
box-shadow: none;
|
||||
}
|
||||
.no-print {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="no-print">
|
||||
<button class="btn-print" onclick="window.print()">🖨️ Stampa PDF</button>
|
||||
</div>
|
||||
|
||||
<div class="document-container">
|
||||
<div class="classification">
|
||||
⚠️ DOCUMENTO RISERVATO - SOLO PERSONALE AUTORIZZATO ⚠️
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="logo">ACME CORPORATION S.p.A.</div>
|
||||
<div class="doc-title">Diagramma Topologia Rete Fisica</div>
|
||||
<div class="doc-subtitle">Versione 3.2 | Data: 15 Febbraio 2024 | Approvato da: CISO</div>
|
||||
<div class="doc-subtitle">Documento ID.AM-03 - Requisito NIS2 (Solo Soggetti Essenziali)</div>
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">📋 Informazioni Documento</div>
|
||||
<strong>Codice:</strong> NET-TOPO-PHY-v3.2 |
|
||||
<strong>Ultima Modifica:</strong> 15/02/2024 |
|
||||
<strong>Prossima Revisione:</strong> 15/05/2024 |
|
||||
<strong>Classificazione:</strong> RISERVATO
|
||||
</div>
|
||||
|
||||
<div class="diagram-container">
|
||||
<!-- ZONA INTERNET -->
|
||||
<div class="zone zone-external">
|
||||
<div class="zone-label">🌐 INTERNET / ZONA ESTERNA</div>
|
||||
<div style="text-align: center;">
|
||||
<div class="device">
|
||||
<div class="device-icon">🌍</div>
|
||||
<div class="device-name">Internet</div>
|
||||
<div class="device-ip">Pubblico</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="connection">⬇️ Connessione Fibra 1Gbps</div>
|
||||
|
||||
<!-- ZONA DMZ -->
|
||||
<div class="zone zone-dmz">
|
||||
<div class="zone-label">🛡️ DMZ (DeMilitarized Zone)</div>
|
||||
|
||||
<div class="grid-container">
|
||||
<div class="device">
|
||||
<div class="device-icon">🔥</div>
|
||||
<div class="device-name">Firewall Perimetrale</div>
|
||||
<div class="device-ip">10.10.0.1</div>
|
||||
<div class="device-code">HW-NET-015</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">🌐</div>
|
||||
<div class="device-name">Web Server Pubblico</div>
|
||||
<div class="device-ip">10.10.2.45</div>
|
||||
<div class="device-code">HW-SRV-023</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">📧</div>
|
||||
<div class="device-name">Mail Gateway</div>
|
||||
<div class="device-ip">10.10.2.50</div>
|
||||
<div class="device-code">HW-SRV-028</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">🔐</div>
|
||||
<div class="device-name">VPN Gateway</div>
|
||||
<div class="device-ip">10.10.2.60</div>
|
||||
<div class="device-code">HW-NET-018</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="connection">⬇️ VLAN Segmentation</div>
|
||||
|
||||
<!-- ZONA INTERNA -->
|
||||
<div class="zone zone-internal">
|
||||
<div class="zone-label">🏢 RETE INTERNA</div>
|
||||
|
||||
<div class="grid-container">
|
||||
<div class="device">
|
||||
<div class="device-icon">🔀</div>
|
||||
<div class="device-name">Core Switch</div>
|
||||
<div class="device-ip">10.10.1.1</div>
|
||||
<div class="device-code">HW-NET-022</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">💻</div>
|
||||
<div class="device-name">Workstation (x150)</div>
|
||||
<div class="device-ip">10.20.x.x</div>
|
||||
<div class="device-code">VLAN 20</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">🖨️</div>
|
||||
<div class="device-name">Stampanti</div>
|
||||
<div class="device-ip">10.30.x.x</div>
|
||||
<div class="device-code">VLAN 30</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">📱</div>
|
||||
<div class="device-name">WiFi Guest</div>
|
||||
<div class="device-ip">10.40.x.x</div>
|
||||
<div class="device-code">VLAN 40</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="connection">⬇️ Firewall Interno</div>
|
||||
|
||||
<!-- ZONA SICURA -->
|
||||
<div class="zone zone-secure">
|
||||
<div class="zone-label">🔒 DATACENTER / ZONA SICURA</div>
|
||||
|
||||
<div class="grid-container">
|
||||
<div class="device">
|
||||
<div class="device-icon">🖥️</div>
|
||||
<div class="device-name">ERP Server</div>
|
||||
<div class="device-ip">10.10.1.10</div>
|
||||
<div class="device-code">HW-SRV-001</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">💾</div>
|
||||
<div class="device-name">Database Server</div>
|
||||
<div class="device-ip">10.10.1.20</div>
|
||||
<div class="device-code">HW-SRV-012</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">📊</div>
|
||||
<div class="device-name">SIEM Splunk</div>
|
||||
<div class="device-ip">10.10.1.30</div>
|
||||
<div class="device-code">HW-SRV-045</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">💿</div>
|
||||
<div class="device-name">Backup Server</div>
|
||||
<div class="device-ip">10.10.1.40</div>
|
||||
<div class="device-code">HW-SRV-050</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">☁️</div>
|
||||
<div class="device-name">VMware Cluster</div>
|
||||
<div class="device-ip">10.10.1.50-55</div>
|
||||
<div class="device-code">HW-SRV-060</div>
|
||||
</div>
|
||||
|
||||
<div class="device">
|
||||
<div class="device-icon">🔐</div>
|
||||
<div class="device-name">Active Directory</div>
|
||||
<div class="device-ip">10.10.1.60</div>
|
||||
<div class="device-code">HW-SRV-065</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="legend">
|
||||
<div class="legend-title">📖 LEGENDA</div>
|
||||
<div class="legend-item">
|
||||
<span class="legend-color" style="background-color: var(--zone-external);"></span>
|
||||
Zona Esterna (Internet)
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<span class="legend-color" style="background-color: var(--zone-dmz);"></span>
|
||||
DMZ (Servizi Esposti)
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<span class="legend-color" style="background-color: var(--zone-internal);"></span>
|
||||
Rete Interna (Utenti)
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<span class="legend-color" style="background-color: var(--zone-secure);"></span>
|
||||
Datacenter (Sistemi Critici)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">🔐 Note di Sicurezza</div>
|
||||
• Tutti i flussi tra zone sono controllati da firewall con regole whitelist<br>
|
||||
• Monitoraggio 24/7 tramite SIEM centralizzato (Splunk)<br>
|
||||
• Segmentazione VLAN per separazione logica dei servizi<br>
|
||||
• Backup giornaliero con replica off-site<br>
|
||||
• Accesso datacenter con autenticazione biometrica e logging<br>
|
||||
• Aggiornamento obbligatorio entro 5 giorni da modifiche infrastrutturali
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 40px; padding-top: 20px; border-top: 2px solid var(--border-color); text-align: center; font-size: 10px; color: var(--text-secondary);">
|
||||
Documento NET-TOPO-PHY-v3.2 - RISERVATO - Pagina 1 di 1
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,482 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="it">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Documento Formale - Sistemi Rilevanti NIS2</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg-primary: #ffffff;
|
||||
--text-primary: #1a1a1a;
|
||||
--text-secondary: #666666;
|
||||
--border-color: #cccccc;
|
||||
--accent-primary: #0066cc;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Times New Roman', Times, serif;
|
||||
background-color: #f5f5f5;
|
||||
color: var(--text-primary);
|
||||
line-height: 1.6;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.document-container {
|
||||
max-width: 210mm;
|
||||
margin: 0 auto;
|
||||
background-color: var(--bg-primary);
|
||||
padding: 40mm 25mm;
|
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
|
||||
min-height: 297mm;
|
||||
}
|
||||
|
||||
.header {
|
||||
text-align: center;
|
||||
border-bottom: 3px solid var(--text-primary);
|
||||
padding-bottom: 20px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
color: var(--accent-primary);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.doc-title {
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
margin: 20px 0 10px 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.doc-subtitle {
|
||||
font-size: 14px;
|
||||
color: var(--text-secondary);
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.doc-info {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 10px;
|
||||
margin: 30px 0;
|
||||
padding: 15px;
|
||||
background-color: #f9f9f9;
|
||||
border-left: 4px solid var(--accent-primary);
|
||||
}
|
||||
|
||||
.doc-info-item {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.doc-info-label {
|
||||
font-weight: bold;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.section {
|
||||
margin: 30px 0;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: var(--accent-primary);
|
||||
border-bottom: 2px solid var(--border-color);
|
||||
padding-bottom: 5px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.section-content {
|
||||
font-size: 12px;
|
||||
text-align: justify;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 20px 0;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: #e8e8e8;
|
||||
padding: 10px 8px;
|
||||
text-align: left;
|
||||
border: 1px solid var(--border-color);
|
||||
font-weight: bold;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 8px;
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
tr:nth-child(even) {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.critical {
|
||||
color: #d32f2f;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.high {
|
||||
color: #f57c00;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.medium {
|
||||
color: #388e3c;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.footer {
|
||||
margin-top: 50px;
|
||||
padding-top: 20px;
|
||||
border-top: 2px solid var(--border-color);
|
||||
}
|
||||
|
||||
.signature-block {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 40px;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.signature {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.signature-line {
|
||||
border-top: 1px solid var(--text-primary);
|
||||
margin-top: 60px;
|
||||
padding-top: 10px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.signature-role {
|
||||
font-size: 10px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.page-number {
|
||||
text-align: center;
|
||||
font-size: 10px;
|
||||
color: var(--text-secondary);
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.classification {
|
||||
text-align: center;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
color: #d32f2f;
|
||||
background-color: #ffebee;
|
||||
padding: 10px;
|
||||
border: 2px solid #d32f2f;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
@media print {
|
||||
body {
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
}
|
||||
.document-container {
|
||||
box-shadow: none;
|
||||
padding: 20mm 15mm;
|
||||
}
|
||||
}
|
||||
|
||||
.no-print {
|
||||
position: fixed;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.btn-print {
|
||||
padding: 12px 24px;
|
||||
background-color: var(--accent-primary);
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.btn-print:hover {
|
||||
background-color: #0052a3;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="no-print">
|
||||
<button class="btn-print" onclick="window.print()">🖨️ Stampa PDF</button>
|
||||
</div>
|
||||
|
||||
<div class="document-container">
|
||||
<div class="classification">
|
||||
⚠️ DOCUMENTO RISERVATO - DISTRIBUZIONE LIMITATA ⚠️
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="logo">ACME CORPORATION S.p.A.</div>
|
||||
<div class="doc-title">Elenco Sistemi Rilevanti NIS2</div>
|
||||
<div class="doc-subtitle">Documento Formale ai sensi della Direttiva (UE) 2022/2555</div>
|
||||
<div class="doc-subtitle">Requisito GV.OC-04</div>
|
||||
</div>
|
||||
|
||||
<div class="doc-info">
|
||||
<div class="doc-info-item">
|
||||
<span class="doc-info-label">Codice Documento:</span> NIS2-GV-OC-04-v2.3
|
||||
</div>
|
||||
<div class="doc-info-item">
|
||||
<span class="doc-info-label">Data Emissione:</span> 15 Febbraio 2024
|
||||
</div>
|
||||
<div class="doc-info-item">
|
||||
<span class="doc-info-label">Versione:</span> 2.3
|
||||
</div>
|
||||
<div class="doc-info-item">
|
||||
<span class="doc-info-label">Prossima Revisione:</span> 15 Agosto 2024
|
||||
</div>
|
||||
<div class="doc-info-item">
|
||||
<span class="doc-info-label">Redatto da:</span> CISO - Marco Bianchi
|
||||
</div>
|
||||
<div class="doc-info-item">
|
||||
<span class="doc-info-label">Approvato da:</span> CdA - Delibera 05/2024
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<div class="section-title">1. PREMESSA</div>
|
||||
<div class="section-content">
|
||||
Il presente documento costituisce l'elenco formale dei sistemi classificati come rilevanti ai fini della conformità alla Direttiva NIS2 (UE) 2022/2555 e al relativo decreto di recepimento nazionale. La classificazione è stata effettuata secondo la metodologia di scoring approvata dal Consiglio di Amministrazione in data 10 Gennaio 2024, basata su sei criteri di valutazione con punteggio massimo di 100 punti.
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<strong>Soglia di Rilevanza:</strong> Sono considerati rilevanti tutti i sistemi con punteggio ≥ 40 punti.<br>
|
||||
<strong>Sistemi Critici:</strong> Sistemi con punteggio ≥ 80 punti richiedono misure di sicurezza massime e monitoraggio continuo 24/7.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<div class="section-title">2. RIEPILOGO STATISTICO</div>
|
||||
<div class="section-content">
|
||||
<table>
|
||||
<tr>
|
||||
<th>Categoria</th>
|
||||
<th>Range Punteggio</th>
|
||||
<th>Numero Sistemi</th>
|
||||
<th>Percentuale</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="critical">CRITICO</span></td>
|
||||
<td>80-100</td>
|
||||
<td>12</td>
|
||||
<td>31.6%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="high">ALTO</span></td>
|
||||
<td>60-79</td>
|
||||
<td>15</td>
|
||||
<td>39.5%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="medium">MEDIO</span></td>
|
||||
<td>40-59</td>
|
||||
<td>11</td>
|
||||
<td>28.9%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>TOTALE RILEVANTI</strong></td>
|
||||
<td>≥40</td>
|
||||
<td><strong>38</strong></td>
|
||||
<td><strong>100%</strong></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<div class="section-title">3. ELENCO SISTEMI CRITICI (≥80 PUNTI)</div>
|
||||
<div class="section-content">
|
||||
<table>
|
||||
<tr>
|
||||
<th>Codice</th>
|
||||
<th>Nome Sistema</th>
|
||||
<th>Tipo</th>
|
||||
<th>Punteggio</th>
|
||||
<th>RTO/RPO</th>
|
||||
<th>Monitoraggio</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SW-ERP-001</td>
|
||||
<td>SAP ERP</td>
|
||||
<td>Software</td>
|
||||
<td class="critical">95</td>
|
||||
<td>4h / 1h</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SVC-001</td>
|
||||
<td>Piattaforma ERP Cloud</td>
|
||||
<td>Servizio</td>
|
||||
<td class="critical">94</td>
|
||||
<td>4h / 1h</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SW-SEC-008</td>
|
||||
<td>Splunk SIEM</td>
|
||||
<td>Software</td>
|
||||
<td class="critical">92</td>
|
||||
<td>4h / 4h</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>HW-SRV-001</td>
|
||||
<td>ERP-PROD-01</td>
|
||||
<td>Hardware</td>
|
||||
<td class="critical">91</td>
|
||||
<td>4h / 1h</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SW-DB-003</td>
|
||||
<td>Oracle Database</td>
|
||||
<td>Software</td>
|
||||
<td class="critical">89</td>
|
||||
<td>4h / 1h</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>HW-NET-015</td>
|
||||
<td>FW-PERIMETRALE-01</td>
|
||||
<td>Hardware</td>
|
||||
<td class="critical">88</td>
|
||||
<td>1h / N/A</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SVC-002</td>
|
||||
<td>Hosting Applicazioni</td>
|
||||
<td>Servizio</td>
|
||||
<td class="critical">88</td>
|
||||
<td>8h / 4h</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CLD-IAAS-001</td>
|
||||
<td>VM Production AWS</td>
|
||||
<td>Cloud</td>
|
||||
<td class="critical">87</td>
|
||||
<td>4h / 1h</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CLD-PAAS-003</td>
|
||||
<td>Azure SQL Database</td>
|
||||
<td>Cloud</td>
|
||||
<td class="critical">85</td>
|
||||
<td>4h / 1h</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>HW-NET-022</td>
|
||||
<td>Core Switch Datacenter</td>
|
||||
<td>Hardware</td>
|
||||
<td class="critical">84</td>
|
||||
<td>2h / N/A</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SW-BACKUP-001</td>
|
||||
<td>Veeam Backup System</td>
|
||||
<td>Software</td>
|
||||
<td class="critical">82</td>
|
||||
<td>24h / 24h</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>HW-SRV-012</td>
|
||||
<td>DB-PROD-01</td>
|
||||
<td>Hardware</td>
|
||||
<td class="critical">80</td>
|
||||
<td>4h / 1h</td>
|
||||
<td>24/7</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<div class="section-title">4. MISURE DI SICUREZZA OBBLIGATORIE</div>
|
||||
<div class="section-content">
|
||||
Per tutti i sistemi rilevanti sono implementate le seguenti misure minime di sicurezza:
|
||||
<ul style="margin-left: 20px; margin-top: 10px;">
|
||||
<li>Backup giornaliero con retention minima 30 giorni</li>
|
||||
<li>Patch management con SLA massimo 30 giorni per vulnerabilità critiche</li>
|
||||
<li>Logging centralizzato su SIEM con retention 12 mesi</li>
|
||||
<li>Controllo accessi con autenticazione multi-fattore (MFA)</li>
|
||||
<li>Monitoraggio continuo con alerting automatico</li>
|
||||
<li>Business Continuity Plan e Disaster Recovery Plan documentati e testati</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<strong>Sistemi Critici (≥80):</strong> Oltre alle misure sopra elencate, richiedono ridondanza hardware/software, monitoraggio 24/7 con reperibilità H24, test DR semestrali e revisione trimestrale delle configurazioni di sicurezza.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<div class="section-title">5. REVISIONE E AGGIORNAMENTO</div>
|
||||
<div class="section-content">
|
||||
Il presente documento è soggetto a revisione semestrale obbligatoria. Revisioni straordinarie sono richieste in caso di:
|
||||
<ul style="margin-left: 20px; margin-top: 10px;">
|
||||
<li>Introduzione di nuovi sistemi con punteggio ≥40</li>
|
||||
<li>Modifiche sostanziali ai sistemi esistenti che ne alterano il punteggio</li>
|
||||
<li>Incidenti di sicurezza significativi</li>
|
||||
<li>Cambiamenti normativi rilevanti</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<div class="section-title">APPROVAZIONE</div>
|
||||
<div class="section-content">
|
||||
Il presente documento è stato approvato dal Consiglio di Amministrazione in data 15 Febbraio 2024 con Delibera n. 05/2024 e costituisce documento ufficiale ai fini della conformità NIS2.
|
||||
</div>
|
||||
|
||||
<div class="signature-block">
|
||||
<div class="signature">
|
||||
<div class="signature-line">
|
||||
<strong>Marco Bianchi</strong><br>
|
||||
<span class="signature-role">Chief Information Security Officer (CISO)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="signature">
|
||||
<div class="signature-line">
|
||||
<strong>Giovanni Rossi</strong><br>
|
||||
<span class="signature-role">Amministratore Delegato</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-number">
|
||||
Pagina 1 di 1 - Documento NIS2-GV-OC-04-v2.3 - RISERVATO
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,353 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="it">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Accesso Sistema Gestione Incidenti - NIS2</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg-primary: #0d1117;
|
||||
--bg-secondary: #161b22;
|
||||
--bg-tertiary: #1c2128;
|
||||
--border-color: #30363d;
|
||||
--text-primary: #c9d1d9;
|
||||
--text-secondary: #8b949e;
|
||||
--accent-primary: #58a6ff;
|
||||
--accent-secondary: #1f6feb;
|
||||
--success: #3fb950;
|
||||
--warning: #d29922;
|
||||
--danger: #f85149;
|
||||
--essential-bg: #fef3c7;
|
||||
--essential-text: #92400e;
|
||||
--essential-border: #f59e0b;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
|
||||
background-color: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
line-height: 1.6;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 100vh;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.gate-container {
|
||||
max-width: 900px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.gate-header {
|
||||
text-align: center;
|
||||
margin-bottom: 48px;
|
||||
}
|
||||
|
||||
.gate-header h1 {
|
||||
font-size: 32px;
|
||||
font-weight: 700;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.gate-header p {
|
||||
font-size: 16px;
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.warning-box {
|
||||
background-color: rgba(210, 153, 34, 0.1);
|
||||
border: 2px solid var(--warning);
|
||||
border-radius: 8px;
|
||||
padding: 24px;
|
||||
margin-bottom: 48px;
|
||||
}
|
||||
|
||||
.warning-box-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: var(--warning);
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.warning-icon {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.warning-box-content {
|
||||
font-size: 14px;
|
||||
color: var(--text-primary);
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.selection-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
|
||||
gap: 24px;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.selection-card {
|
||||
background-color: var(--bg-secondary);
|
||||
border: 2px solid var(--border-color);
|
||||
border-radius: 8px;
|
||||
padding: 32px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.selection-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 4px;
|
||||
background: linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));
|
||||
transform: scaleX(0);
|
||||
transition: transform 0.3s ease;
|
||||
}
|
||||
|
||||
.selection-card:hover {
|
||||
border-color: var(--accent-primary);
|
||||
transform: translateY(-4px);
|
||||
box-shadow: 0 8px 24px rgba(88, 166, 255, 0.2);
|
||||
}
|
||||
|
||||
.selection-card:hover::before {
|
||||
transform: scaleX(1);
|
||||
}
|
||||
|
||||
.selection-card.essential {
|
||||
border-color: var(--essential-border);
|
||||
}
|
||||
|
||||
.selection-card.essential:hover {
|
||||
border-color: var(--essential-border);
|
||||
box-shadow: 0 8px 24px rgba(245, 158, 11, 0.2);
|
||||
}
|
||||
|
||||
.selection-card.essential::before {
|
||||
background: linear-gradient(90deg, var(--essential-border), var(--warning));
|
||||
}
|
||||
|
||||
.card-badge {
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
border-radius: 4px;
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.badge-important {
|
||||
background-color: rgba(88, 166, 255, 0.2);
|
||||
color: var(--accent-primary);
|
||||
border: 1px solid var(--accent-primary);
|
||||
}
|
||||
|
||||
.badge-essential {
|
||||
background-color: var(--essential-bg);
|
||||
color: var(--essential-text);
|
||||
border: 1px solid var(--essential-border);
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.card-description {
|
||||
font-size: 14px;
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.card-features {
|
||||
list-style: none;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.card-features li {
|
||||
font-size: 13px;
|
||||
color: var(--text-primary);
|
||||
padding: 8px 0;
|
||||
padding-left: 24px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.card-features li::before {
|
||||
content: '✓';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
color: var(--success);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.card-button {
|
||||
width: 100%;
|
||||
padding: 14px 24px;
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 2px solid var(--accent-primary);
|
||||
border-radius: 6px;
|
||||
color: var(--accent-primary);
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.card-button:hover {
|
||||
background-color: var(--accent-primary);
|
||||
color: var(--bg-primary);
|
||||
}
|
||||
|
||||
.selection-card.essential .card-button {
|
||||
border-color: var(--essential-border);
|
||||
color: var(--essential-border);
|
||||
}
|
||||
|
||||
.selection-card.essential .card-button:hover {
|
||||
background-color: var(--essential-border);
|
||||
color: var(--bg-primary);
|
||||
}
|
||||
|
||||
.footer-note {
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
padding: 24px;
|
||||
background-color: var(--bg-secondary);
|
||||
border-radius: 6px;
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.footer-note strong {
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.selection-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.gate-header h1 {
|
||||
font-size: 24px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="gate-container">
|
||||
<div class="gate-header">
|
||||
<h1>Sistema Gestione Incidenti NIS2</h1>
|
||||
<p>Seleziona la tipologia del tuo soggetto per accedere alle funzionalità appropriate</p>
|
||||
</div>
|
||||
|
||||
<div class="warning-box">
|
||||
<div class="warning-box-title">
|
||||
<span class="warning-icon">⚠️</span>
|
||||
Accesso Obbligatorio
|
||||
</div>
|
||||
<div class="warning-box-content">
|
||||
<strong>La conformità alla gestione incidenti è obbligatoria per TUTTI i soggetti NIS2</strong> (essenziali e importanti). La differenza sta nei tipi di incidenti da segnalare e nelle tempistiche, come definito negli Allegati 3 (soggetti essenziali) e 4 (soggetti importanti) della Determina 164179/2025.
|
||||
<br><br>
|
||||
Seleziona la categoria corretta per visualizzare solo i requisiti applicabili alla tua organizzazione.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="selection-grid">
|
||||
<div class="selection-card" onclick="selectType('important')">
|
||||
<span class="card-badge badge-important">Soggetto Importante</span>
|
||||
<h2 class="card-title">Soggetto Importante</h2>
|
||||
<p class="card-description">
|
||||
Organizzazioni che rientrano nella categoria "importanti" secondo il D.Lgs. 138/2024, con obblighi di notifica per incidenti significativi secondo Allegato 4.
|
||||
</p>
|
||||
<ul class="card-features">
|
||||
<li>Notifica incidenti IS-1, IS-2, IS-3</li>
|
||||
<li>Preallarme entro 24 ore</li>
|
||||
<li>Notifica completa entro 72 ore</li>
|
||||
<li>Relazione finale entro 1 mese</li>
|
||||
<li>Gestione incidenti ricorrenti (IS-4) non obbligatoria</li>
|
||||
</ul>
|
||||
<button class="card-button">Accedi come Soggetto Importante</button>
|
||||
</div>
|
||||
|
||||
<div class="selection-card essential" onclick="selectType('essential')">
|
||||
<span class="card-badge badge-essential">Soggetto Essenziale</span>
|
||||
<h2 class="card-title">Soggetto Essenziale</h2>
|
||||
<p class="card-description">
|
||||
Organizzazioni che rientrano nella categoria "essenziali" secondo il D.Lgs. 138/2024, con obblighi estesi di notifica per incidenti significativi secondo Allegato 3.
|
||||
</p>
|
||||
<ul class="card-features">
|
||||
<li>Notifica incidenti IS-1, IS-2, IS-3, IS-4</li>
|
||||
<li>Preallarme entro 24 ore</li>
|
||||
<li>Notifica completa entro 72 ore</li>
|
||||
<li>Relazione finale entro 1 mese</li>
|
||||
<li>Gestione incidenti ricorrenti (IS-4) obbligatoria</li>
|
||||
<li>Monitoraggio 24/7 richiesto</li>
|
||||
</ul>
|
||||
<button class="card-button">Accedi come Soggetto Essenziale</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer-note">
|
||||
<strong>Riferimenti normativi:</strong> D.Lgs. 138/2024 (Direttiva NIS2), Determina ACN 164179/2025 (Allegati 3 e 4)<br>
|
||||
<strong>Requisiti NIS2 coperti:</strong> RS.MA-01 (Gestione Incidenti), RS.CO-02 (Notifiche), RC.RP-01 (Ripristino), RC.CO-03 (Comunicazioni)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function selectType(type) {
|
||||
// Salva la selezione in sessionStorage
|
||||
sessionStorage.setItem('nis2_subject_type', type);
|
||||
|
||||
// Reindirizza alla dashboard
|
||||
window.location.href = 'incident-dashboard.html';
|
||||
}
|
||||
|
||||
// Verifica se c'è già una selezione
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
const savedType = sessionStorage.getItem('nis2_subject_type');
|
||||
if (savedType) {
|
||||
// Mostra un messaggio che sta caricando
|
||||
const container = document.querySelector('.gate-container');
|
||||
container.innerHTML = `
|
||||
<div style="text-align: center; padding: 60px 20px;">
|
||||
<h2 style="font-size: 24px; margin-bottom: 16px;">Accesso già configurato</h2>
|
||||
<p style="color: var(--text-secondary); margin-bottom: 24px;">
|
||||
Sei configurato come: <strong style="color: var(--text-primary);">${savedType === 'essential' ? 'Soggetto Essenziale' : 'Soggetto Importante'}</strong>
|
||||
</p>
|
||||
<button onclick="window.location.href='incident-dashboard.html'"
|
||||
style="padding: 12px 24px; background-color: var(--accent-primary); border: none; border-radius: 6px; color: white; font-weight: 600; cursor: pointer; margin-right: 12px;">
|
||||
Vai alla Dashboard
|
||||
</button>
|
||||
<button onclick="sessionStorage.removeItem('nis2_subject_type'); location.reload();"
|
||||
style="padding: 12px 24px; background-color: var(--bg-tertiary); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-primary); font-weight: 600; cursor: pointer;">
|
||||
Cambia Selezione
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,956 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="it">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Nuovo Incidente - NIS2 Management System</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg-primary: #0d1117;
|
||||
--bg-secondary: #161b22;
|
||||
--bg-tertiary: #1c2128;
|
||||
--border-color: #30363d;
|
||||
--text-primary: #c9d1d9;
|
||||
--text-secondary: #8b949e;
|
||||
--accent-primary: #58a6ff;
|
||||
--accent-secondary: #1f6feb;
|
||||
--success: #3fb950;
|
||||
--warning: #d29922;
|
||||
--danger: #f85149;
|
||||
--essential-bg: #fef3c7;
|
||||
--essential-text: #92400e;
|
||||
--essential-border: #f59e0b;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
|
||||
background-color: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
line-height: 1.6;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: var(--bg-secondary);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
padding: 24px 0;
|
||||
margin-bottom: 32px;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.header-content {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 0 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.breadcrumb a {
|
||||
color: var(--accent-primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn {
|
||||
padding: 8px 16px;
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
border-color: var(--accent-primary);
|
||||
color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.form-section {
|
||||
background-color: var(--bg-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
padding: 24px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.form-section-title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 12px;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.help-icon {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
background-color: rgba(167, 139, 250, 0.2);
|
||||
border: 2px solid #a78bfa;
|
||||
border-radius: 50%;
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
color: #a78bfa;
|
||||
cursor: help;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.help-icon:hover {
|
||||
background-color: rgba(167, 139, 250, 0.3);
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
visibility: hidden;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
background-color: var(--bg-tertiary);
|
||||
color: var(--text-primary);
|
||||
padding: 12px;
|
||||
border-radius: 6px;
|
||||
border: 1px solid var(--border-color);
|
||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
|
||||
width: 320px;
|
||||
top: 28px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
opacity: 0;
|
||||
transition: opacity 0.2s;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.tooltip::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid var(--border-color);
|
||||
}
|
||||
|
||||
.tooltip-title {
|
||||
color: var(--accent-primary);
|
||||
font-weight: 600;
|
||||
margin-bottom: 8px;
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.help-icon:hover .tooltip {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.form-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.form-group.full-width {
|
||||
grid-column: 1 / -1;
|
||||
}
|
||||
|
||||
.form-label {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.form-label .required {
|
||||
color: var(--danger);
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
.form-input, .form-select, .form-textarea {
|
||||
width: 100%;
|
||||
padding: 10px 12px;
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
color: var(--text-primary);
|
||||
font-size: 14px;
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
.form-input:focus, .form-select:focus, .form-textarea:focus {
|
||||
outline: none;
|
||||
border-color: var(--accent-primary);
|
||||
box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.1);
|
||||
}
|
||||
|
||||
.form-textarea {
|
||||
resize: vertical;
|
||||
min-height: 100px;
|
||||
}
|
||||
|
||||
.form-help {
|
||||
font-size: 12px;
|
||||
color: var(--text-secondary);
|
||||
margin-top: 6px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.severity-selector {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.severity-option {
|
||||
padding: 16px;
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 2px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.severity-option:hover {
|
||||
border-color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.severity-option.selected {
|
||||
border-color: var(--accent-primary);
|
||||
background-color: rgba(88, 166, 255, 0.1);
|
||||
}
|
||||
|
||||
.severity-option.sev-1 {
|
||||
border-color: var(--danger);
|
||||
}
|
||||
|
||||
.severity-option.sev-1.selected {
|
||||
background-color: rgba(248, 81, 73, 0.1);
|
||||
}
|
||||
|
||||
.severity-option.sev-2 {
|
||||
border-color: var(--warning);
|
||||
}
|
||||
|
||||
.severity-option.sev-2.selected {
|
||||
background-color: rgba(210, 153, 34, 0.1);
|
||||
}
|
||||
|
||||
.severity-label {
|
||||
font-weight: 700;
|
||||
font-size: 14px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.severity-desc {
|
||||
font-size: 11px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.alert-box {
|
||||
background-color: rgba(88, 166, 255, 0.1);
|
||||
border: 1px solid var(--accent-primary);
|
||||
border-left: 4px solid var(--accent-primary);
|
||||
border-radius: 6px;
|
||||
padding: 16px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.alert-box.warning {
|
||||
background-color: rgba(210, 153, 34, 0.1);
|
||||
border-color: var(--warning);
|
||||
border-left-color: var(--warning);
|
||||
}
|
||||
|
||||
.alert-box.danger {
|
||||
background-color: rgba(248, 81, 73, 0.1);
|
||||
border-color: var(--danger);
|
||||
border-left-color: var(--danger);
|
||||
}
|
||||
|
||||
.alert-title {
|
||||
font-weight: 600;
|
||||
margin-bottom: 8px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.alert-content {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.form-actions {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
justify-content: flex-end;
|
||||
padding-top: 24px;
|
||||
border-top: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: var(--accent-primary);
|
||||
border-color: var(--accent-primary);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: var(--accent-secondary);
|
||||
border-color: var(--accent-secondary);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-danger {
|
||||
background-color: var(--danger);
|
||||
border-color: var(--danger);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-danger:hover {
|
||||
background-color: #dc2626;
|
||||
border-color: #dc2626;
|
||||
}
|
||||
|
||||
.checklist {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.checklist li {
|
||||
padding: 10px;
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 4px;
|
||||
margin-bottom: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.checklist input[type="checkbox"] {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.essential-badge {
|
||||
display: inline-block;
|
||||
background-color: var(--essential-bg);
|
||||
color: var(--essential-text);
|
||||
padding: 4px 8px;
|
||||
border-radius: 3px;
|
||||
font-size: 10px;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
border: 1px solid var(--essential-border);
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.form-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.severity-selector {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="header-content">
|
||||
<div>
|
||||
<h1>🚨 Segnalazione Nuovo Incidente</h1>
|
||||
<div class="breadcrumb">
|
||||
<a href="dashboard.html">Dashboard NIS2</a> /
|
||||
<a href="incident-dashboard.html">Gestione Incidenti</a> /
|
||||
Nuovo Incidente
|
||||
</div>
|
||||
</div>
|
||||
<a href="incident-dashboard.html" class="btn">← Annulla</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="alert-box danger">
|
||||
<div class="alert-title">⚠️ Procedura di Emergenza</div>
|
||||
<div class="alert-content">
|
||||
Per incidenti <strong>SEV-1 (Critici)</strong>: attivare immediatamente il Crisis Team e il CISO.
|
||||
La notifica al CSIRT Italia (preallarme) deve essere effettuata entro <strong>24 ore</strong> dalla conoscenza dell'incidente significativo.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form id="incidentForm">
|
||||
<!-- Sezione 1: Rilevazione -->
|
||||
<div class="form-section">
|
||||
<div class="form-section-title">
|
||||
Fase 1: Rilevazione e Segnalazione
|
||||
<span class="help-icon">?
|
||||
<div class="tooltip">
|
||||
<div class="tooltip-title">HELP DELLA SEZIONE</div>
|
||||
Registrazione iniziale dell'incidente. Compilare entro 15 minuti dalla rilevazione per incidenti critici. Tutte le informazioni possono essere aggiornate durante la gestione.
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="form-grid">
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Data/Ora Rilevazione <span class="required">*</span>
|
||||
</label>
|
||||
<input type="datetime-local" class="form-input" id="detectionTime" required>
|
||||
<div class="form-help">Momento in cui l'incidente è stato rilevato</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Fonte di Rilevazione <span class="required">*</span>
|
||||
</label>
|
||||
<select class="form-select" id="detectionSource" required>
|
||||
<option value="">Seleziona...</option>
|
||||
<option value="siem">Alert SIEM/SOC</option>
|
||||
<option value="edr">Alert EDR/Antimalware</option>
|
||||
<option value="user">Segnalazione Utente</option>
|
||||
<option value="supplier">Notifica Fornitore/Partner</option>
|
||||
<option value="csirt">Notifica CSIRT Italia</option>
|
||||
<option value="threat-intel">Threat Intelligence</option>
|
||||
<option value="external">Segnalazione Esterna</option>
|
||||
<option value="monitoring">Monitoraggio Infrastruttura</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Analista Assegnato <span class="required">*</span>
|
||||
</label>
|
||||
<select class="form-select" id="analyst" required>
|
||||
<option value="">Seleziona...</option>
|
||||
<option value="ciso">CISO</option>
|
||||
<option value="soc-lead">SOC Lead</option>
|
||||
<option value="analyst1">Analista Sicurezza 1</option>
|
||||
<option value="analyst2">Analista Sicurezza 2</option>
|
||||
<option value="sysadmin">System Administrator</option>
|
||||
<option value="netadmin">Network Administrator</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group full-width">
|
||||
<label class="form-label">
|
||||
Descrizione Preliminare <span class="required">*</span>
|
||||
</label>
|
||||
<textarea class="form-textarea" id="description" required placeholder="Descrizione dettagliata dell'incidente rilevato..."></textarea>
|
||||
<div class="form-help">Fornire tutti i dettagli disponibili: cosa è stato rilevato, su quali sistemi, sintomi osservati</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group full-width">
|
||||
<label class="form-label">
|
||||
Sistemi Potenzialmente Impattati
|
||||
</label>
|
||||
<input type="text" class="form-input" id="affectedSystems" placeholder="es. HW-SRV-001, SW-ERP-001, CLD-IAAS-001">
|
||||
<div class="form-help">Codici asset da inventario (Org.01). Separare con virgola se multipli</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Sezione 2: Triage e Classificazione -->
|
||||
<div class="form-section">
|
||||
<div class="form-section-title">
|
||||
Fase 2: Triage e Classificazione
|
||||
<span class="help-icon">?
|
||||
<div class="tooltip">
|
||||
<div class="tooltip-title">HELP DELLA SEZIONE</div>
|
||||
Determinazione della severità e classificazione secondo NIS2. Completare entro 1 ora per SEV-1/SEV-2. La classificazione determina gli obblighi di notifica al CSIRT.
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group full-width">
|
||||
<label class="form-label">
|
||||
Severità Incidente <span class="required">*</span>
|
||||
</label>
|
||||
<div class="severity-selector">
|
||||
<div class="severity-option sev-1" onclick="selectSeverity('sev-1')">
|
||||
<div class="severity-label" style="color: var(--danger);">SEV-1</div>
|
||||
<div class="severity-desc">CRITICO</div>
|
||||
</div>
|
||||
<div class="severity-option sev-2" onclick="selectSeverity('sev-2')">
|
||||
<div class="severity-label" style="color: var(--warning);">SEV-2</div>
|
||||
<div class="severity-desc">ALTO</div>
|
||||
</div>
|
||||
<div class="severity-option" onclick="selectSeverity('sev-3')">
|
||||
<div class="severity-label" style="color: var(--accent-primary);">SEV-3</div>
|
||||
<div class="severity-desc">MEDIO</div>
|
||||
</div>
|
||||
<div class="severity-option" onclick="selectSeverity('sev-4')">
|
||||
<div class="severity-label" style="color: var(--text-secondary);">SEV-4</div>
|
||||
<div class="severity-desc">BASSO</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" id="severity" required>
|
||||
<div class="form-help" id="severityHelp" style="margin-top: 12px;"></div>
|
||||
</div>
|
||||
|
||||
<div class="alert-box warning" id="sev1Alert" style="display: none;">
|
||||
<div class="alert-title">🚨 Incidente SEV-1 - Azioni Immediate Richieste</div>
|
||||
<div class="alert-content">
|
||||
<ul style="margin-left: 20px; margin-top: 8px;">
|
||||
<li>Attivare immediatamente Crisis Team</li>
|
||||
<li>Notificare CISO e Direzione</li>
|
||||
<li>Contenimento entro 30 minuti</li>
|
||||
<li>Preallarme CSIRT entro 24h (se significativo)</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-grid">
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Classificazione NIS2 <span class="required">*</span>
|
||||
</label>
|
||||
<select class="form-select" id="classification" required onchange="updateClassificationHelp()">
|
||||
<option value="">Seleziona...</option>
|
||||
<option value="is-1">IS-1 - Impatto su servizi rilevanti</option>
|
||||
<option value="is-2">IS-2 - Impatto su integrità/riservatezza dati</option>
|
||||
<option value="is-3">IS-3 - Impatto su altri soggetti/supply chain</option>
|
||||
<option value="is-4" id="is4ClassOption">IS-4 - Incidente ricorrente (SOLO ESSENZIALI)</option>
|
||||
<option value="not-significant">Non Significativo</option>
|
||||
</select>
|
||||
<div class="form-help" id="classificationHelp"></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Impatto
|
||||
</label>
|
||||
<select class="form-select" id="impact" multiple size="4">
|
||||
<option value="availability">Disponibilità</option>
|
||||
<option value="integrity">Integrità</option>
|
||||
<option value="confidentiality">Riservatezza</option>
|
||||
<option value="authenticity">Autenticità</option>
|
||||
</select>
|
||||
<div class="form-help">Tenere premuto Ctrl/Cmd per selezione multipla</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Categoria MITRE ATT&CK
|
||||
</label>
|
||||
<select class="form-select" id="mitreCategory">
|
||||
<option value="">Non determinata</option>
|
||||
<option value="initial-access">Initial Access</option>
|
||||
<option value="execution">Execution</option>
|
||||
<option value="persistence">Persistence</option>
|
||||
<option value="privilege-escalation">Privilege Escalation</option>
|
||||
<option value="defense-evasion">Defense Evasion</option>
|
||||
<option value="credential-access">Credential Access</option>
|
||||
<option value="discovery">Discovery</option>
|
||||
<option value="lateral-movement">Lateral Movement</option>
|
||||
<option value="collection">Collection</option>
|
||||
<option value="exfiltration">Exfiltration</option>
|
||||
<option value="impact">Impact</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Vettore di Attacco
|
||||
</label>
|
||||
<select class="form-select" id="attackVector">
|
||||
<option value="">Non determinato</option>
|
||||
<option value="phishing">Phishing/Spear Phishing</option>
|
||||
<option value="malware">Malware</option>
|
||||
<option value="ransomware">Ransomware</option>
|
||||
<option value="vulnerability">Exploit Vulnerabilità</option>
|
||||
<option value="brute-force">Brute Force</option>
|
||||
<option value="credential-stuffing">Credential Stuffing</option>
|
||||
<option value="supply-chain">Supply Chain Attack</option>
|
||||
<option value="ddos">DDoS</option>
|
||||
<option value="insider">Insider Threat</option>
|
||||
<option value="physical">Accesso Fisico</option>
|
||||
<option value="social-engineering">Social Engineering</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="alert-box" id="csirtAlert" style="display: none;">
|
||||
<div class="alert-title">📡 Notifica CSIRT Obbligatoria</div>
|
||||
<div class="alert-content">
|
||||
Questo incidente rientra nella classificazione di incidente significativo secondo NIS2.
|
||||
È obbligatorio inviare il <strong>preallarme al CSIRT Italia entro 24 ore</strong> dalla conoscenza dell'incidente.
|
||||
<br><br>
|
||||
Dopo la creazione dell'incidente, procedere alla sezione "Notifiche CSIRT" per gestire le comunicazioni obbligatorie.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Sezione 3: Dati Impattati -->
|
||||
<div class="form-section">
|
||||
<div class="form-section-title">
|
||||
Dati e Servizi Impattati
|
||||
<span class="help-icon">?
|
||||
<div class="tooltip">
|
||||
<div class="tooltip-title">HELP DELLA SEZIONE</div>
|
||||
Identificazione dei dati e servizi coinvolti nell'incidente. Fondamentale per valutare obblighi GDPR e impatto operativo.
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="form-grid">
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Dati Personali Coinvolti?
|
||||
</label>
|
||||
<select class="form-select" id="personalData" onchange="toggleGDPR()">
|
||||
<option value="no">No</option>
|
||||
<option value="yes">Sì</option>
|
||||
<option value="unknown">Da verificare</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="gdprGroup" style="display: none;">
|
||||
<label class="form-label">
|
||||
Notifica Garante Privacy
|
||||
</label>
|
||||
<select class="form-select" id="gdprNotification">
|
||||
<option value="not-required">Non richiesta</option>
|
||||
<option value="required">Richiesta (entro 72h)</option>
|
||||
<option value="sent">Già inviata</option>
|
||||
</select>
|
||||
<div class="form-help">Art. 33 GDPR - coordinare con DPO</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group full-width">
|
||||
<label class="form-label">
|
||||
Servizi Rilevanti NIS2 Impattati
|
||||
</label>
|
||||
<input type="text" class="form-input" id="affectedServices" placeholder="Codici servizi da catalogo (ID.AM-04)">
|
||||
<div class="form-help">Elencare i servizi rilevanti NIS2 che hanno subito interruzione o degrado</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Numero Utenti Impattati (stima)
|
||||
</label>
|
||||
<input type="number" class="form-input" id="usersImpacted" min="0">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Impatto Economico Stimato (€)
|
||||
</label>
|
||||
<input type="number" class="form-input" id="financialImpact" min="0" step="100">
|
||||
<div class="form-help">Stima preliminare (diretto + indiretto)</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Sezione 4: Azioni Immediate -->
|
||||
<div class="form-section">
|
||||
<div class="form-section-title">
|
||||
Azioni Immediate di Contenimento
|
||||
<span class="help-icon">?
|
||||
<div class="tooltip">
|
||||
<div class="tooltip-title">HELP DELLA SEZIONE</div>
|
||||
Checklist delle azioni di contenimento immediato. Per SEV-1: contenimento entro 30 minuti. Documentare ogni azione con timestamp.
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ul class="checklist">
|
||||
<li>
|
||||
<input type="checkbox" id="action1">
|
||||
<label for="action1">Sistema compromesso isolato dalla rete</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="action2">
|
||||
<label for="action2">Account compromessi bloccati</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="action3">
|
||||
<label for="action3">IP/domini malevoli bloccati su firewall</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="action4">
|
||||
<label for="action4">Evidenze preservate (snapshot, log, memoria)</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="action5">
|
||||
<label for="action5">Monitoraggio intensivo attivato su sistemi correlati</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="action6">
|
||||
<label for="action6">Crisis Team / IRT notificato</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="action7">
|
||||
<label for="action7">Direzione informata (per SEV-1/SEV-2)</label>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="form-group" style="margin-top: 20px;">
|
||||
<label class="form-label">
|
||||
Note Azioni di Contenimento
|
||||
</label>
|
||||
<textarea class="form-textarea" id="containmentNotes" placeholder="Descrivere in dettaglio le azioni di contenimento effettuate con timestamp..."></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Sezione 5: Collegamento Risk -->
|
||||
<div class="form-section">
|
||||
<div class="form-section-title">
|
||||
Collegamento Risk Assessment
|
||||
<span class="help-icon">?
|
||||
<div class="tooltip">
|
||||
<div class="tooltip-title">HELP DELLA SEZIONE</div>
|
||||
Collegare l'incidente a rischi già identificati nel risk assessment (Org.05). Se l'incidente evidenzia un nuovo rischio, verrà creato automaticamente.
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Collegamento N°RISK
|
||||
</label>
|
||||
<input type="text" class="form-input" id="riskId" placeholder="es. RISK-2024-015">
|
||||
<div class="form-help">Codice rischio da Org.05 - Risk Assessment. Lasciare vuoto se nuovo rischio</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">
|
||||
Root Cause Preliminare
|
||||
</label>
|
||||
<select class="form-select" id="rootCause">
|
||||
<option value="">Da determinare</option>
|
||||
<option value="vulnerability">Vulnerabilità non patchata</option>
|
||||
<option value="misconfiguration">Errore di configurazione</option>
|
||||
<option value="weak-credentials">Credenziali deboli/compromesse</option>
|
||||
<option value="missing-controls">Controlli di sicurezza mancanti</option>
|
||||
<option value="human-error">Errore umano</option>
|
||||
<option value="third-party">Compromissione terza parte</option>
|
||||
<option value="zero-day">Zero-day exploit</option>
|
||||
<option value="insider">Insider threat</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Form Actions -->
|
||||
<div class="form-section">
|
||||
<div class="form-actions">
|
||||
<a href="incident-dashboard.html" class="btn">Annulla</a>
|
||||
<button type="button" class="btn" onclick="saveDraft()">Salva Bozza</button>
|
||||
<button type="submit" class="btn btn-danger">🚨 Crea Incidente e Attiva Gestione</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// Verifica tipo soggetto
|
||||
function checkSubjectType() {
|
||||
const subjectType = sessionStorage.getItem('nis2_subject_type');
|
||||
|
||||
if (!subjectType) {
|
||||
window.location.href = 'incident-gate.html';
|
||||
return;
|
||||
}
|
||||
|
||||
// Nascondi IS-4 per soggetti importanti
|
||||
if (subjectType === 'important') {
|
||||
const is4Option = document.getElementById('is4ClassOption');
|
||||
if (is4Option) is4Option.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
// Imposta data/ora corrente
|
||||
function setCurrentDateTime() {
|
||||
const now = new Date();
|
||||
const year = now.getFullYear();
|
||||
const month = String(now.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(now.getDate()).padStart(2, '0');
|
||||
const hours = String(now.getHours()).padStart(2, '0');
|
||||
const minutes = String(now.getMinutes()).padStart(2, '0');
|
||||
|
||||
document.getElementById('detectionTime').value = `${year}-${month}-${day}T${hours}:${minutes}`;
|
||||
}
|
||||
|
||||
// Selezione severità
|
||||
function selectSeverity(severity) {
|
||||
// Rimuovi selezione precedente
|
||||
document.querySelectorAll('.severity-option').forEach(opt => {
|
||||
opt.classList.remove('selected');
|
||||
});
|
||||
|
||||
// Seleziona nuovo
|
||||
event.target.closest('.severity-option').classList.add('selected');
|
||||
document.getElementById('severity').value = severity;
|
||||
|
||||
// Mostra help specifico
|
||||
const helpTexts = {
|
||||
'sev-1': '🚨 <strong>CRITICO:</strong> Interruzione totale servizio critico, ransomware attivo, esfiltrazione massiva dati, compromissione infrastruttura core. <strong>Attivazione immediata Crisis Team.</strong>',
|
||||
'sev-2': '⚠️ <strong>ALTO:</strong> Interruzione parziale servizio rilevante, compromissione account privilegiato, malware attivo non contenuto, accesso non autorizzato a dati riservati.',
|
||||
'sev-3': 'ℹ️ <strong>MEDIO:</strong> Degrado prestazioni servizio rilevante, malware contenuto automaticamente, tentativo intrusione bloccato ma significativo.',
|
||||
'sev-4': '📝 <strong>BASSO:</strong> Anomalia senza impatto operativo, tentativo attacco bloccato (routine), violazione policy minore.'
|
||||
};
|
||||
|
||||
document.getElementById('severityHelp').innerHTML = helpTexts[severity];
|
||||
|
||||
// Mostra alert per SEV-1
|
||||
const sev1Alert = document.getElementById('sev1Alert');
|
||||
if (severity === 'sev-1') {
|
||||
sev1Alert.style.display = 'block';
|
||||
} else {
|
||||
sev1Alert.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiorna help classificazione
|
||||
function updateClassificationHelp() {
|
||||
const classification = document.getElementById('classification').value;
|
||||
const helpTexts = {
|
||||
'is-1': 'Interruzione operativa o degrado significativo di un servizio rilevante NIS2. <strong>Notifica CSIRT obbligatoria.</strong>',
|
||||
'is-2': 'Accesso non autorizzato, modifica, esfiltrazione o violazione riservatezza dati. <strong>Notifica CSIRT obbligatoria.</strong> Verificare anche obbligo GDPR.',
|
||||
'is-3': 'Incidente che si propaga a soggetti terzi o impatta la catena di fornitura. <strong>Notifica CSIRT obbligatoria.</strong>',
|
||||
'is-4': 'Serie di incidenti correlati con impatto cumulativo significativo. <strong>Notifica CSIRT obbligatoria SOLO per soggetti ESSENZIALI.</strong>',
|
||||
'not-significant': 'Incidente gestito internamente, senza obbligo di notifica CSIRT. Documentare comunque nel registro incidenti.'
|
||||
};
|
||||
|
||||
const helpElement = document.getElementById('classificationHelp');
|
||||
helpElement.innerHTML = helpTexts[classification] || '';
|
||||
|
||||
// Mostra/nascondi alert CSIRT
|
||||
const csirtAlert = document.getElementById('csirtAlert');
|
||||
if (['is-1', 'is-2', 'is-3', 'is-4'].includes(classification)) {
|
||||
csirtAlert.style.display = 'block';
|
||||
} else {
|
||||
csirtAlert.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
// Toggle GDPR
|
||||
function toggleGDPR() {
|
||||
const personalData = document.getElementById('personalData').value;
|
||||
const gdprGroup = document.getElementById('gdprGroup');
|
||||
|
||||
if (personalData === 'yes') {
|
||||
gdprGroup.style.display = 'block';
|
||||
} else {
|
||||
gdprGroup.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
// Salva bozza
|
||||
function saveDraft() {
|
||||
alert('Bozza salvata con successo. Puoi continuare la compilazione in seguito.');
|
||||
}
|
||||
|
||||
// Submit form
|
||||
document.getElementById('incidentForm').addEventListener('submit', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
// Validazione
|
||||
const severity = document.getElementById('severity').value;
|
||||
if (!severity) {
|
||||
alert('Seleziona la severità dell\'incidente');
|
||||
return;
|
||||
}
|
||||
|
||||
// Genera codice incidente
|
||||
const year = new Date().getFullYear();
|
||||
const progressive = Math.floor(Math.random() * 900) + 100; // Simulato
|
||||
const incidentCode = `INC-${year}-${progressive}`;
|
||||
|
||||
// Simula creazione incidente
|
||||
const tooltip = document.createElement('div');
|
||||
tooltip.style.cssText = `
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background: var(--bg-secondary);
|
||||
border: 2px solid var(--success);
|
||||
border-radius: 8px;
|
||||
padding: 32px;
|
||||
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
|
||||
z-index: 10000;
|
||||
max-width: 500px;
|
||||
text-align: center;
|
||||
`;
|
||||
tooltip.innerHTML = `
|
||||
<div style="font-size: 48px; margin-bottom: 16px;">✅</div>
|
||||
<h2 style="color: var(--success); margin-bottom: 16px;">Incidente Creato con Successo</h2>
|
||||
<p style="color: var(--text-secondary); margin-bottom: 8px;">Codice incidente:</p>
|
||||
<p style="font-size: 24px; font-weight: 700; color: var(--text-primary); margin-bottom: 24px; font-family: monospace;">${incidentCode}</p>
|
||||
<div style="background: var(--bg-tertiary); padding: 16px; border-radius: 6px; margin-bottom: 24px; text-align: left;">
|
||||
<p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;"><strong>Prossime azioni:</strong></p>
|
||||
<ul style="font-size: 13px; color: var(--text-secondary); margin-left: 20px;">
|
||||
<li>Incident Response Team notificato</li>
|
||||
<li>Timeline di gestione avviata</li>
|
||||
${severity === 'sev-1' ? '<li style="color: var(--danger); font-weight: 600;">Crisis Team attivato</li>' : ''}
|
||||
${['is-1', 'is-2', 'is-3'].includes(document.getElementById('classification').value) ? '<li style="color: var(--warning); font-weight: 600;">Preallarme CSIRT da inviare entro 24h</li>' : ''}
|
||||
</ul>
|
||||
</div>
|
||||
<button onclick="window.location.href='incident-detail.html?id=${incidentCode}'"
|
||||
style="padding: 12px 24px; background: var(--accent-primary); border: none; border-radius: 6px; color: white; font-weight: 600; cursor: pointer; margin-right: 12px;">
|
||||
Vai all'Incidente
|
||||
</button>
|
||||
<button onclick="window.location.href='incident-dashboard.html'"
|
||||
style="padding: 12px 24px; background: var(--bg-tertiary); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-primary); font-weight: 600; cursor: pointer;">
|
||||
Torna alla Dashboard
|
||||
</button>
|
||||
`;
|
||||
document.body.appendChild(tooltip);
|
||||
});
|
||||
|
||||
// Inizializza
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
checkSubjectType();
|
||||
setCurrentDateTime();
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,758 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="it">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Notifiche CSIRT - INC-2024-047</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg-primary: #0d1117;
|
||||
--bg-secondary: #161b22;
|
||||
--bg-tertiary: #1c2128;
|
||||
--border-color: #30363d;
|
||||
--text-primary: #c9d1d9;
|
||||
--text-secondary: #8b949e;
|
||||
--accent-primary: #58a6ff;
|
||||
--accent-secondary: #1f6feb;
|
||||
--success: #3fb950;
|
||||
--warning: #d29922;
|
||||
--danger: #f85149;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
|
||||
background-color: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
line-height: 1.6;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: var(--bg-secondary);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
padding: 24px 0;
|
||||
margin-bottom: 32px;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.header-content {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 0 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.breadcrumb a {
|
||||
color: var(--accent-primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn {
|
||||
padding: 8px 16px;
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
border-color: var(--accent-primary);
|
||||
color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: var(--accent-primary);
|
||||
border-color: var(--accent-primary);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: var(--accent-secondary);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-danger {
|
||||
background-color: var(--danger);
|
||||
border-color: var(--danger);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-danger:hover {
|
||||
background-color: #dc2626;
|
||||
}
|
||||
|
||||
.alert-box {
|
||||
background-color: rgba(210, 153, 34, 0.1);
|
||||
border: 1px solid var(--warning);
|
||||
border-left: 4px solid var(--warning);
|
||||
border-radius: 6px;
|
||||
padding: 20px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.alert-box.danger {
|
||||
background-color: rgba(248, 81, 73, 0.1);
|
||||
border-color: var(--danger);
|
||||
border-left-color: var(--danger);
|
||||
}
|
||||
|
||||
.alert-box.success {
|
||||
background-color: rgba(63, 185, 80, 0.1);
|
||||
border-color: var(--success);
|
||||
border-left-color: var(--success);
|
||||
}
|
||||
|
||||
.alert-title {
|
||||
font-weight: 600;
|
||||
margin-bottom: 8px;
|
||||
font-size: 15px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.alert-content {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.section {
|
||||
background-color: var(--bg-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
padding: 24px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.section-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 24px;
|
||||
padding-bottom: 16px;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.timeline-horizontal {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 32px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.timeline-horizontal::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 2px;
|
||||
background: var(--border-color);
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.timeline-step {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.timeline-circle {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
background: var(--bg-tertiary);
|
||||
border: 2px solid var(--border-color);
|
||||
margin: 0 auto 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: 700;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.timeline-step.completed .timeline-circle {
|
||||
background: var(--success);
|
||||
border-color: var(--success);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.timeline-step.active .timeline-circle {
|
||||
background: var(--warning);
|
||||
border-color: var(--warning);
|
||||
color: white;
|
||||
animation: pulse 2s infinite;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0%, 100% { box-shadow: 0 0 0 0 rgba(210, 153, 34, 0.7); }
|
||||
50% { box-shadow: 0 0 0 10px rgba(210, 153, 34, 0); }
|
||||
}
|
||||
|
||||
.timeline-label {
|
||||
font-size: 12px;
|
||||
color: var(--text-secondary);
|
||||
font-weight: 600;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.timeline-deadline {
|
||||
font-size: 11px;
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.timeline-step.completed .timeline-label,
|
||||
.timeline-step.active .timeline-label {
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.form-section {
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
padding: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.form-label {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.form-input, .form-select, .form-textarea {
|
||||
width: 100%;
|
||||
padding: 10px 12px;
|
||||
background-color: var(--bg-primary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
color: var(--text-primary);
|
||||
font-size: 14px;
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
.form-input:focus, .form-select:focus, .form-textarea:focus {
|
||||
outline: none;
|
||||
border-color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.form-textarea {
|
||||
resize: vertical;
|
||||
min-height: 120px;
|
||||
}
|
||||
|
||||
.form-help {
|
||||
font-size: 12px;
|
||||
color: var(--text-secondary);
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.info-box {
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
padding: 16px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.info-box-title {
|
||||
font-weight: 600;
|
||||
color: var(--accent-primary);
|
||||
margin-bottom: 8px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.info-box-content {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.data-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.data-table th {
|
||||
background-color: var(--bg-primary);
|
||||
color: var(--text-secondary);
|
||||
font-weight: 600;
|
||||
text-align: left;
|
||||
padding: 10px 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.data-table td {
|
||||
padding: 10px 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.timeline-horizontal {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.timeline-horizontal::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.timeline-step {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
margin-bottom: 16px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.timeline-circle {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="header-content">
|
||||
<div>
|
||||
<h1>📡 Notifiche CSIRT Italia - INC-2024-047</h1>
|
||||
<div class="breadcrumb">
|
||||
<a href="dashboard.html">Dashboard NIS2</a> /
|
||||
<a href="incident-dashboard.html">Gestione Incidenti</a> /
|
||||
<a href="incident-detail.html?id=INC-2024-047">INC-2024-047</a> /
|
||||
Notifiche CSIRT
|
||||
</div>
|
||||
</div>
|
||||
<a href="incident-detail.html?id=INC-2024-047" class="btn">← Torna all'Incidente</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<!-- Alert Scadenza -->
|
||||
<div class="alert-box danger">
|
||||
<div class="alert-title">
|
||||
⏰ Scadenza Imminente - Preallarme CSIRT
|
||||
</div>
|
||||
<div class="alert-content">
|
||||
Il <strong>preallarme</strong> deve essere inviato al CSIRT Italia entro <strong>24 ore</strong> dalla conoscenza dell'incidente significativo.<br>
|
||||
<strong>Scadenza:</strong> 2024-03-07 08:15 (rimangono <span style="color: var(--danger); font-weight: 700;">18 ore</span>)<br>
|
||||
<strong>Canale:</strong> Portale CSIRT Italia (https://www.csirt.gov.it) o PEC dedicata
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Timeline Notifiche -->
|
||||
<div class="timeline-horizontal">
|
||||
<div class="timeline-step active">
|
||||
<div class="timeline-circle">1</div>
|
||||
<div class="timeline-label">Preallarme</div>
|
||||
<div class="timeline-deadline">Entro 24h</div>
|
||||
</div>
|
||||
<div class="timeline-step">
|
||||
<div class="timeline-circle">2</div>
|
||||
<div class="timeline-label">Notifica Completa</div>
|
||||
<div class="timeline-deadline">Entro 72h</div>
|
||||
</div>
|
||||
<div class="timeline-step">
|
||||
<div class="timeline-circle">3</div>
|
||||
<div class="timeline-label">Relazioni Intermedie</div>
|
||||
<div class="timeline-deadline">Su richiesta</div>
|
||||
</div>
|
||||
<div class="timeline-step">
|
||||
<div class="timeline-circle">4</div>
|
||||
<div class="timeline-label">Relazione Finale</div>
|
||||
<div class="timeline-deadline">Entro 1 mese</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Sezione Preallarme -->
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="section-title">1. Preallarme (Entro 24 ore)</div>
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">📋 Contenuto Minimo Preallarme</div>
|
||||
<div class="info-box-content">
|
||||
<ul style="margin-left: 20px; margin-top: 8px;">
|
||||
<li>Se l'incidente è presumibilmente causato da atti illegittimi o malevoli</li>
|
||||
<li>Se può avere impatto transfrontaliero</li>
|
||||
<li>Descrizione preliminare dell'incidente</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form id="prealertForm">
|
||||
<div class="form-section">
|
||||
<h3 style="font-size: 16px; font-weight: 600; margin-bottom: 16px;">Dati Incidente</h3>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Codice Incidente</label>
|
||||
<input type="text" class="form-input" value="INC-2024-047" readonly>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Data/Ora Rilevazione</label>
|
||||
<input type="text" class="form-input" value="2024-03-06 08:15" readonly>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Classificazione NIS2</label>
|
||||
<input type="text" class="form-input" value="IS-2 - Impatto su integrità/riservatezza dati" readonly>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-section">
|
||||
<h3 style="font-size: 16px; font-weight: 600; margin-bottom: 16px;">Informazioni Preallarme</h3>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Atti Illegittimi o Malevoli?</label>
|
||||
<select class="form-select" required>
|
||||
<option value="yes" selected>Sì - Attacco ransomware</option>
|
||||
<option value="no">No</option>
|
||||
<option value="unknown">Da determinare</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Impatto Transfrontaliero?</label>
|
||||
<select class="form-select" required>
|
||||
<option value="no" selected>No</option>
|
||||
<option value="yes">Sì</option>
|
||||
<option value="possible">Possibile</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Descrizione Preliminare Incidente</label>
|
||||
<textarea class="form-textarea" required>Tentativo di attacco ransomware (famiglia BlackCat/ALPHV) rilevato su server ERP di produzione. L'EDR ha bloccato l'esecuzione del malware in fase iniziale. Il vettore di attacco è stato identificato come email phishing con allegato malevolo, sfruttando credenziali utente precedentemente compromesse. Il sistema è stato immediatamente isolato. Nessuna crittografia dati avvenuta. Nessuna esfiltrazione rilevata. Incidente contenuto con successo.</textarea>
|
||||
<div class="form-help">Fornire una descrizione sintetica ma completa dell'incidente</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Sistemi/Servizi Impattati</label>
|
||||
<textarea class="form-textarea">- Server ERP-PROD-01 (HW-SRV-001)
|
||||
- Applicazione SAP ERP (SW-ERP-001)
|
||||
- Servizio gestionale aziendale (SRV-ERP-001)
|
||||
- 45 utenti interni impattati da interruzione servizio</textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Azioni di Contenimento Adottate</label>
|
||||
<textarea class="form-textarea">- Isolamento immediato server dalla rete (08:22)
|
||||
- Blocco account utente compromesso (09:30)
|
||||
- Blocco IP C2 su firewall (09:45)
|
||||
- Preservazione evidenze forensi (08:35)
|
||||
- Attivazione Crisis Team e CISO (08:25)
|
||||
- Contenimento confermato entro 2.2 ore dalla rilevazione</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-section">
|
||||
<h3 style="font-size: 16px; font-weight: 600; margin-bottom: 16px;">Dati Organizzazione</h3>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Nome Organizzazione</label>
|
||||
<input type="text" class="form-input" value="[Nome Azienda]" required>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Settore NIS2</label>
|
||||
<select class="form-select" required>
|
||||
<option value="">Seleziona settore...</option>
|
||||
<option value="energia">Energia</option>
|
||||
<option value="trasporti">Trasporti</option>
|
||||
<option value="bancario">Bancario</option>
|
||||
<option value="sanitario">Sanitario</option>
|
||||
<option value="digitale" selected>Infrastrutture Digitali</option>
|
||||
<option value="acqua">Acqua Potabile</option>
|
||||
<option value="altro">Altro</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Referente Tecnico</label>
|
||||
<input type="text" class="form-input" value="CISO - P. Lombardi" required>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Email Contatto</label>
|
||||
<input type="email" class="form-input" value="ciso@azienda.it" required>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">Telefono Contatto</label>
|
||||
<input type="tel" class="form-input" value="+39 02 1234567" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="display: flex; gap: 12px; justify-content: flex-end; padding-top: 24px; border-top: 1px solid var(--border-color);">
|
||||
<button type="button" class="btn" onclick="savePrealertDraft()">Salva Bozza</button>
|
||||
<button type="button" class="btn btn-primary" onclick="previewPrealert()">Anteprima</button>
|
||||
<button type="submit" class="btn btn-danger">📡 Invia Preallarme CSIRT</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- Sezione Notifica Completa -->
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="section-title">2. Notifica Completa (Entro 72 ore)</div>
|
||||
</div>
|
||||
|
||||
<div class="alert-box">
|
||||
<div class="alert-title">⏸️ In Attesa Invio Preallarme</div>
|
||||
<div class="alert-content">
|
||||
La notifica completa può essere compilata dopo l'invio del preallarme.<br>
|
||||
<strong>Scadenza:</strong> 2024-03-09 08:15 (72 ore dalla rilevazione)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">📋 Contenuto Notifica Completa</div>
|
||||
<div class="info-box-content">
|
||||
<ul style="margin-left: 20px; margin-top: 8px;">
|
||||
<li>Aggiornamento informazioni del preallarme</li>
|
||||
<li>Valutazione iniziale dell'incidente</li>
|
||||
<li>Gravità e impatto dettagliato</li>
|
||||
<li>Indicatori di compromissione (IoC) se disponibili</li>
|
||||
<li>Misure di contenimento adottate</li>
|
||||
<li>Stato corrente della gestione</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn" disabled style="opacity: 0.5;">Compila Notifica Completa (disponibile dopo preallarme)</button>
|
||||
</div>
|
||||
|
||||
<!-- Sezione Relazione Finale -->
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="section-title">4. Relazione Finale (Entro 1 mese)</div>
|
||||
</div>
|
||||
|
||||
<div class="alert-box">
|
||||
<div class="alert-title">⏸️ In Attesa Chiusura Incidente</div>
|
||||
<div class="alert-content">
|
||||
La relazione finale deve essere inviata entro 1 mese dalla notifica completa,
|
||||
o entro 1 mese dalla gestione completa dell'incidente se ancora in corso.<br>
|
||||
<strong>Scadenza stimata:</strong> 2024-04-09
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<div class="info-box-title">📋 Contenuto Relazione Finale</div>
|
||||
<div class="info-box-content">
|
||||
<ul style="margin-left: 20px; margin-top: 8px;">
|
||||
<li>Descrizione dettagliata dell'incidente</li>
|
||||
<li>Causa radice (root cause) identificata o probabile</li>
|
||||
<li>Misure di mitigazione applicate</li>
|
||||
<li>Impatto transfrontaliero (se applicabile)</li>
|
||||
<li>Tipo di minaccia o causa radice</li>
|
||||
<li>Misure correttive in corso e pianificate</li>
|
||||
<li>Lesson learned e raccomandazioni</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn" disabled style="opacity: 0.5;">Compila Relazione Finale (disponibile dopo chiusura incidente)</button>
|
||||
</div>
|
||||
|
||||
<!-- Storico Comunicazioni -->
|
||||
<div class="section">
|
||||
<div class="section-header">
|
||||
<div class="section-title">Storico Comunicazioni CSIRT</div>
|
||||
</div>
|
||||
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Data/Ora</th>
|
||||
<th>Tipo Comunicazione</th>
|
||||
<th>Canale</th>
|
||||
<th>Protocollo/Riferimento</th>
|
||||
<th>Stato</th>
|
||||
<th>Azioni</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="6" style="text-align: center; color: var(--text-secondary); padding: 24px;">
|
||||
Nessuna comunicazione inviata ancora
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function savePrealertDraft() {
|
||||
alert('Bozza preallarme salvata con successo. Puoi continuare la compilazione in seguito.');
|
||||
}
|
||||
|
||||
function previewPrealert() {
|
||||
const tooltip = document.createElement('div');
|
||||
tooltip.style.cssText = `
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 8px;
|
||||
padding: 24px;
|
||||
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
|
||||
z-index: 10000;
|
||||
max-width: 700px;
|
||||
width: 90%;
|
||||
max-height: 80vh;
|
||||
overflow-y: auto;
|
||||
`;
|
||||
tooltip.innerHTML = `
|
||||
<h3 style="margin-bottom: 16px; color: var(--text-primary);">📄 Anteprima Preallarme CSIRT Italia</h3>
|
||||
<div style="background: var(--bg-tertiary); padding: 20px; border-radius: 6px; margin-bottom: 16px; font-size: 13px; line-height: 1.8; font-family: monospace;">
|
||||
<strong>PREALLARME INCIDENTE SIGNIFICATIVO NIS2</strong><br>
|
||||
<strong>Protocollo:</strong> [Generato automaticamente]<br>
|
||||
<strong>Data invio:</strong> ${new Date().toLocaleString('it-IT')}<br>
|
||||
<br>
|
||||
<strong>ORGANIZZAZIONE:</strong> [Nome Azienda]<br>
|
||||
<strong>Settore:</strong> Infrastrutture Digitali<br>
|
||||
<strong>Tipologia soggetto:</strong> ${sessionStorage.getItem('nis2_subject_type') === 'essential' ? 'Essenziale' : 'Importante'}<br>
|
||||
<br>
|
||||
<strong>CODICE INCIDENTE:</strong> INC-2024-047<br>
|
||||
<strong>Data/Ora rilevazione:</strong> 2024-03-06 08:15<br>
|
||||
<strong>Classificazione:</strong> IS-2 (Impatto integrità/riservatezza dati)<br>
|
||||
<br>
|
||||
<strong>NATURA INCIDENTE:</strong><br>
|
||||
☑ Atti illegittimi o malevoli: SÌ (Attacco ransomware)<br>
|
||||
☐ Impatto transfrontaliero: NO<br>
|
||||
<br>
|
||||
<strong>DESCRIZIONE PRELIMINARE:</strong><br>
|
||||
Tentativo di attacco ransomware (famiglia BlackCat/ALPHV) rilevato su server ERP di produzione.
|
||||
L'EDR ha bloccato l'esecuzione del malware in fase iniziale. Il vettore di attacco è stato identificato
|
||||
come email phishing con allegato malevolo, sfruttando credenziali utente precedentemente compromesse.
|
||||
Il sistema è stato immediatamente isolato. Nessuna crittografia dati avvenuta. Nessuna esfiltrazione rilevata.
|
||||
Incidente contenuto con successo.<br>
|
||||
<br>
|
||||
<strong>SISTEMI IMPATTATI:</strong><br>
|
||||
- Server ERP-PROD-01<br>
|
||||
- Applicazione SAP ERP<br>
|
||||
- 45 utenti interni<br>
|
||||
<br>
|
||||
<strong>AZIONI CONTENIMENTO:</strong><br>
|
||||
- Isolamento server (2.2h)<br>
|
||||
- Blocco account compromesso<br>
|
||||
- Blocco IP C2<br>
|
||||
- Evidenze preservate<br>
|
||||
<br>
|
||||
<strong>REFERENTE:</strong> CISO - P. Lombardi<br>
|
||||
<strong>Contatto:</strong> ciso@azienda.it / +39 02 1234567<br>
|
||||
<br>
|
||||
<em>Notifica completa seguirà entro 72 ore.</em>
|
||||
</div>
|
||||
<div style="display: flex; gap: 12px;">
|
||||
<button onclick="this.parentElement.parentElement.remove()" style="flex: 1; padding: 10px; background: var(--bg-tertiary); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-primary); font-weight: 600; cursor: pointer;">
|
||||
Chiudi
|
||||
</button>
|
||||
<button onclick="this.parentElement.parentElement.remove(); document.getElementById('prealertForm').dispatchEvent(new Event('submit'));" style="flex: 1; padding: 10px; background: var(--danger); border: none; border-radius: 6px; color: white; font-weight: 600; cursor: pointer;">
|
||||
Conferma e Invia
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
document.body.appendChild(tooltip);
|
||||
}
|
||||
|
||||
document.getElementById('prealertForm').addEventListener('submit', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
const tooltip = document.createElement('div');
|
||||
tooltip.style.cssText = `
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background: var(--bg-secondary);
|
||||
border: 2px solid var(--success);
|
||||
border-radius: 8px;
|
||||
padding: 32px;
|
||||
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
|
||||
z-index: 10000;
|
||||
max-width: 500px;
|
||||
text-align: center;
|
||||
`;
|
||||
tooltip.innerHTML = `
|
||||
<div style="font-size: 48px; margin-bottom: 16px;">✅</div>
|
||||
<h2 style="color: var(--success); margin-bottom: 16px;">Preallarme Inviato con Successo</h2>
|
||||
<p style="color: var(--text-secondary); margin-bottom: 8px;">Protocollo CSIRT:</p>
|
||||
<p style="font-size: 20px; font-weight: 700; color: var(--text-primary); margin-bottom: 24px; font-family: monospace;">CSIRT-2024-03-06-${Math.floor(Math.random() * 10000)}</p>
|
||||
<div style="background: var(--bg-tertiary); padding: 16px; border-radius: 6px; margin-bottom: 24px; text-align: left;">
|
||||
<p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;"><strong>Dettagli invio:</strong></p>
|
||||
<ul style="font-size: 13px; color: var(--text-secondary); margin-left: 20px;">
|
||||
<li>Data/Ora invio: ${new Date().toLocaleString('it-IT')}</li>
|
||||
<li>Canale: Portale CSIRT Italia</li>
|
||||
<li>Ricevuta PEC: Confermata</li>
|
||||
<li>Scadenza rispettata: ✅ SÌ (entro 24h)</li>
|
||||
</ul>
|
||||
<p style="font-size: 13px; color: var(--text-secondary); margin-top: 12px;">
|
||||
<strong>Prossimo step:</strong> Notifica completa entro 2024-03-09 08:15 (72h)
|
||||
</p>
|
||||
</div>
|
||||
<button onclick="window.location.href='incident-detail.html?id=INC-2024-047'" style="padding: 12px 24px; background: var(--accent-primary); border: none; border-radius: 6px; color: white; font-weight: 600; cursor: pointer;">
|
||||
Torna all'Incidente
|
||||
</button>
|
||||
`;
|
||||
document.body.appendChild(tooltip);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,803 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="it">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Post-Incident Review - INC-2024-047</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg-primary: #0d1117;
|
||||
--bg-secondary: #161b22;
|
||||
--bg-tertiary: #1c2128;
|
||||
--border-color: #30363d;
|
||||
--text-primary: #c9d1d9;
|
||||
--text-secondary: #8b949e;
|
||||
--accent-primary: #58a6ff;
|
||||
--success: #3fb950;
|
||||
--warning: #d29922;
|
||||
--danger: #f85149;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
|
||||
background-color: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
line-height: 1.6;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: var(--bg-secondary);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
padding: 24px 0;
|
||||
margin-bottom: 32px;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.header-content {
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
padding: 0 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.breadcrumb a {
|
||||
color: var(--accent-primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn {
|
||||
padding: 8px 16px;
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
border-color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: var(--accent-primary);
|
||||
border-color: var(--accent-primary);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: #1f6feb;
|
||||
}
|
||||
|
||||
.alert-box {
|
||||
background-color: rgba(88, 166, 255, 0.1);
|
||||
border: 1px solid var(--accent-primary);
|
||||
border-left: 4px solid var(--accent-primary);
|
||||
border-radius: 6px;
|
||||
padding: 20px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.alert-title {
|
||||
font-weight: 600;
|
||||
margin-bottom: 8px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.alert-content {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.section {
|
||||
background-color: var(--bg-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
padding: 24px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 12px;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.metrics-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: 16px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.metric-card {
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
padding: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.metric-label {
|
||||
font-size: 11px;
|
||||
color: var(--text-secondary);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.metric-value {
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.metric-value.success {
|
||||
color: var(--success);
|
||||
}
|
||||
|
||||
.metric-value.warning {
|
||||
color: var(--warning);
|
||||
}
|
||||
|
||||
.form-group {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.form-label {
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.form-textarea {
|
||||
width: 100%;
|
||||
padding: 12px;
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
color: var(--text-primary);
|
||||
font-size: 14px;
|
||||
font-family: inherit;
|
||||
resize: vertical;
|
||||
min-height: 100px;
|
||||
}
|
||||
|
||||
.form-textarea:focus {
|
||||
outline: none;
|
||||
border-color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.data-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.data-table th {
|
||||
background-color: var(--bg-tertiary);
|
||||
color: var(--text-secondary);
|
||||
font-weight: 600;
|
||||
text-align: left;
|
||||
padding: 10px 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.data-table td {
|
||||
padding: 10px 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.priority-high {
|
||||
color: var(--danger);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.priority-medium {
|
||||
color: var(--warning);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.priority-low {
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.status-badge {
|
||||
display: inline-block;
|
||||
padding: 4px 8px;
|
||||
border-radius: 3px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.status-planned {
|
||||
background-color: rgba(88, 166, 255, 0.2);
|
||||
color: var(--accent-primary);
|
||||
border: 1px solid var(--accent-primary);
|
||||
}
|
||||
|
||||
.status-progress {
|
||||
background-color: rgba(210, 153, 34, 0.2);
|
||||
color: var(--warning);
|
||||
border: 1px solid var(--warning);
|
||||
}
|
||||
|
||||
.status-completed {
|
||||
background-color: rgba(63, 185, 80, 0.2);
|
||||
color: var(--success);
|
||||
border: 1px solid var(--success);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="header-content">
|
||||
<div>
|
||||
<h1>📊 Post-Incident Review - INC-2024-047</h1>
|
||||
<div class="breadcrumb">
|
||||
<a href="dashboard.html">Dashboard NIS2</a> /
|
||||
<a href="incident-dashboard.html">Gestione Incidenti</a> /
|
||||
<a href="incident-detail.html?id=INC-2024-047">INC-2024-047</a> /
|
||||
Post-Incident Review
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex; gap: 8px;">
|
||||
<button class="btn" onclick="exportPIR()">📄 Esporta Report</button>
|
||||
<a href="incident-detail.html?id=INC-2024-047" class="btn">← Torna all'Incidente</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="alert-box">
|
||||
<div class="alert-title">ℹ️ Post-Incident Review (RC.CO-03)</div>
|
||||
<div class="alert-content">
|
||||
Analisi completa dell'incidente per identificare lesson learned e azioni di miglioramento.
|
||||
Da completare entro <strong>2 settimane dalla chiusura</strong> per incidenti SEV-1/SEV-2.
|
||||
<br><br>
|
||||
<strong>Partecipanti richiesti:</strong> Incident Response Team, CISO, Responsabili Divisione impattate, Direzione (per SEV-1)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Metriche Incidente -->
|
||||
<div class="section">
|
||||
<div class="section-title">Metriche Incidente</div>
|
||||
|
||||
<div class="metrics-grid">
|
||||
<div class="metric-card">
|
||||
<div class="metric-label">TTD (Time to Detect)</div>
|
||||
<div class="metric-value success">0.5h</div>
|
||||
<div style="font-size: 11px; color: var(--text-secondary); margin-top: 4px;">Target: <2h ✅</div>
|
||||
</div>
|
||||
<div class="metric-card">
|
||||
<div class="metric-label">TTC (Time to Contain)</div>
|
||||
<div class="metric-value success">2.2h</div>
|
||||
<div style="font-size: 11px; color: var(--text-secondary); margin-top: 4px;">Target SEV-1: <1h ⚠️</div>
|
||||
</div>
|
||||
<div class="metric-card">
|
||||
<div class="metric-label">TTR (Time to Recover)</div>
|
||||
<div class="metric-value success">30.25h</div>
|
||||
<div style="font-size: 11px; color: var(--text-secondary); margin-top: 4px;">RTO: ≤48h ✅</div>
|
||||
</div>
|
||||
<div class="metric-card">
|
||||
<div class="metric-label">Downtime Totale</div>
|
||||
<div class="metric-value warning">30h 15m</div>
|
||||
<div style="font-size: 11px; color: var(--text-secondary); margin-top: 4px;">45 utenti impattati</div>
|
||||
</div>
|
||||
<div class="metric-card">
|
||||
<div class="metric-label">Costo Stimato</div>
|
||||
<div class="metric-value">€12.5K</div>
|
||||
<div style="font-size: 11px; color: var(--text-secondary); margin-top: 4px;">Diretto + indiretto</div>
|
||||
</div>
|
||||
<div class="metric-card">
|
||||
<div class="metric-label">Conformità Notifiche</div>
|
||||
<div class="metric-value success">100%</div>
|
||||
<div style="font-size: 11px; color: var(--text-secondary); margin-top: 4px;">CSIRT entro 24h ✅</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Root Cause Analysis -->
|
||||
<div class="section">
|
||||
<div class="section-title">Root Cause Analysis (5 Whys)</div>
|
||||
|
||||
<div style="background: var(--bg-tertiary); padding: 20px; border-radius: 6px; margin-bottom: 20px;">
|
||||
<div style="margin-bottom: 16px;">
|
||||
<strong style="color: var(--accent-primary);">Problema:</strong> Tentativo di attacco ransomware su server ERP
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 12px;">
|
||||
<strong style="color: var(--text-primary);">1. Perché è successo?</strong><br>
|
||||
<span style="color: var(--text-secondary);">→ Perché un utente ha aperto un allegato malevolo da email phishing</span>
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 12px;">
|
||||
<strong style="color: var(--text-primary);">2. Perché l'utente ha aperto l'allegato?</strong><br>
|
||||
<span style="color: var(--text-secondary);">→ Perché l'email sembrava legittima (spoofing fornitore) e l'utente non ha riconosciuto i segnali di phishing</span>
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 12px;">
|
||||
<strong style="color: var(--text-primary);">3. Perché l'utente non ha riconosciuto il phishing?</strong><br>
|
||||
<span style="color: var(--text-secondary);">→ Perché la formazione awareness sulla sicurezza non era sufficientemente frequente e pratica</span>
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 12px;">
|
||||
<strong style="color: var(--text-primary);">4. Perché le credenziali dell'utente erano già compromesse?</strong><br>
|
||||
<span style="color: var(--text-secondary);">→ Perché l'utente utilizzava la stessa password su servizi esterni (credential stuffing attack non rilevato)</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<strong style="color: var(--text-primary);">5. Perché non c'era MFA obbligatoria su account amministrativi?</strong><br>
|
||||
<span style="color: var(--text-secondary);">→ Perché la policy MFA era in fase di rollout graduale e non ancora applicata a tutti gli account admin</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="background: var(--bg-tertiary); padding: 16px; border-radius: 6px; border-left: 4px solid var(--danger);">
|
||||
<strong style="color: var(--danger);">ROOT CAUSE IDENTIFICATA:</strong><br>
|
||||
<span style="color: var(--text-secondary); font-size: 13px;">
|
||||
1. MFA non obbligatoria su tutti gli account amministrativi<br>
|
||||
2. Formazione awareness non sufficientemente efficace<br>
|
||||
3. Monitoraggio credential stuffing non attivo<br>
|
||||
4. Policy password debole (riutilizzo su servizi esterni)
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Valutazione Efficacia -->
|
||||
<div class="section">
|
||||
<div class="section-title">Valutazione Efficacia Risposta</div>
|
||||
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Fase</th>
|
||||
<th>Valutazione</th>
|
||||
<th>Punti di Forza</th>
|
||||
<th>Aree di Miglioramento</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Rilevazione</strong></td>
|
||||
<td><span style="color: var(--success); font-weight: 600;">✅ Eccellente</span></td>
|
||||
<td>EDR ha bloccato immediatamente il malware. TTD: 0.5h</td>
|
||||
<td>Nessuna - detection efficace</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Triage</strong></td>
|
||||
<td><span style="color: var(--success); font-weight: 600;">✅ Buono</span></td>
|
||||
<td>Classificazione corretta entro 1h. Crisis Team attivato tempestivamente</td>
|
||||
<td>Processo decisionale può essere ulteriormente accelerato</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Contenimento</strong></td>
|
||||
<td><span style="color: var(--warning); font-weight: 600;">⚠️ Sufficiente</span></td>
|
||||
<td>Isolamento rapido. Nessuna propagazione</td>
|
||||
<td>TTC 2.2h > target 1h per SEV-1. Procedure di isolamento da ottimizzare</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Eradicazione</strong></td>
|
||||
<td><span style="color: var(--success); font-weight: 600;">✅ Buono</span></td>
|
||||
<td>Rimozione completa minaccia. Hardening applicato</td>
|
||||
<td>Analisi forense richiede più tempo del previsto</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Ripristino</strong></td>
|
||||
<td><span style="color: var(--success); font-weight: 600;">✅ Buono</span></td>
|
||||
<td>TTR 30.25h < RTO 48h. Backup immutabile efficace</td>
|
||||
<td>Processo di verifica post-ripristino può essere standardizzato</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Comunicazioni</strong></td>
|
||||
<td><span style="color: var(--success); font-weight: 600;">✅ Eccellente</span></td>
|
||||
<td>Preallarme CSIRT entro 24h. Comunicazioni interne tempestive</td>
|
||||
<td>Template comunicazioni possono essere pre-compilati</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Gap Identificati -->
|
||||
<div class="section">
|
||||
<div class="section-title">Gap Identificati</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">1. GAP TECNICI</label>
|
||||
<textarea class="form-textarea" readonly>• MFA non obbligatoria su tutti gli account amministrativi
|
||||
• Monitoraggio credential stuffing assente
|
||||
• Filtri email anti-phishing non sufficientemente efficaci
|
||||
• Procedure di isolamento automatico non implementate
|
||||
• Tempo di contenimento superiore al target per SEV-1</textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">2. GAP PROCEDURALI</label>
|
||||
<textarea class="form-textarea" readonly>• Policy MFA in rollout graduale (non completata)
|
||||
• Procedura di isolamento rapido non documentata
|
||||
• Checklist contenimento SEV-1 non disponibile in formato rapido
|
||||
• Processo di escalation Crisis Team può essere ottimizzato
|
||||
• Template comunicazioni non pre-compilati</textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">3. GAP ORGANIZZATIVI</label>
|
||||
<textarea class="form-textarea" readonly>• Formazione awareness non sufficientemente frequente
|
||||
• Simulazioni phishing non regolari
|
||||
• Policy password debole (riutilizzo su servizi esterni non vietato esplicitamente)
|
||||
• Competenze forensics interne limitate (dipendenza da consulenti esterni)</textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">4. GAP FORMATIVI</label>
|
||||
<textarea class="form-textarea" readonly>• Utenti non addestrati a riconoscere phishing avanzato
|
||||
• Account amministrativi senza formazione specifica su minacce mirate
|
||||
• Awareness su riutilizzo password insufficiente
|
||||
• Esercitazioni tabletop incident response non regolari</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Azioni Correttive -->
|
||||
<div class="section">
|
||||
<div class="section-title">Piano Azioni Correttive</div>
|
||||
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Azione Correttiva</th>
|
||||
<th>Categoria</th>
|
||||
<th>Priorità</th>
|
||||
<th>Responsabile</th>
|
||||
<th>Scadenza</th>
|
||||
<th>Org. Rif.</th>
|
||||
<th>Stato</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>AC-001</strong></td>
|
||||
<td>Implementare MFA obbligatoria su TUTTI gli account amministrativi</td>
|
||||
<td>Tecnica</td>
|
||||
<td><span class="priority-high">ALTA</span></td>
|
||||
<td>IT Manager</td>
|
||||
<td>2024-03-20</td>
|
||||
<td>Org.03</td>
|
||||
<td><span class="status-badge status-progress">In corso</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-002</strong></td>
|
||||
<td>Implementare monitoraggio credential stuffing su SIEM</td>
|
||||
<td>Tecnica</td>
|
||||
<td><span class="priority-high">ALTA</span></td>
|
||||
<td>SOC Lead</td>
|
||||
<td>2024-03-25</td>
|
||||
<td>Org.09</td>
|
||||
<td><span class="status-badge status-planned">Pianificata</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-003</strong></td>
|
||||
<td>Rafforzare filtri anti-phishing email gateway</td>
|
||||
<td>Tecnica</td>
|
||||
<td><span class="priority-high">ALTA</span></td>
|
||||
<td>IT Security</td>
|
||||
<td>2024-03-15</td>
|
||||
<td>Org.08</td>
|
||||
<td><span class="status-badge status-progress">In corso</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-004</strong></td>
|
||||
<td>Implementare isolamento automatico endpoint compromessi</td>
|
||||
<td>Tecnica</td>
|
||||
<td><span class="priority-medium">MEDIA</span></td>
|
||||
<td>IT Security</td>
|
||||
<td>2024-04-15</td>
|
||||
<td>Org.08</td>
|
||||
<td><span class="status-badge status-planned">Pianificata</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-005</strong></td>
|
||||
<td>Aggiornare policy password (vietare riutilizzo su servizi esterni)</td>
|
||||
<td>Procedurale</td>
|
||||
<td><span class="priority-high">ALTA</span></td>
|
||||
<td>CISO</td>
|
||||
<td>2024-03-10</td>
|
||||
<td>Org.03</td>
|
||||
<td><span class="status-badge status-progress">In corso</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-006</strong></td>
|
||||
<td>Creare checklist rapida contenimento SEV-1</td>
|
||||
<td>Procedurale</td>
|
||||
<td><span class="priority-medium">MEDIA</span></td>
|
||||
<td>CISO</td>
|
||||
<td>2024-03-15</td>
|
||||
<td>Org.10</td>
|
||||
<td><span class="status-badge status-planned">Pianificata</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-007</strong></td>
|
||||
<td>Preparare template comunicazioni pre-compilati</td>
|
||||
<td>Procedurale</td>
|
||||
<td><span class="priority-low">BASSA</span></td>
|
||||
<td>CISO</td>
|
||||
<td>2024-04-30</td>
|
||||
<td>Org.10</td>
|
||||
<td><span class="status-badge status-planned">Pianificata</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-008</strong></td>
|
||||
<td>Aumentare frequenza formazione awareness (mensile)</td>
|
||||
<td>Formativa</td>
|
||||
<td><span class="priority-high">ALTA</span></td>
|
||||
<td>HR + CISO</td>
|
||||
<td>2024-04-01</td>
|
||||
<td>Org.04</td>
|
||||
<td><span class="status-badge status-planned">Pianificata</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-009</strong></td>
|
||||
<td>Implementare simulazioni phishing trimestrali</td>
|
||||
<td>Formativa</td>
|
||||
<td><span class="priority-medium">MEDIA</span></td>
|
||||
<td>CISO</td>
|
||||
<td>2024-04-15</td>
|
||||
<td>Org.04</td>
|
||||
<td><span class="status-badge status-planned">Pianificata</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-010</strong></td>
|
||||
<td>Formazione specifica account amministrativi su minacce mirate</td>
|
||||
<td>Formativa</td>
|
||||
<td><span class="priority-medium">MEDIA</span></td>
|
||||
<td>CISO</td>
|
||||
<td>2024-03-30</td>
|
||||
<td>Org.04</td>
|
||||
<td><span class="status-badge status-planned">Pianificata</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-011</strong></td>
|
||||
<td>Aggiornare risk assessment con nuovo scenario ransomware</td>
|
||||
<td>Organizzativa</td>
|
||||
<td><span class="priority-high">ALTA</span></td>
|
||||
<td>CISO</td>
|
||||
<td>2024-03-20</td>
|
||||
<td>Org.05</td>
|
||||
<td><span class="status-badge status-planned">Pianificata</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>AC-012</strong></td>
|
||||
<td>Pianificare esercitazione tabletop ransomware</td>
|
||||
<td>Organizzativa</td>
|
||||
<td><span class="priority-medium">MEDIA</span></td>
|
||||
<td>CISO</td>
|
||||
<td>2024-05-31</td>
|
||||
<td>Org.08</td>
|
||||
<td><span class="status-badge status-planned">Pianificata</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div style="margin-top: 24px; padding: 16px; background: var(--bg-tertiary); border-radius: 6px;">
|
||||
<strong style="color: var(--text-primary);">Riepilogo Azioni:</strong><br>
|
||||
<div style="display: flex; gap: 24px; margin-top: 12px; font-size: 13px;">
|
||||
<div>
|
||||
<span style="color: var(--text-secondary);">Totali:</span>
|
||||
<strong style="color: var(--text-primary);"> 12</strong>
|
||||
</div>
|
||||
<div>
|
||||
<span style="color: var(--text-secondary);">Alta priorità:</span>
|
||||
<strong style="color: var(--danger);"> 6</strong>
|
||||
</div>
|
||||
<div>
|
||||
<span style="color: var(--text-secondary);">Media priorità:</span>
|
||||
<strong style="color: var(--warning);"> 5</strong>
|
||||
</div>
|
||||
<div>
|
||||
<span style="color: var(--text-secondary);">Bassa priorità:</span>
|
||||
<strong style="color: var(--text-secondary);"> 1</strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Raccomandazioni -->
|
||||
<div class="section">
|
||||
<div class="section-title">Raccomandazioni e Lesson Learned</div>
|
||||
|
||||
<div style="background: var(--bg-tertiary); padding: 20px; border-radius: 6px; margin-bottom: 16px;">
|
||||
<h4 style="font-size: 14px; font-weight: 600; color: var(--success); margin-bottom: 12px;">
|
||||
✅ COSA HA FUNZIONATO BENE
|
||||
</h4>
|
||||
<ul style="font-size: 13px; color: var(--text-secondary); line-height: 1.8; margin-left: 20px;">
|
||||
<li>EDR ha bloccato immediatamente il ransomware prima della crittografia</li>
|
||||
<li>Backup immutabile ha permesso ripristino rapido e sicuro</li>
|
||||
<li>Crisis Team ha risposto prontamente e in modo coordinato</li>
|
||||
<li>Comunicazioni CSIRT rispettate nei tempi (preallarme entro 24h)</li>
|
||||
<li>Nessuna propagazione dell'attacco ad altri sistemi</li>
|
||||
<li>Preservazione evidenze forensi efficace</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div style="background: var(--bg-tertiary); padding: 20px; border-radius: 6px; margin-bottom: 16px;">
|
||||
<h4 style="font-size: 14px; font-weight: 600; color: var(--warning); margin-bottom: 12px;">
|
||||
⚠️ COSA MIGLIORARE
|
||||
</h4>
|
||||
<ul style="font-size: 13px; color: var(--text-secondary); line-height: 1.8; margin-left: 20px;">
|
||||
<li>Tempo di contenimento (2.2h) superiore al target per SEV-1 (<1h)</li>
|
||||
<li>MFA non era obbligatoria su account amministrativi</li>
|
||||
<li>Formazione awareness non sufficientemente efficace</li>
|
||||
<li>Monitoraggio credential stuffing assente</li>
|
||||
<li>Procedure di isolamento rapido non documentate</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div style="background: var(--bg-tertiary); padding: 20px; border-radius: 6px;">
|
||||
<h4 style="font-size: 14px; font-weight: 600; color: var(--accent-primary); margin-bottom: 12px;">
|
||||
💡 LESSON LEARNED CHIAVE
|
||||
</h4>
|
||||
<ol style="font-size: 13px; color: var(--text-secondary); line-height: 1.8; margin-left: 20px;">
|
||||
<li><strong>MFA è fondamentale:</strong> L'assenza di MFA su account amministrativi è stata la vulnerabilità critica. Implementazione immediata obbligatoria.</li>
|
||||
<li><strong>Backup immutabile salva:</strong> Il backup immutabile ha evitato perdita dati e permesso ripristino rapido. Investimento essenziale.</li>
|
||||
<li><strong>EDR efficace ma non sufficiente:</strong> EDR ha bloccato il malware ma non ha prevenuto il phishing. Serve approccio multi-layer.</li>
|
||||
<li><strong>Formazione continua necessaria:</strong> Awareness sporadica non è efficace. Serve formazione continua e simulazioni pratiche.</li>
|
||||
<li><strong>Procedure automatiche riducono TTC:</strong> Isolamento manuale ha richiesto tempo. Automazione può ridurre significativamente TTC.</li>
|
||||
<li><strong>Comunicazioni tempestive cruciali:</strong> Rispetto scadenze CSIRT e comunicazioni interne hanno evitato complicazioni legali/reputazionali.</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Finalizzazione -->
|
||||
<div class="section">
|
||||
<div class="section-title">Finalizzazione Post-Incident Review</div>
|
||||
|
||||
<div style="background: var(--bg-tertiary); padding: 16px; border-radius: 6px; margin-bottom: 20px;">
|
||||
<strong style="color: var(--text-primary);">Partecipanti PIR:</strong><br>
|
||||
<ul style="font-size: 13px; color: var(--text-secondary); margin-top: 8px; margin-left: 20px;">
|
||||
<li>CISO - P. Lombardi (coordinatore)</li>
|
||||
<li>SOC Lead - L. Verdi</li>
|
||||
<li>System Admin - G. Rossi</li>
|
||||
<li>Forensics Team - A. Neri</li>
|
||||
<li>IT Manager - M. Bianchi</li>
|
||||
<li>Responsabile Divisione Finance - S. Neri</li>
|
||||
<li>Direzione - CdA Representative</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div style="display: flex; gap: 12px; justify-content: flex-end; padding-top: 24px; border-top: 1px solid var(--border-color);">
|
||||
<button class="btn" onclick="savePIRDraft()">Salva Bozza</button>
|
||||
<button class="btn" onclick="exportPIR()">📄 Esporta Report</button>
|
||||
<button class="btn btn-primary" onclick="completePIR()">✅ Finalizza PIR e Chiudi Incidente</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function savePIRDraft() {
|
||||
alert('Bozza Post-Incident Review salvata con successo.');
|
||||
}
|
||||
|
||||
function exportPIR() {
|
||||
const tooltip = document.createElement('div');
|
||||
tooltip.style.cssText = `
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background: var(--bg-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 8px;
|
||||
padding: 24px;
|
||||
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
|
||||
z-index: 10000;
|
||||
max-width: 500px;
|
||||
`;
|
||||
tooltip.innerHTML = `
|
||||
<h3 style="margin-bottom: 16px; color: var(--text-primary);">📄 Export Report Post-Incident Review</h3>
|
||||
<p style="color: var(--text-secondary); margin-bottom: 16px; font-size: 13px;">
|
||||
Report completo PIR per incidente INC-2024-047
|
||||
</p>
|
||||
<div style="background: var(--bg-tertiary); padding: 16px; border-radius: 4px; margin-bottom: 16px; font-family: monospace; font-size: 12px;">
|
||||
📄 PIR_INC-2024-047_Report_Completo.pdf<br>
|
||||
📄 PIR_INC-2024-047_Azioni_Correttive.xlsx<br>
|
||||
📄 PIR_INC-2024-047_Executive_Summary.pdf<br>
|
||||
📄 PIR_INC-2024-047_Lesson_Learned.docx
|
||||
</div>
|
||||
<button onclick="this.parentElement.remove()" style="width: 100%; padding: 10px; background: var(--accent-primary); border: none; border-radius: 6px; color: white; font-weight: 600; cursor: pointer;">
|
||||
Chiudi
|
||||
</button>
|
||||
`;
|
||||
document.body.appendChild(tooltip);
|
||||
}
|
||||
|
||||
function completePIR() {
|
||||
const tooltip = document.createElement('div');
|
||||
tooltip.style.cssText = `
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background: var(--bg-secondary);
|
||||
border: 2px solid var(--success);
|
||||
border-radius: 8px;
|
||||
padding: 32px;
|
||||
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
|
||||
z-index: 10000;
|
||||
max-width: 600px;
|
||||
text-align: center;
|
||||
`;
|
||||
tooltip.innerHTML = `
|
||||
<div style="font-size: 48px; margin-bottom: 16px;">✅</div>
|
||||
<h2 style="color: var(--success); margin-bottom: 16px;">Post-Incident Review Completata</h2>
|
||||
<p style="color: var(--text-secondary); margin-bottom: 24px; font-size: 14px;">
|
||||
Incidente INC-2024-047 ufficialmente chiuso
|
||||
</p>
|
||||
<div style="background: var(--bg-tertiary); padding: 20px; border-radius: 6px; margin-bottom: 24px; text-align: left;">
|
||||
<p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;"><strong>Riepilogo Finale:</strong></p>
|
||||
<ul style="font-size: 13px; color: var(--text-secondary); margin-left: 20px;">
|
||||
<li>12 azioni correttive identificate e assegnate</li>
|
||||
<li>6 azioni ad alta priorità in tracking</li>
|
||||
<li>Risk assessment aggiornato (Org.05)</li>
|
||||
<li>Lesson learned condivise con team</li>
|
||||
<li>Report PIR distribuito a stakeholder</li>
|
||||
<li>Relazione finale CSIRT da completare</li>
|
||||
</ul>
|
||||
<p style="font-size: 13px; color: var(--text-secondary); margin-top: 16px;">
|
||||
<strong>Prossimi step:</strong> Monitoraggio azioni correttive tramite sistema non conformità (ID.IM-01)
|
||||
</p>
|
||||
</div>
|
||||
<div style="display: flex; gap: 12px;">
|
||||
<button onclick="window.location.href='incident-dashboard.html'" style="flex: 1; padding: 12px; background: var(--bg-tertiary); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-primary); font-weight: 600; cursor: pointer;">
|
||||
Dashboard Incidenti
|
||||
</button>
|
||||
<button onclick="window.location.href='incident-notification.html?id=INC-2024-047&action=final'" style="flex: 1; padding: 12px; background: var(--accent-primary); border: none; border-radius: 6px; color: white; font-weight: 600; cursor: pointer;">
|
||||
Completa Relazione Finale CSIRT
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
document.body.appendChild(tooltip);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,660 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="it">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Ripristino Servizi - INC-2024-047</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg-primary: #0d1117;
|
||||
--bg-secondary: #161b22;
|
||||
--bg-tertiary: #1c2128;
|
||||
--border-color: #30363d;
|
||||
--text-primary: #c9d1d9;
|
||||
--text-secondary: #8b949e;
|
||||
--accent-primary: #58a6ff;
|
||||
--success: #3fb950;
|
||||
--warning: #d29922;
|
||||
--danger: #f85149;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
|
||||
background-color: var(--bg-primary);
|
||||
color: var(--text-primary);
|
||||
line-height: 1.6;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: var(--bg-secondary);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
padding: 24px 0;
|
||||
margin-bottom: 32px;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.header-content {
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
padding: 0 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.breadcrumb a {
|
||||
color: var(--accent-primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn {
|
||||
padding: 8px 16px;
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
color: var(--text-primary);
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
border-color: var(--accent-primary);
|
||||
}
|
||||
|
||||
.btn-success {
|
||||
background-color: var(--success);
|
||||
border-color: var(--success);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-success:hover {
|
||||
background-color: #2ea043;
|
||||
}
|
||||
|
||||
.alert-box {
|
||||
background-color: rgba(88, 166, 255, 0.1);
|
||||
border: 1px solid var(--accent-primary);
|
||||
border-left: 4px solid var(--accent-primary);
|
||||
border-radius: 6px;
|
||||
padding: 20px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.alert-title {
|
||||
font-weight: 600;
|
||||
margin-bottom: 8px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.alert-content {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.section {
|
||||
background-color: var(--bg-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
padding: 24px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 12px;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.checklist {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.checklist li {
|
||||
padding: 12px;
|
||||
background-color: var(--bg-tertiary);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 4px;
|
||||
margin-bottom: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.checklist input[type="checkbox"] {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.checklist li.completed {
|
||||
background-color: rgba(63, 185, 80, 0.1);
|
||||
border-color: var(--success);
|
||||
}
|
||||
|
||||
.priority-badge {
|
||||
display: inline-block;
|
||||
padding: 4px 8px;
|
||||
border-radius: 3px;
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.priority-1 {
|
||||
background-color: rgba(248, 81, 73, 0.2);
|
||||
color: var(--danger);
|
||||
border: 1px solid var(--danger);
|
||||
}
|
||||
|
||||
.priority-2 {
|
||||
background-color: rgba(210, 153, 34, 0.2);
|
||||
color: var(--warning);
|
||||
border: 1px solid var(--warning);
|
||||
}
|
||||
|
||||
.data-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.data-table th {
|
||||
background-color: var(--bg-tertiary);
|
||||
color: var(--text-secondary);
|
||||
font-weight: 600;
|
||||
text-align: left;
|
||||
padding: 10px 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.data-table td {
|
||||
padding: 10px 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.data-table tr:hover {
|
||||
background-color: var(--bg-tertiary);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="header-content">
|
||||
<div>
|
||||
<h1>🔄 Ripristino Servizi - INC-2024-047</h1>
|
||||
<div class="breadcrumb">
|
||||
<a href="dashboard.html">Dashboard NIS2</a> /
|
||||
<a href="incident-dashboard.html">Gestione Incidenti</a> /
|
||||
<a href="incident-detail.html?id=INC-2024-047">INC-2024-047</a> /
|
||||
Ripristino
|
||||
</div>
|
||||
</div>
|
||||
<a href="incident-detail.html?id=INC-2024-047" class="btn">← Torna all'Incidente</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="alert-box">
|
||||
<div class="alert-title">ℹ️ Processo di Ripristino (RC.RP-01)</div>
|
||||
<div class="alert-content">
|
||||
Ripristino graduale dei servizi secondo priorità BIA. Ogni sistema deve essere verificato per integrità,
|
||||
funzionalità e sicurezza prima del ripristino in produzione. Monitoraggio intensivo post-ripristino per 72 ore.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Priorità Ripristino -->
|
||||
<div class="section">
|
||||
<div class="section-title">Priorità Ripristino (secondo BIA Org.08)</div>
|
||||
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Priorità</th>
|
||||
<th>Sistema/Servizio</th>
|
||||
<th>RTO Dichiarato</th>
|
||||
<th>Stato</th>
|
||||
<th>ETA Ripristino</th>
|
||||
<th>Azioni</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><span class="priority-badge priority-1">P1 - Critico</span></td>
|
||||
<td><strong>Server ERP-PROD-01</strong><br>Sistema gestionale principale</td>
|
||||
<td>≤4h</td>
|
||||
<td><span style="color: var(--warning);">🔄 In ripristino</span></td>
|
||||
<td>2024-03-08 14:00</td>
|
||||
<td><button class="btn" onclick="viewRecoveryDetails('erp')">Dettagli</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="priority-badge priority-1">P1 - Critico</span></td>
|
||||
<td><strong>Applicazione SAP ERP</strong><br>Software gestionale</td>
|
||||
<td>≤4h</td>
|
||||
<td><span style="color: var(--text-secondary);">⏸️ In attesa server</span></td>
|
||||
<td>2024-03-08 16:00</td>
|
||||
<td><button class="btn" disabled>In attesa</button></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Checklist Ripristino -->
|
||||
<div class="section">
|
||||
<div class="section-title">Checklist Ripristino Server ERP-PROD-01</div>
|
||||
|
||||
<h3 style="font-size: 16px; font-weight: 600; margin-bottom: 16px; color: var(--text-primary);">1. Valutazione Pre-Ripristino</h3>
|
||||
<ul class="checklist">
|
||||
<li class="completed">
|
||||
<input type="checkbox" checked disabled>
|
||||
<span>Minaccia completamente rimossa ed eradicata</span>
|
||||
</li>
|
||||
<li class="completed">
|
||||
<input type="checkbox" checked disabled>
|
||||
<span>Nessun indicatore di compromissione residuo</span>
|
||||
</li>
|
||||
<li class="completed">
|
||||
<input type="checkbox" checked disabled>
|
||||
<span>Backup verificato e integro (hash matching)</span>
|
||||
</li>
|
||||
<li class="completed">
|
||||
<input type="checkbox" checked disabled>
|
||||
<span>Strategia di ripristino definita: Ripristino da backup immutabile</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3 style="font-size: 16px; font-weight: 600; margin: 24px 0 16px; color: var(--text-primary);">2. Ripristino Sistema</h3>
|
||||
<ul class="checklist">
|
||||
<li class="completed">
|
||||
<input type="checkbox" checked disabled>
|
||||
<span>Ripristino da backup immutabile avviato (2024-03-07 10:00)</span>
|
||||
</li>
|
||||
<li class="completed">
|
||||
<input type="checkbox" checked disabled>
|
||||
<span>Sistema operativo ripristinato e verificato</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check1" onchange="updateProgress()">
|
||||
<span>Applicazione ERP ripristinata e configurata</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check2" onchange="updateProgress()">
|
||||
<span>Database ripristinato e verificato integrità</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check3" onchange="updateProgress()">
|
||||
<span>Patch di sicurezza applicati (ultimi aggiornamenti)</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check4" onchange="updateProgress()">
|
||||
<span>Configurazione hardening applicata (baseline CIS)</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3 style="font-size: 16px; font-weight: 600; margin: 24px 0 16px; color: var(--text-primary);">3. Verifica Integrità e Sicurezza</h3>
|
||||
<ul class="checklist">
|
||||
<li>
|
||||
<input type="checkbox" id="check5" onchange="updateProgress()">
|
||||
<span>Integrità dati verificata (confronto checksum con backup)</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check6" onchange="updateProgress()">
|
||||
<span>Test funzionali applicativi completati con successo</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check7" onchange="updateProgress()">
|
||||
<span>Scansione antimalware completa (nessuna minaccia rilevata)</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check8" onchange="updateProgress()">
|
||||
<span>Verifica assenza IoC residui</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check9" onchange="updateProgress()">
|
||||
<span>Configurazione EDR verificata e attiva</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check10" onchange="updateProgress()">
|
||||
<span>Log attivi e integrati nel SIEM</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3 style="font-size: 16px; font-weight: 600; margin: 24px 0 16px; color: var(--text-primary);">4. Ripristino Accessi</h3>
|
||||
<ul class="checklist">
|
||||
<li>
|
||||
<input type="checkbox" id="check11" onchange="updateProgress()">
|
||||
<span>Reset credenziali per tutti gli account potenzialmente compromessi</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check12" onchange="updateProgress()">
|
||||
<span>MFA verificata e funzionante per tutti gli account admin</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check13" onchange="updateProgress()">
|
||||
<span>Riattivazione accessi graduale per ruolo (admin → power user → user)</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check14" onchange="updateProgress()">
|
||||
<span>Monitoraggio accessi post-ripristino attivato</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3 style="font-size: 16px; font-weight: 600; margin: 24px 0 16px; color: var(--text-primary);">5. Ripristino Connettività</h3>
|
||||
<ul class="checklist">
|
||||
<li>
|
||||
<input type="checkbox" id="check15" onchange="updateProgress()">
|
||||
<span>Regole firewall aggiornate (IP C2 bloccati permanentemente)</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check16" onchange="updateProgress()">
|
||||
<span>Segmentazione rete verificata</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check17" onchange="updateProgress()">
|
||||
<span>Test connettività end-to-end completati</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check18" onchange="updateProgress()">
|
||||
<span>Monitoraggio traffico anomalo attivo</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3 style="font-size: 16px; font-weight: 600; margin: 24px 0 16px; color: var(--text-primary);">6. Validazione Finale</h3>
|
||||
<ul class="checklist">
|
||||
<li>
|
||||
<input type="checkbox" id="check19" onchange="updateProgress()">
|
||||
<span>Sign-off tecnico: Team Incident Response</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check20" onchange="updateProgress()">
|
||||
<span>Sign-off business: Responsabile Divisione</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check21" onchange="updateProgress()">
|
||||
<span>Sign-off sicurezza: CISO</span>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="check22" onchange="updateProgress()">
|
||||
<span>Dichiarazione di ripristino completato</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div style="margin-top: 24px; padding: 20px; background: var(--bg-tertiary); border-radius: 6px; display: flex; justify-content: space-between; align-items: center;">
|
||||
<div>
|
||||
<div style="font-size: 13px; color: var(--text-secondary); margin-bottom: 8px;">Progresso Ripristino</div>
|
||||
<div style="font-size: 24px; font-weight: 700; color: var(--text-primary);" id="progressText">9%</div>
|
||||
</div>
|
||||
<button class="btn btn-success" onclick="completeRecovery()" id="completeBtn" disabled style="opacity: 0.5;">
|
||||
✅ Completa Ripristino
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Monitoraggio Post-Ripristino -->
|
||||
<div class="section">
|
||||
<div class="section-title">Piano Monitoraggio Post-Ripristino</div>
|
||||
|
||||
<div style="background: var(--bg-tertiary); padding: 16px; border-radius: 6px; margin-bottom: 16px;">
|
||||
<h4 style="font-size: 14px; font-weight: 600; color: var(--text-primary); margin-bottom: 12px;">
|
||||
📊 Monitoraggio Intensivo (72 ore)
|
||||
</h4>
|
||||
<ul style="font-size: 13px; color: var(--text-secondary); line-height: 1.8; margin-left: 20px;">
|
||||
<li>Monitoraggio continuo 24/7 da SOC</li>
|
||||
<li>Soglie di alerting ridotte (maggiore sensibilità)</li>
|
||||
<li>Threat hunting mirato ogni 8 ore</li>
|
||||
<li>Report giornaliero stato sistema</li>
|
||||
<li>Verifica integrità file system ogni 12 ore</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div style="background: var(--bg-tertiary); padding: 16px; border-radius: 6px; margin-bottom: 16px;">
|
||||
<h4 style="font-size: 14px; font-weight: 600; color: var(--text-primary); margin-bottom: 12px;">
|
||||
📈 Monitoraggio Elevato (30 giorni)
|
||||
</h4>
|
||||
<ul style="font-size: 13px; color: var(--text-secondary); line-height: 1.8; margin-left: 20px;">
|
||||
<li>Monitoraggio continuo con priorità alta</li>
|
||||
<li>Threat hunting settimanale</li>
|
||||
<li>Report settimanale a CISO</li>
|
||||
<li>Verifica periodica IoC</li>
|
||||
<li>Analisi comportamentale utenti e processi</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Metrica</th>
|
||||
<th>Baseline Pre-Incidente</th>
|
||||
<th>Target Post-Ripristino</th>
|
||||
<th>Frequenza Check</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>CPU Usage</td>
|
||||
<td>45-60%</td>
|
||||
<td>45-60% (±5%)</td>
|
||||
<td>Ogni 5 minuti</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Memory Usage</td>
|
||||
<td>70-75%</td>
|
||||
<td>70-75% (±5%)</td>
|
||||
<td>Ogni 5 minuti</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Network Traffic</td>
|
||||
<td>2-5 Gbps</td>
|
||||
<td>2-5 Gbps</td>
|
||||
<td>Continuo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Failed Login Attempts</td>
|
||||
<td><5/ora</td>
|
||||
<td><3/ora</td>
|
||||
<td>Real-time</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Processi Anomali</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>Ogni 15 minuti</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Connessioni Esterne Sospette</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>Real-time</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Comunicazioni Ripristino -->
|
||||
<div class="section">
|
||||
<div class="section-title">Comunicazioni Ripristino Completato</div>
|
||||
|
||||
<div style="background: var(--bg-tertiary); padding: 16px; border-radius: 6px; margin-bottom: 16px;">
|
||||
<h4 style="font-size: 14px; font-weight: 600; color: var(--text-primary); margin-bottom: 12px;">
|
||||
📧 Template Comunicazione Interna
|
||||
</h4>
|
||||
<div style="font-size: 13px; color: var(--text-secondary); line-height: 1.8; font-family: monospace; background: var(--bg-primary); padding: 12px; border-radius: 4px;">
|
||||
<strong>Oggetto:</strong> Ripristino Servizio ERP Completato<br><br>
|
||||
Gentili colleghi,<br><br>
|
||||
Vi informiamo che il servizio ERP è stato completamente ripristinato e
|
||||
risulta nuovamente operativo a partire dalle ore [DATA/ORA].<br><br>
|
||||
<strong>Azioni richieste agli utenti:</strong><br>
|
||||
• Effettuare reset password al primo accesso<br>
|
||||
• Verificare che MFA sia attiva<br>
|
||||
• Segnalare immediatamente qualsiasi comportamento anomalo<br><br>
|
||||
Il sistema è sotto monitoraggio intensivo per le prossime 72 ore.<br><br>
|
||||
Per qualsiasi problema contattare l'helpdesk.<br><br>
|
||||
Grazie per la collaborazione.<br>
|
||||
IT Security Team
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="background: var(--bg-tertiary); padding: 16px; border-radius: 6px;">
|
||||
<h4 style="font-size: 14px; font-weight: 600; color: var(--text-primary); margin-bottom: 12px;">
|
||||
📡 Aggiornamento CSIRT Italia
|
||||
</h4>
|
||||
<div style="font-size: 13px; color: var(--text-secondary); line-height: 1.8;">
|
||||
Aggiornare la notifica CSIRT con informazioni sul ripristino completato:
|
||||
<ul style="margin-left: 20px; margin-top: 8px;">
|
||||
<li>Data/ora ripristino completato</li>
|
||||
<li>Servizi ripristinati</li>
|
||||
<li>Downtime totale effettivo vs RTO</li>
|
||||
<li>Misure di hardening applicate</li>
|
||||
<li>Piano di monitoraggio post-ripristino</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function updateProgress() {
|
||||
const total = 22;
|
||||
let checked = 2; // I primi 2 sono già checked
|
||||
|
||||
for (let i = 1; i <= 22; i++) {
|
||||
const checkbox = document.getElementById('check' + i);
|
||||
if (checkbox && checkbox.checked) {
|
||||
checked++;
|
||||
checkbox.parentElement.classList.add('completed');
|
||||
} else if (checkbox) {
|
||||
checkbox.parentElement.classList.remove('completed');
|
||||
}
|
||||
}
|
||||
|
||||
const percentage = Math.round((checked / total) * 100);
|
||||
document.getElementById('progressText').textContent = percentage + '%';
|
||||
|
||||
const completeBtn = document.getElementById('completeBtn');
|
||||
if (percentage === 100) {
|
||||
completeBtn.disabled = false;
|
||||
completeBtn.style.opacity = '1';
|
||||
} else {
|
||||
completeBtn.disabled = true;
|
||||
completeBtn.style.opacity = '0.5';
|
||||
}
|
||||
}
|
||||
|
||||
function completeRecovery() {
|
||||
const tooltip = document.createElement('div');
|
||||
tooltip.style.cssText = `
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background: var(--bg-secondary);
|
||||
border: 2px solid var(--success);
|
||||
border-radius: 8px;
|
||||
padding: 32px;
|
||||
box-shadow: 0 8px 24px rgba(0,0,0,0.5);
|
||||
z-index: 10000;
|
||||
max-width: 600px;
|
||||
text-align: center;
|
||||
`;
|
||||
tooltip.innerHTML = `
|
||||
<div style="font-size: 48px; margin-bottom: 16px;">✅</div>
|
||||
<h2 style="color: var(--success); margin-bottom: 16px;">Ripristino Completato con Successo</h2>
|
||||
<div style="background: var(--bg-tertiary); padding: 20px; border-radius: 6px; margin-bottom: 24px; text-align: left;">
|
||||
<p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;"><strong>Riepilogo Ripristino:</strong></p>
|
||||
<table style="width: 100%; font-size: 13px; color: var(--text-secondary);">
|
||||
<tr>
|
||||
<td><strong>Sistema:</strong></td>
|
||||
<td>ERP-PROD-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Data ripristino:</strong></td>
|
||||
<td>${new Date().toLocaleString('it-IT')}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Downtime totale:</strong></td>
|
||||
<td>30h 15m</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>RTO dichiarato:</strong></td>
|
||||
<td>≤48h</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Conformità RTO:</strong></td>
|
||||
<td style="color: var(--success); font-weight: 600;">✅ Rispettato</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>TTR (Time to Recover):</strong></td>
|
||||
<td>30.25h</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p style="font-size: 13px; color: var(--text-secondary); margin-top: 16px;">
|
||||
<strong>Stato:</strong> Sistema operativo, monitoraggio intensivo attivo per 72 ore.
|
||||
</p>
|
||||
</div>
|
||||
<div style="background: var(--bg-tertiary); padding: 16px; border-radius: 6px; margin-bottom: 24px; text-align: left;">
|
||||
<p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;"><strong>Prossime azioni:</strong></p>
|
||||
<ul style="font-size: 13px; color: var(--text-secondary); margin-left: 20px;">
|
||||
<li>Comunicazione utenti inviata</li>
|
||||
<li>Aggiornamento notifica CSIRT</li>
|
||||
<li>Monitoraggio intensivo 72h avviato</li>
|
||||
<li>Pianificazione Post-Incident Review</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="display: flex; gap: 12px;">
|
||||
<button onclick="window.location.href='incident-detail.html?id=INC-2024-047'" style="flex: 1; padding: 12px; background: var(--bg-tertiary); border: 1px solid var(--border-color); border-radius: 6px; color: var(--text-primary); font-weight: 600; cursor: pointer;">
|
||||
Torna all'Incidente
|
||||
</button>
|
||||
<button onclick="window.location.href='incident-pir.html?id=INC-2024-047'" style="flex: 1; padding: 12px; background: var(--accent-primary); border: none; border-radius: 6px; color: white; font-weight: 600; cursor: pointer;">
|
||||
Avvia Post-Incident Review
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
document.body.appendChild(tooltip);
|
||||
}
|
||||
|
||||
function viewRecoveryDetails(system) {
|
||||
alert('Dettagli processo di ripristino per: ' + system);
|
||||
}
|
||||
|
||||
// Inizializza progresso
|
||||
window.addEventListener('DOMContentLoaded', updateProgress);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user