Vai al contenuto principale Richiesto dal diritto UE per le organizzazioni con oltre 50 dipendenti

Sicurezza #

EthicsPortal tratta dati sensibili dei segnalanti. Questa pagina documenta le specifiche misure tecniche e organizzative che abbiamo adottato. È redatta per i responsabili della compliance, i DPO e i team legali che valutano la piattaforma.

Ultimo aggiornamento: 2026-11-04.


Crittografia dei dati #

I campi sensibili del database elencati di seguito sono crittografati a riposo mediante Rails ActiveRecord Encryption con crittografia non deterministica (ogni crittografia produce un testo cifrato univoco, impedendo l’analisi dei pattern). La crittografia dei campi non copre i dump completi del database né gli allegati; questi sono crittografati separatamente, come descritto nelle sezioni allegati e backup.

CampoCrittografatoDeterministico
Descrizione della segnalazioneSìNo
Nome del segnalanteSìNo
Dati di contatto del segnalanteSìNo
Risposte strutturate del modulo (relazione, fonte, momento, segnalazione precedente, timore di ritorsioni)SìNo
Corpo del messaggio (comunicazione segnalante–gestore)SìNo
Note interne del casoSìNo
Segreti a due fattori e codici di backup dei gestoriSìNo

La crittografia non deterministica significa che questi campi non possono essere interrogati per valore a livello di database. Anche con pieno accesso al database, un aggressore non può cercare uno specifico nome di segnalante tra i record.

Allegati #

I file allegati alle segnalazioni, ai messaggi e alle note interne, le registrazioni vocali e le esportazioni dei dati dei casi sono crittografati a riposo in Hetzner Object Storage con AES-256, con una chiave casuale distinta per ogni file (crittografia lato server con chiavi fornite dal cliente). La chiave viene inviata con ogni richiesta allo storage e Hetzner rifiuta qualsiasi lettura effettuata senza di essa. EthicsPortal la conserva nel database con la ActiveRecord Encryption descritta sopra, quindi le sole credenziali dello storage non consentono di leggere un file: servono anche il database e le chiavi di crittografia dell’applicazione. I file raggiungono gli utenti autorizzati in streaming attraverso l’applicazione, mai tramite un link diretto allo storage.

I file caricati prima del 6 ottobre 2026 sono stati ricrittografati in quella data e le loro copie non crittografate, comprese le versioni precedenti conservate, sono state eliminate. I file che non sono dati delle segnalazioni, come le immagini del profilo e le immagini di condivisione dell’organizzazione, non sono crittografati in questo modo. Nulla di tutto ciò protegge da una compromissione del server applicativo, che detiene insieme le credenziali dello storage, il database e le chiavi.

Tutte le connessioni a EthicsPortal utilizzano HTTPS/TLS. Le richieste HTTP non crittografate vengono reindirizzate.


Anonimato e privacy #

Indirizzi IP #

EthicsPortal non registra l’indirizzo IP di un segnalante con le segnalazioni, i messaggi o i record di audit, e i log dell’applicazione per il canale di segnalazione non contengono indirizzi IP.

La limitazione delle richieste sul canale di segnalazione (invio della segnalazione, consultazione del caso, messaggistica) si basa su un hash SHA-256 con chiave e troncato dell’IP della richiesta. L’hash è pseudonimo, non anonimo: non può essere riletto come indirizzo, ma chiunque disponga del segreto dell’applicazione potrebbe verificarvi indirizzi candidati. È utilizzato solo per la finestra di limitazione (al massimo 10 minuti) e un processo in background lo elimina dalla cache entro 5 minuti dalla fine della finestra.

Il proxy TLS posto davanti all’applicazione tiene un proprio log delle richieste: indirizzo IP, percorso della richiesta, user agent e stato della risposta. Il percorso della pagina in cui un segnalante consulta la propria segnalazione contiene l’ID del caso, quindi una voce per quella pagina può essere collegata alla segnalazione. Sono conservate in un unico file di log da 10 MB sovrascritto man mano che si riempie, attualmente dopo circa due giorni; gli snapshot del server a 7 giorni descritti nella sezione backup possono contenerne una copia.

Rimozione dei metadati dei file #

I file caricati vengono automaticamente ripuliti dai metadati identificativi prima dell’archiviazione:

Tipo di fileMetadati rimossiMetodo
Immagini (JPEG, PNG, WebP, GIF, AVIF)Dati EXIF: coordinate GPS, modello della fotocamera, numero di serie del dispositivo, autore, marche temporaliElaborazione immagini Vips
Documenti PDFAutore, applicazione di creazione, cronologia delle modifiche. Non rimossi: i nomi degli autori dei commenti e i metadati delle foto incorporate nel PDFexiftool + qpdf nella configurazione di produzione standard
File videoGPS, informazioni sul dispositivo, software di registrazioneexiftool nella configurazione di produzione standard
File audioDispositivo di registrazione, GPS, tag del softwareexiftool nella configurazione di produzione standard

La rimozione dei metadati viene eseguita lato server prima dell’archiviazione. Per i tipi di file gestiti da exiftool, ciò dipende dalla presenza degli strumenti di produzione standard.

All’interno di un PDF vengono conservati i nomi presenti nei commenti e i metadati delle foto incorporate, come la posizione GPS e il numero di serie della fotocamera. Il segnalante che desidera eliminarli dovrebbe caricare le foto come file immagine separati e rimuovere i commenti prima di caricare un PDF.

Scansione antivirus #

I file allegati alle segnalazioni, ai messaggi e alle note interne vengono automaticamente sottoposti a scansione antimalware mediante ClamAV, un motore antivirus open source. La scansione avviene lato server in un processo in background dopo il caricamento. I file che non hanno superato la scansione sono bloccati alla consegna e i file infetti vengono rimossi automaticamente.

I file vengono sottoposti a scansione sull’infrastruttura di EthicsPortal — nessun dato dei file viene inviato a servizi di scansione di terze parti.

Segnalazioni via email #

Ogni canale di segnalazione ha un proprio indirizzo email su report.ethicsportal.eu. Un’email inviata a questo indirizzo diventa un caso in quel canale di segnalazione, come una segnalazione inviata tramite il modulo di segnalazione online. Le segnalazioni via email sono attive per impostazione predefinita. Un’organizzazione può disattivarle nelle impostazioni del canale; l’indirizzo rifiuta quindi le nuove email entro un minuto.

L’email non è anonima: il fornitore di posta del segnalante e, se scrive da un account di lavoro, i sistemi di posta dell’organizzazione possono conservare copie e registrazioni del messaggio. La ricevuta lo indica e rimanda al modulo di segnalazione online per i segnalanti che vogliono restare anonimi.

Email per gli aggiornamenti #

Il modulo di segnalazione online ha un campo email facoltativo per gli aggiornamenti. L’indirizzo riceve la ricevuta e un avviso quando un gestore scrive, mai il contenuto della segnalazione. È memorizzato in forma crittografata e, come l’indirizzo del mittente di una segnalazione via email, non viene mostrato in nessuna pagina dei gestori, in nessun PDF né in nessuna esportazione. Resta disponibile quando il segnalante invia in forma anonima. Solo un segnalante che disattiva l’invio anonimo e spunta “mostra il mio indirizzo email anche ai gestori del caso” lo trasforma in un indirizzo di contatto visibile ai gestori.

Anonimato del gestore #

I segnalanti non vedono mai i nomi reali o gli indirizzi email delle persone che gestiscono la loro segnalazione. Tutti i messaggi dei gestori sono visualizzati come “Gestore del caso”. Ciò protegge l’identità del gestore e previene l’ingegneria sociale.

Nessun tracciamento #

EthicsPortal non utilizza cookie di tracciamento di terze parti, pixel pubblicitari o script di fingerprinting. Utilizziamo Plausible Analytics solo sul sito di marketing, servito tramite il nostro dominio. Non imposta cookie e non conserva gli indirizzi IP. Cloudflare, che distribuisce il sito di marketing, tratta metadati della richiesta, inclusi gli indirizzi IP, come descritto nell’Informativa sulla privacy. Il canale di segnalazione non contiene strumenti di analisi.

Stato attuale delle garanzie #

EthicsPortal attualmente non dichiara su questo sito una certificazione ISO 27001 accreditata. Non pubblica inoltre attualmente un audit indipendente di terze parti dell’architettura di anonimato. Qualora ciò cambi, l’ambito e la data saranno pubblicati qui.

Materiali per la verifica di sicurezza #

I clienti che necessitano di materiali per la verifica in fase di approvvigionamento o legale possono richiederli durante l’approvvigionamento. I materiali disponibili possono includere un DPA firmato, evidenze di registro e fiscali, un questionario di sicurezza compilato e risposte scritte relative alle procedure di backup e ripristino, all’accesso privilegiato in produzione e alla gestione della risposta agli incidenti.


Controllo di accesso #

L’autorizzazione è applicata a livello applicativo mediante le policy di Pundit.

RuoloPuò visualizzare le segnalazioniPuò gestire le impostazioni dell’organizzazionePuò assegnare i gestori
AmministratoreTutte le segnalazioniSìSì
GestoreLe segnalazioni a cui è assegnato o a cui partecipaNoNo
OsservatoreSola lettura, per revisori e consulenti legaliNoNo

Autenticazione a due fattori #

Gli account dei gestori e degli amministratori possono abilitare l’autenticazione a due fattori basata su TOTP tramite qualsiasi app di autenticazione standard (Google Authenticator, 1Password, Authy e alternative compatibili). Una volta abilitata, l’accesso richiede sia la credenziale primaria sia un codice rotante di 6 cifre.

Accesso dei segnalanti #

I segnalanti accedono con l’ID del caso e una password. L’ID del caso identifica il caso e non è segreto. La password è composta da 16 cifre casuali, generate dal sistema al momento dell’invio della segnalazione; il segnalante non la sceglie. È memorizzata solo come digest bcrypt, quindi nessuno può recuperarla, ed EthicsPortal non ha alcuna funzione che permetta al segnalante, al gestore del caso o all’operatore di reimpostarla. Il segnalante che la perde invia una nuova segnalazione e indica l’ID del caso. Le segnalazioni inviate prima del 18 ottobre 2026 mantengono la password di 6 cifre scelta allora dal segnalante, che continua a funzionare. La casella di seguito e l’invio di messaggi sono protetti dalla sessione dietro questo controllo, così che un ID del caso trapelato da solo non possa leggere la segnalazione né impersonare il segnalante.

Subito dopo l’invio, una pagina di ricevuta mostra l’indirizzo della posta sicura, l’ID del caso e la password. Resta disponibile in quel browser solo finché il caso è sbloccato e scompare quando la posta si blocca dopo 30 minuti di inattività o quando il segnalante esce. Nella pagina di accesso il campo della password è un campo di testo visibile con il completamento automatico disattivato, anziché un campo password mascherato, così che i browser non propongano di salvare la password: un browser gestito dall’azienda potrebbe altrimenti sincronizzarla con l’account del datore di lavoro. Si può incollare la password e gli spazi vengono ignorati.

Quando il personale registra una segnalazione ricevuta per telefono, in un incontro di persona, per lettera o per email e il segnalante vuole seguire il caso online, il sistema genera una password monouso che il gestore gli comunica. Funziona una sola volta: al primo accesso del segnalante viene sostituita, sul server, da una nuova password che vede solo il segnalante.

L’accesso del segnalante termina quando seleziona «Esci» oppure dopo 30 minuti senza attività. Circa due minuti prima del blocco, un avviso offre di mantenere aperta la posta; se nessuno risponde, il caso scompare dallo schermo. L’accesso è conservato in un cookie cifrato nel browser del segnalante e il server non conserva alcuna sessione del segnalante.

Ciclo di vita delle sessioni #

Ogni sessione autenticata registra last_seen_at a ogni richiesta (con debounce). Gli utenti possono esaminare le proprie sessioni attive, vedere quando ciascuna è stata attiva l’ultima volta, revocare singolarmente qualsiasi sessione o disconnettersi da tutte le altre sessioni contemporaneamente dalle impostazioni dell’account.

Le sessioni scadono automaticamente dopo 14 giorni di inattività. La richiesta successiva da una sessione inattiva distrugge il record lato server, cancella il cookie e impone una nuova autenticazione tramite un nuovo magic link. Un processo notturno ripulisce le sessioni abbandonate sulla stessa scadenza, così che user_agent e ip_address non siano conservati oltre la finestra di inattività anche quando l’utente non ritorna mai.

L’autenticazione tramite magic link limita l’impatto delle sessioni di lunga durata: un cookie di sessione rubato non fornisce una credenziale riutilizzabile e la nuova autenticazione richiede l’accesso all’email.

Accesso dei membri e dismissione #

L’accesso all’organizzazione è applicato al confine della richiesta. Quando un membro viene disattivato:

Il proprietario dell’organizzazione, l’ultimo amministratore attivo e il responsabile della compliance designato per il canale di segnalazione non possono essere disattivati. Tutti gli eventi di disattivazione e riattivazione sono scritti nel registro delle attività in sola aggiunta.

La rimozione di un membro disattiva l’appartenenza anziché eliminarla, così che il registro delle attività e la cronologia delle segnalazioni restino risolvibili. Un’appartenenza viene eliminata definitivamente solo quando viene cancellato l’account del membro stesso o l’organizzazione.

Cancellazione dell’account #

Quando un membro chiude il proprio account, l’indirizzo email viene sostituito con un segnaposto non instradabile e l’immagine del profilo, le credenziali a due fattori, le sessioni, i token API e le preferenze vengono eliminati definitivamente; l’account non può più autenticarsi né essere contattato. Se l’account non ha mai agito in un’organizzazione, il record viene eliminato del tutto. In caso contrario, il nome del membro resta, mentre le sue appartenenze vengono disattivate affinché le note dei casi, i messaggi e le voci del registro delle attività conservati restino attribuibili. Il Titolare determina il periodo di conservazione secondo le proprie istruzioni documentate e la legge applicabile; i diritti di cancellazione previsti dal GDPR restano soggetti alle eventuali eccezioni applicabili per obblighi legali o azioni legali.

Un account ripulito non può autenticarsi per alcuna via: magic link, asserzione SSO o token API.

Limitazione delle richieste #

Gli endpoint pubblici del canale di segnalazione sono soggetti a limitazione delle richieste per prevenire abusi e attacchi di enumerazione:

EndpointLimite
Invio della segnalazione5 ogni 10 minuti per IP sottoposto a hash
Consultazione del caso (ID del caso + password)10 ogni 3 minuti per IP sottoposto a hash
Consultazione del caso (ID del caso + password)10 ogni 10 minuti per ID del caso e IP sottoposto a hash
Invio di messaggi10 ogni 3 minuti per IP sottoposto a hash

La limitazione delle richieste utilizza l’hash IP con chiave descritto sopra — nessun indirizzo IP viene memorizzato a tale scopo. Il limite per ID del caso usa come chiave l’ID del caso stesso, che viene eliminato dalla stessa cache entro 15 minuti.


Audit e conformità #

Registro delle attività in sola aggiunta #

Gli eventi definiti relativi alle segnalazioni e agli account sono registrati con:

Le voci del registro delle attività sono in sola aggiunta. Nessun utente, inclusi gli amministratori dell’organizzazione, può modificare una voce o eliminarne una singolarmente: i trigger PostgreSQL rifiutano modifica e truncate a livello di database. Le voci sono rimosse solo dal ciclo di conservazione o quando l’organizzazione stessa viene eliminata, e l’intervento privilegiato sul database resta un rischio residuo documentato (registro dei rischi R-08). Il registro delle attività completo è incluso nelle esportazioni dei casi in PDF per la verifica delle autorità.

Conservazione dei dati #

Le organizzazioni configurano il proprio periodo di conservazione: 12, 24, 36, 48 o 60 mesi dopo la chiusura di una segnalazione. Alla scadenza del periodo di conservazione, un processo in background elimina la segnalazione e i dati associati dalla produzione; le copie di backup scadono secondo un ciclo di vita distinto e documentato.

Le email inviate a un segnalante non lasciano alcun registro nello storico di invio di EthicsPortal, quindi nessun indirizzo di un segnalante resta dopo l’eliminazione della segnalazione.

Il Titolare resta responsabile della scelta di un periodo che rispetti il principio di limitazione della conservazione del GDPR e le norme nazionali applicabili in materia di conservazione dei registri.

Protezione CSRF #

Tutti gli invii di moduli sono protetti contro il cross-site request forgery mediante i token CSRF integrati di Rails.


Ciclo di vita di sviluppo sicuro #

EthicsPortal segue un ciclo di vita di sviluppo documentato per le modifiche che toccano il Servizio. Le fasi sono indicate qui affinché un addetto all’approvvigionamento possa mapparle ai controlli A.8.25-A.8.29 della ISO/IEC 27001:2022 (vedi la mappa dei controlli per la mappatura completa).

FasePrassi
Architettura e progettazioneLe funzionalità che introducono nuovi flussi di dati personali, sub-responsabili del trattamento o ambiti di autorizzazione sono valutate rispetto agli impegni su crittografia, controllo di accesso e registro delle attività documentati in questa pagina prima dell’implementazione.
Revisione delle modificheOgni modifica in produzione è verificata rispetto a una checklist scritta (copertura della crittografia, ambito di autorizzazione, emissione del registro delle attività, validazione dell’input, gestione dei segreti) prima del deploy. L’applicazione è automatica e non discrezionale: la suite di test completa e l’analisi statica vengono eseguite a ogni modifica e bloccano il deploy in caso di errore. La suite viene eseguita su un runner CI ospitato oppure su una postazione di sviluppo, con l’esecuzione completata registrata come stato del commit che la pipeline verifica prima di saltare l’esecuzione ospitata. I ruoli di approvazione delle modifiche sono descritti durante la revisione di procurement.
Codifica sicuraIl codice utilizza per impostazione predefinita le difese a livello di framework — query parametrizzate tramite ActiveRecord, strong parameters, escaping dell’output nelle viste, token CSRF, crittografia a livello di attributo, autorizzazione Pundit al confine del controller. Le deviazioni richiedono una giustificazione scritta.
Test di sicurezza in sviluppoL’analisi statica (Brakeman, bundler-audit, importmap audit) viene eseguita a ogni modifica. I test coprono i percorsi di autorizzazione, gli invarianti della crittografia a riposo, l’emissione del registro delle attività e l’applicazione dei limiti di richieste. Vedi gestione delle dipendenze e delle patch per la toolchain completa.
Separazione degli ambientiGli ambienti di produzione e non di produzione sono isolati. Nessun dato personale di produzione viene utilizzato al di fuori della produzione; gli ambienti di staging e sviluppo utilizzano fixture sintetiche.
Risposta alle vulnerabilitàLe segnalazioni ricevono avviso di ricevimento entro 2 giorni lavorativi (vedi divulgazione responsabile). Obiettivi: problemi critici risolti entro 7 giorni, di livello alto entro 30, medio entro 90. I problemi confermati che interessano i clienti attivi sono comunicati tramite il registro degli incidenti quando soddisfano i criteri di ambito del registro.

Gestione delle dipendenze e delle patch #

EthicsPortal non distribuisce componenti software a fine vita. L’applicazione gira su versioni attivamente supportate di Rails, Ruby, PostgreSQL e del sistema operativo sottostante; le release di sicurezza a monte vengono applicate su base continuativa.

Le dipendenze sono sottoposte a scansione continua in continuous integration:

I controlli sulla catena di fornitura limitano ciò che una release compromessa di una dipendenza può raggiungere:

I componenti che raggiungono il fine vita a monte vengono sostituiti o aggiornati prima della chiusura della loro finestra di supporto.


Infrastruttura #

ComponenteFornitorePosizione
Server applicativo e databaseHetznerNorimberga, Germania (UE)
Archiviazione dei fileHetzner Object StorageNorimberga, Germania (UE)
Copia di backup degli allegatiHetzner Object StorageFalkenstein, Germania (UE)
Email transazionaliMailjetFrancia (UE)
Elaborazione dei pagamentiStripeIrlanda; altri paesi con le garanzie applicabili — vedi l’Informativa sulla privacy

Backup e ripristino #

EthicsPortal opera tre livelli di backup complementari, tutti conservati all’interno dell’UE:

LivelloCosaDoveConservazione
DatabaseDump PostgreSQL giornalieri tramite un accessorio Kamal, cifrati con GnuPG simmetrico AES-256 sull’host prima del caricamentoHetzner Object Storage, Norimberga (UE)21 giorni per le versioni correnti; le versioni eliminate scadono dopo altri 7 giorni
ServerSnapshot completi del disco dell’host applicativoHetzner Cloud, Norimberga (UE)7 giorni
AllegatiOgni allegato cifrato è copiato, con la propria chiave per file, in un secondo bucket con controllo delle versioniHetzner Object Storage, Falkenstein (UE)Finché l’allegato esiste; versioni precedenti 28 giorni. Le registrazioni vocali originali vengono eliminate del tutto, senza conservare versioni precedenti

Obiettivi di ripristino. L’obiettivo del punto di ripristino (RPO) è di 24 ore. L’obiettivo del tempo di ripristino (RTO) è di 4 ore. Questi obiettivi figurano anche nell’accordo sul livello di servizio.

Test di ripristino. Un’esercitazione di ripristino viene eseguita automaticamente ogni mese tramite un workflow CI, e su richiesta, ripristinando l’ultimo dump in un ambiente usa e getta. Decifra il dump, lo ripristina, confronta ogni tabella con la produzione e poi avvia l’applicazione sul database ripristinato per confermare che una colonna cifrata si decifri ancora, che un allegato cifrato si apra con la chiave contenuta nel dump ripristinato e che ogni allegato più vecchio di un’ora abbia una copia nella posizione di backup, con una di queste copie aperta e verificata rispetto al relativo checksum — il solo conteggio delle righe non può distinguere un backup utilizzabile da un testo cifrato la cui chiave non corrisponde più. La freschezza dei backup è monitorata continuamente (avviso se il dump più recente è più vecchio di 36 ore).

Crittografia. Hetzner dichiara che Object Storage non cifra gli oggetti a riposo per impostazione predefinita, quindi i dump del database sono cifrati prima di lasciare l’host: GnuPG simmetrico AES-256, con la passphrase detenuta solo dal processo di backup e depositata fuori dalla macchina. I campi cifrati a livello applicativo con Rails ActiveRecord Encryption restano cifrati separatamente all’interno di ogni dump. Gli allegati sono cifrati a riposo con una chiave per ogni file (vedi allegati). Tali chiavi esistono solo nel database, quindi ogni dump cifrato le contiene. I file stessi non sono copiati nel dump. Ciascuno è archiviato a Norimberga e copiato, con la stessa chiave, in un secondo bucket a Falkenstein; entrambi mantengono le versioni precedenti per 28 giorni.


Esame operativo #

Alcuni materiali operativi sono condivisi durante la verifica in fase di approvvigionamento anziché pubblicati per intero sul web aperto, perché contengono dettagli infrastrutturali e di risposta più appropriati per una divulgazione controllata.

Tra gli argomenti disponibili su richiesta durante l’approvvigionamento figurano:


Divulgazione responsabile #

Se scopri una vulnerabilità di sicurezza in EthicsPortal, ti preghiamo di segnalarla a security@ethicsportal.eu. Ti chiediamo di:

  1. Non divulgare pubblicamente la vulnerabilità prima che abbiamo avuto la possibilità di affrontarla.
  2. Fornire dettagli sufficienti affinché possiamo riprodurre e correggere il problema.
  3. Non accedere né modificare i dati di altri clienti.
  4. Non eseguire attacchi denial-of-service né scansioni automatizzate massive, non tentare attacchi di social engineering contro il nostro personale e non inviare segnalazioni tramite il canale di segnalazione di un cliente.

Daremo avviso di ricevimento della tua segnalazione entro 2 giorni lavorativi e ci impegneremo a risolvere prontamente le vulnerabilità confermate.

Nessun bug bounty retribuito. La divulgazione non è ricompensata: non remuneriamo le segnalazioni di vulnerabilità e non firmiamo accordi di riservatezza, non accettiamo condizioni commerciali né teniamo chiamate come presupposto per ricevere una segnalazione. Invia l’asset interessato, i passaggi di riproduzione e l’impatto che hai accertato all’indirizzo indicato.

Ultimo aggiornamento: