Skip to main content
Ogni evento scritto in AuditRails è collegato crittograficamente a quello precedente. Se qualcuno elimina, modifica o inserisce un evento — anche a livello di infrastruttura — la catena si interrompe in quel punto e la verifica fallisce. Questa pagina spiega come è costruita la catena, come verificarla dalla dashboard o dall’API, e cosa fare se viene rilevata un’interruzione.

Come funziona la catena di hash

L’hash di ogni nuovo evento viene calcolato a partire da tre input: l’hash dell’evento precedente, il payload canonico dell’evento corrente e il timestamp corrente in millisecondi.

Payload canonico

Il payload canonico è una serializzazione JSON deterministica dei campi principali dell’evento:
I campi arricchiti dal worker — country, city, ip_address, e i campi della catena stessa (chain_seq, hash, prev_hash) — sono deliberatamente esclusi dal payload canonico. Questo garantisce che l’hash rimanga stabile indipendentemente da come AuditRails arricchisce l’evento dopo l’ingestione.

Evento genesi

Il primissimo evento nella catena di un tenant usa 64 caratteri zero (0000...0000) come previous_hash. L’hash di ogni evento successivo dipende da tutti gli eventi precedenti, formando una catena ininterrotta a partire dal primo record mai scritto.

Isolamento per tenant

Ogni tenant mantiene una catena completamente indipendente. Non esiste alcuna dipendenza tra tenant, quindi un’esecuzione di verifica per la tua organizzazione controlla solo i tuoi eventi.

Perché il rilevamento delle manomissioni funziona

La sicurezza della catena deriva dalla natura unidirezionale di SHA-256: Una catena valida è la prova crittografica che ogni evento esiste esattamente come è stato scritto, nell’ordine corretto, senza lacune.

Verifica tramite la dashboard

Puoi ispezionare i singoli eventi e navigare la catena direttamente dall’interfaccia.
1

Apri la vista Log

Vai su Dashboard → Log e individua l’evento che vuoi ispezionare.
2

Clicca sull'evento

Si apre il pannello di dettaglio dell’evento. Scorri fino alla sezione Catena.
3

Naviga la catena

Il pannello mostra l’hash e il chain_seq dell’evento corrente, insieme ai link agli eventi precedente e successivo nella catena. Ogni evento collegato mostra il proprio hash così puoi confermare visivamente che corrispondano.
Per una verifica massiva su un periodo di audit, usa invece l’API.

Verifica tramite l’API

L’endpoint /v1/events/verify controlla un intervallo di eventi e restituisce un singolo risultato pass/fail con diagnostica completa.

Endpoint

Parametri di query

Campi della risposta

Esempi

Risposta integra

Risposta con catena interrotta

Una catena interrotta è una segnalazione di sicurezza critica. Se ricevi "valid": false, esporta immediatamente il risultato completo della verifica, conserva l’export corrente dei log (CSV) e avvia un’indagine sull’incidente. Non liquidarlo come un errore transitorio — AuditRails è progettato in modo che una catena integra restituisca sempre valid: true.

Per i revisori: verifica indipendente

Se stai conducendo un audit esterno, puoi verificare i log di AuditRails senza affidarti all’output di verifica della piattaforma stessa.
1

Esegui la verifica per il periodo di audit

Chiama GET /v1/events/verify impostando from_seq e to_seq per coprire il periodo di audit. Conferma che la risposta contenga "valid": true.
2

Esporta il CSV dei log

Da Dashboard → Log, applica un filtro per data relativo al periodo di audit ed esporta in CSV. L’export include le colonne chain_seq e hash per ogni evento.
3

Ricalcola gli hash in modo indipendente

Usando la formula del payload canonico e i dati esportati, ricalcola l’hash di ogni evento e confrontalo con la colonna hash nel CSV. Qualsiasi discrepanza indica una manomissione.Il payload canonico è sempre il JSON di: log_id, tenant_id, action, actor_id, resource, metadata — in quest’ordine di chiavi, senza spazi extra.
4

Documenta i risultati

Registra i valori first_seq, last_seq, checked e valid della risposta API come parte del tuo pacchetto di evidenze di audit. Un risultato valid: true che copre l’intero periodo di audit soddisfa i requisiti di integrità della catena di hash per SOC 2, ISO 27001 A.8.15, DORA Art.6, PCI DSS 10.5 e il controllo di integrità dei log AMS-INT-2 del provvedimento del Garante.
Condividi il ruolo RBAC di revisore con il tuo auditor esterno. Questo gli garantisce accesso alla dashboard in sola lettura per eseguire la verifica ed esportare le evidenze in CSV autonomamente, senza bisogno della tua chiave API.