Conformità e prove: dimostrare piuttosto che dichiarare¶
Traduzione automatica dell'originale francese.
Un pannello che indica "conforme" in verde risponde a una domanda che nessuno si pone. Un revisore chiede invece: "Come potete essere certi che fosse vero in quel momento, e che la prova non fosse stata modificata da allora?"
Questa pagina descrive come il parco risponde a questa domanda: un catalogo di controlli, strumenti di misurazione, uno stato che non può essere determinato manualmente, e un registro che non può essere riscritto senza che ciò venga rilevato.
I termini tecnici si riferiscono al glossario.
Cosa può significare "conforme" in questo contesto¶
Due standard fungono da riferimento, e nessuno dei due si applica in senso stretto:
- NIS2 impone alle entità essenziali e importanti dell'Unione. Un parco personale non rientra in questa categoria. La direttiva funge da quadro di riferimento: le sue dieci misure minime (articolo 21 §2) e il suo meccanismo di notifica (articolo 23) costituiscono un buon inventario di ciò che una difesa seria deve coprire.
- SOC 2 è un rapporto redatto da un revisore accreditato, in un determinato periodo. Nessuno strumento è "certificato SOC 2", e un prodotto che lo afferma confonde il rapporto con la documentazione. Tuttavia, uno strumento può produrre la documentazione delle prove che il revisore richiederebbe.
È questo che fa il parco: un catalogo di controlli, prove misurate, uno stato derivato dalle prove, un'esportazione — e i criteri non coperti, che vengono esposti in modo esplicito piuttosto che nascosti.
flowchart LR
classDef src fill:#3f3f46,stroke:#3f3f46,color:#fff
classDef proof fill:#1e40af,stroke:#1e40af,color:#fff
classDef out fill:#0f766e,stroke:#0f766e,color:#fff
cat["Catalogue de contrôles<br/>versionné dans git"]:::src
son["Sondes<br/>pass · fail · indeterminate"]:::src
att["Attestations humaines<br/>session authentifiée · expiration"]:::src
tri["Gestes de triage<br/>avant → après · auteur"]:::src
run["Lanceur<br/>toutes les six heures"]:::proof
reg["Registre chaîné<br/>ajout seul · SHA-256"]:::proof
anc["Ancre quotidienne<br/>git, deux dépôts distants"]:::proof
der["Statut DÉRIVÉ<br/>recalculé à chaque lecture"]:::out
tab["Tableau de conformité"]:::out
exp["Dossier d'audit"]:::out
cat --> run
son --> run --> reg
att --> reg
tri --> reg
reg --> anc
reg --> der --> tab
der --> exp
1. Il catalogo di controlli comuni¶
Un controllo è una misura di sicurezza che può essere dimostrata come efficace. Il catalogo ne include circa trenta.
- un obiettivo, in una frase;
- gli articoli di NIS2 e i criteri di SOC 2 a cui si riferiscono – un controllo effettuato una volta serve per entrambi i riferimenti (controlli comuni);
- le sue fonti di prova: uno o più strumenti di verifica, una dichiarazione, o entrambi.
Il catalogo è un file gestito in versione tramite Git. Ogni versione è registrata: non solo sappiamo cosa è stato dimostrato in una data, ma anche cosa richiedevamo in quella data.
Come il catalogo copre le dieci misure dell'articolo 21, §2:
| NIS2, art. 21 §2 | Cosa deve contenere il catalogo | SOC 2 | Prova |
|---|---|---|---|
| a) Analisi dei rischi | Analisi dei rischi e identificazione di potenziali punti ciechi, revisione annuale | CC3 | Attestazione |
| b) Gestione degli incidenti | SIEM e allarmi, rilevamento in tempo reale, IDS di rete, monitoraggio dei sistemi di file, informazioni sulle minacce, risposta automatica, indagine immediata | CC7 | Sondaggi |
| c) Continuità operativa, backup e gestione delle crisi | Backup immutabili, procedure di ripristino testate, chiave di accesso offline | A1, CC9 | Sondaggi + Attestazione |
| d) Catena di approvvigionamento | Quarantena delle versioni, SBOM (Software Bill of Materials), revisione dei fornitori critici | CC8, CC9 | Sondaggi + Attestazione |
| e) Sicurezza nello sviluppo e nella manutenzione, vulnerabilità | Scansione continua, tempi di correzione delle vulnerabilità, tracciabilità delle modifiche, patch, blocco all'interno del perimetro | CC6, CC7, CC8 | Sondaggi |
| f) Valutazione dell'efficacia | Integrità del registro delle prove, revisione trimestrale dei controlli | CC4 | Sondaggio + Attestazione |
| g) Igiene informatica e formazione | Patch, applicazione delle linee guida CIS, competenza dell'operatore | CC1, CC5 | Sondaggi + Attestazione |
| h) Crittografia | Certificati effettivamente utilizzati, chiave di accesso | CC6 | Sondaggi |
| i) Controllo degli accessi, gestione degli asset | Inventario e persistenza, SBOM, assenza di credenziali in chiaro sui sistemi | CC6, C1 | Sondaggi |
| j) Autenticazione a più fattori, comunicazioni sicure | MFA (Multi-Factor Authentication) per account privilegiati, canale di crisi al di fuori della rete | CC6, CC2 | Sondaggio + Attestazione |
Oltre a ciò, si aggiungono l'articolo 20 (responsabilità e supervisione: un'attestazione annuale) e l'articolo 23 (notifica: il registro degli incidenti reponse.md#incidents).
2. I sondaggi¶
Un script è un programma che misura un dato e fornisce una valutazione. Il suo funzionamento è semplice: ogni clausola ha una ragione specifica:
| Clausola | Ragione |
|---|---|
| Un'unica riga JSON in output: identificativo, valutazione, dato osservato, dettaglio, data di misurazione | Un unico strumento, un formato unico, nessuna interpretazione |
Verdetto tra pass, fail, indeterminate |
Tre situazioni, poiché ci sono tre possibili scenari |
Obiettivo inaccessibile → indeterminate, mai pass |
L'assenza di risposta non è una misura |
Risultato positivo non appena viene emesso un verdetto, anche fail |
Un controllo fallito non è un guasto del sensore |
| Meno di un minuto | Un sensore lento è un sensore che alla fine si disattiva |
| Nessun segreto nell'uscita | I dettagli vengono registrati e letti da altri |
| En-tête : ce qu'elle prouve, ce qu'elle ne prouve pas, la commande qui l'a fait échouer | Une sonde qu'on n'a jamais vue rouge ne mesure rien |
{"probe": "<identifiant>", "status": "pass",
"observed": "<le fait mesuré, en une phrase>",
"detail": {"...": "..."}, "measured_at": "<date ISO 8601>"}
La dernière clause est la plus importante. Avant d'être admise, chaque sonde subit sa vérification inverse : on provoque exprès la situation qu'elle doit détecter, et on la regarde passer au rouge. Une sonde qui ne peut pas échouer n'est pas une preuve, c'est une décoration.
Cosa misurano i sensori, ad esempio: i certificati effettivamente emessi e la loro scadenza; gli agenti del SIEM connessi; un contenitore usa e getta che innesca il rilevamento all'esecuzione; la regola del "canarino" per i motori di file; un'eliminazione rifiutata sul target di backup; l'età dell'ultimo esercizio di ripristino; la presenza di quaranta versioni in ogni repository; il secondo fattore per gli account con privilegi; l'integrità del registro rispetto alle sue "ancore".
Un sensore dimostra ciò che misura, e non altro
Il sensore del registro degli incidenti verifica che le scadenze degli incidenti dichiarati siano rispettate. Un registro vuoto indica che non ci sono stati incidenti, né che un incidente reale è stato dichiarato – e questo è scritto nella sua intestazione, dove il lettore successivo lo troverà.
I sensori girano ogni sei ore. Un sensore presente su disco ma non collegato a nessun controllo appare nella tabella come prova isolata: misura qualcosa che nessuno ha richiesto, o un controllo ha perso la sua prova.
3. Lo stato derivato¶
Lo stato di un controllo non viene "acquisito". Viene calcolato, ad ogni lettura, a partire dalle prove:
| Stato | Condizione |
|---|---|
| Attivo | Tutti i sensori rendono pass, e sono recenti (36 ore di default), e tutte le attestazioni sono valide |
| Fallito | Almeno un sensore rende fail |
| Non verificato | Tutto il resto: un sensore inattivo, scaduto, indeterminato, un'attestazione mancante o scaduta |
La terza riga è quella che fa la differenza. L'assenza di misurazione non è una misurazione: un controllo il cui sensore è diventato inattivo non rimane verde per inerzia, ma passa in "non verificato".
Perché non mai acquisire uno stato: uno stato acquisito è una dichiarazione. Era vero nel giorno in cui è stato scritto, e lo rimane nell'interfaccia anche dopo che la realtà è cambiata. Uno stato derivato non può mentire più a lungo della validità della sua prova.
4. Il registro concatenato e il suo ancoraggio¶
Tutte le prove – ogni risultato del sensore, ogni attestazione, ogni versione del catalogo – entrano in un registro concatenato, aggiungendo solo nuove informazioni.
flowchart LR
classDef e fill:#1e40af,stroke:#1e40af,color:#fff
classDef a fill:#0f766e,stroke:#0f766e,color:#fff
e1["Entrée n<br/>contenu + empreinte de n-1"]:::e
e2["Entrée n+1<br/>contenu + empreinte de n"]:::e
e3["Entrée n+2 — tête<br/>contenu + empreinte de n+1"]:::e
anc["Ancre du jour<br/>numéro + empreinte de tête<br/>versionnée dans git"]:::a
e1 --> e2 --> e3
e3 -.->|"chaque soir"| anc
- Ogni voce contiene l'impronta SHA-256 della precedente. Modificare, eliminare o inserire una voce nel mezzo interrompe la catena alla voce esatta: la verifica indica la posizione.
- Rimane un caso in cui la catena da sola non lo vede: la troncatura. Eliminare le ultime voci lascia una catena perfettamente valida, semplicemente più corta.
- Da cui l'ancora: ogni sera, il numero e l'impronta dell'intestazione del registro vengono versionati in Git e caricati su due repository remoti. Un registro troncato non riesce più a trovare le sue ancore. Un'analisi confronta il registro con le ancore pubblicate.
Una conseguenza intenzionale
Ripristinare la base del registro da un backup lo riporta a uno stato precedente: le voci più recenti sono scomparse e la verifica con le ancore fallisce. Questo è corretto: il registro ha effettivamente perso delle prove. Questo fallimento viene registrato; non si "corregge" mai eliminando le ancore, il che significherebbe cancellare la traccia della perdita.
5. Due registri, e chi li firma¶
Il registro contiene due tipi di voci:
- le prove, descritte sopra;
- le azioni umane: ogni decisione di triage, ogni azione di correzione, registrate con il loro stato prima e dopo, nella stessa transazione dell'azione stessa — un'azione senza traccia non può essere avvenuta.
L'autore di un'azione viene letto dal canale — la sessione autenticata dal fornitore di identità — e mai dal corpo della richiesta. Un registro in cui l'autore si dichiara è inutile: chiunque con accesso potrebbe scrivere qualsiasi nome.
6. Le attestazioni¶
Alcune cose non possono essere misurate: ad esempio, che è stata effettuata una revisione della valutazione dei rischi, che l'operatore ha ricevuto una formazione, che i fornitori critici sono stati rivisti, che è stato testato un canale di crisi al di fuori del parco. Si tratta di una dichiarazione: una dichiarazione scritta da una persona.
Tre elementi aggiungono valore rispetto a una semplice casella da spuntare:
- deve essere accettata solo dopo una sessione di autenticazione;
- scade annualmente o trimestralmente, a seconda del controllo;
- viene registrata come qualsiasi altra prova, quindi non viene modificata.
7. Auditare – le procedure da seguire¶
Un revisore, o l'operatore entro sei mesi, ripete questi passaggi:
- Ricalcolare la catena del registro, quindi confrontarla con le "ancore" memorizzate in Git – non quelle indicate dal server: lo scopo di un'ancora è quello di essere portata della macchina che monitora.
- Esportare la documentazione dell'audit: catalogo, statuti, prove, incidenti e metodo, in un unico file.
- Ripetere un test manualmente, senza annotare nel registro, e confrontare il risultato con l'ultimo registrato.
- Scegliere un test a caso e richiedere la sua verifica inversa: quale comando l'ha causato, e quale risultato ha prodotto?
8. Aggiungere un test o un sondaggio¶
- Scrivere il sondaggio secondo il contratto, incluso l'intestazione.
- Farlo fallire intenzionalmente, e annotare il comando che lo ha causato.
- Dichiararlo in un controllo del catalogo: l'identificatore della prova è il nome del file del sondaggio.
- Eseguirlo senza alcuna configurazione, quindi attendere il prossimo avvio. Un sondaggio non dichiarato appare come "orfano": si nota l'errore.
Da leggere successivamente¶
- Rilevamento — la possibilità di rileggere i dati raccolti dai sensori.
- Continuità — l'immutabilità e la possibilità di ripristinare i dati.
- Risposta — il registro degli eventi.
- Glossario.
Dernière vérification de cette page : 2026-09-11