l'analisi

Immuni e sicurezza delle informazioni: tutti i problemi e come risolverli

L’analisi della documentazione su Immuni pubblicata su GitHub e il primo codice pubblicato permette di capire meglio il progetto Immuni, ma anche a scoprire che tra i cinque principi fondamentali della progettazione e sviluppo non c’è la sicurezza delle informazioni. Ed è, ovviamente, un problema. Ecco come rimedia

26 Mag 2020
Ioannis Tsiouras

Consulente, Autore, Assessor/Auditor e Formatore - Information Security e Privacy, Risk Management, Business Continuity e Sistemi di Gestione per la Qualità


A un’analisi di quanto pubblicato su GitHub sull’App Immuni , è preoccupante che tra i cinque principi fondamentali inclusi nella progettazione e sviluppo per il contact tracing – utilità, accuratezza, scalabilità, trasparenza e privacy – non c’è la sicurezza delle informazioni. La differenza tra privacy e sicurezza delle informazioni è essenziale e l’abbiamo spiegata in un lavoro precedente e per garantire la seconda non basta certo soltanto il contributo di Google e Apple.

Diverse perplessità sono state sollevate anche dal Copasir, che in un Rapporto del 13 maggio evidenzia diversi aspetti critici sull’App Immuni che potrebbero ridurre l’efficacia del processo di contact tracing.

Le perplessità di Copasir, che andremo ad approfondire, sono anche di tutti gli utenti dell’App Immuni, e si possono eliminare solo con il lavoro serio, responsabile e consapevole di tutti gli attori coinvolti, a partire dal Governo e dal Ministero della salute, dalla società Bendig Spoons, dalla Sogei per citarne alcuni.

Né la pubblicazione del codice, di ieri, aiuta a gettare ulteriore luce sugli aspetti di sicurezza, mancando per altro tutta la parte relativa al server di backend.

Ma vediamo quali sono, nel dettaglio, le criticità indicate dal Copasir e i punti più critici sul fronte della sicurezza e come affrontarli, prima di entrare nei dettagli più tecnici e pratici dell’app.

Le critiche di Copasir

Copasir mette in evidenza i rischi relativi alla privacy e alla sicurezza dei dati personali e mette in dubbio la decisione di scegliere una società privata (Bending Spoons S.p.A.) per progettare, sviluppare, manutenere e migliorare l’applicazione nel tempo. Copasir evidenzia rischi non trascurabili sul piano geopolitico che possono essere difficilmente mitigabili. Oltre all’affidamento dell’intero sistema di contact tracing e dell’App Immuni ai privati, anche se considerati affidabili, esiste anche il problema della rete Content Delivery Network (CDN), in quanto nessuna azienda italiana risulterebbe in grado di fornire la tecnologia impiegata per la notifica agli utenti dell’eventuale esposizione al contagio. Il rischio è riferito a potenziali manipolazioni dei dati per finalità di diversa natura: politica, militare, sanitaria o commerciale.

Una ulteriore perplessità di Copasir riguarda la compatibilità dei vari sistemi di contact tracing europei, auspicata dall’Ue stessa, ma senza però preparare linee comuni. Questa mancanza di comunicazione tra le App europee complica assai le prospettive del turismo.

Copasir percepisce anche un determinato rischio dovuto anche alle scelte tecnologiche. Le preoccupazioni dei vari membri del Comitato si riferiscono soprattutto alla tecnologia Bluetooth che risulta particolarmente vulnerabile a intrusioni i cui effetti, in questo contesto, potrebbero essere tali da diffondere allarme ingiustificato nella popolazione, ad esempio mediante l’invio di messaggi falsi o fraintendibili, relativi, inter alia, allo stato di salute o al possibile contagio dei destinatari.

Information Security

Veniamo quindi alla sicurezza delle informazioni e a come aumentarla. Come vedremo di seguito, l’architettura decentralizzata richiede l’utilizzo della rete CDN, cioè una rete di server altamente distribuita sul territorio nazionale che consente di gestire efficacemente la mole di connessioni che si prevede per il funzionamento della App Immuni e un numero di server con database per memorizzare i dati. In tal modo, gli utenti in tutta l’Italia possono visualizzare gli stessi contenuti di alta qualità senza rallentare i tempi di caricamento. Si tratta di un sistema con tecnologia internet, GPS, WiFi e altro e i dati coinvolti nelle transazioni dovrebbero essere protetti al fine di prevenire trasmissioni incomplete, errori di instradamento, alterazione non autorizzata di messaggi, divulgazione non autorizzata, duplicazione non autorizzata di messaggi o attacchi di tipo replay.

Pertanto, è evidente che la sicurezza delle informazioni del sistema contact tracing necessita un’attenzione particolare.

Presentiamo qui in forma sintetica alcune attività che se vengono implementate possono aumentare la sicurezza delle informazioni.

Test funzionali e non funzionali

Per l’App Immuni ci si aspetta un piano di verifica e validazione, le specifiche e i rapporti dei test. Questi documenti dovrebbero sviluppare:

  • la tipologia delle verifiche e dei test: code inspection, test funzionali e test non funzionali (relativi ai requisiti prestazionali, di carico, di configurazione, di stress e di security,)
  • i livelli di test (unit test, test di integrazione, test di sistema e di collaudo)
  • i casi e le catene di test,
  • la preparazione degli ambienti di test,
  • i risultati attesi,
  • i risultati ottenuti,
  • la gestione degli errori (bug fixing).

Vulnerability Assessment

Un inventario degli asset del sistema completo e aggiornato è un prerequisito per un’efficace gestione delle vulnerabilità tecniche.

Sarebbe pertanto necessario eseguire valutazioni per identificare le potenziali vulnerabilità tecniche.

Il vulnerability assessment nell’App Immuni può essere espletato attraverso la Code Review per analizzare il codice, allo scopo di scoprire eventuali vulnerabilità nel codice sorgete e che non siamo presenti altre funzioni nascoste, come ad esempio il non accesso alla rubrica dei contatti del proprio terminale, non accesso alle impostazioni del terminale e altro codice maligno per la creazione di algoritmi di generazione delle chiavi che possono sostituire quelli dell’Immuni e invia messaggi falsi ad altri terminali o impedire che vengano inviati messaggi per notificare chi è a rischio.

Per il vulnerability assessment possono essere utilizzati anche strumenti automatici per eseguire test di sicurezza allo scopo di valutare l’efficacia delle misure di sicurezza. Si possono eseguire:

  • test di valutazione delle vulnerabilità dell’intero sistema con strumenti automatici (automated vulnernability scanning tool),
  • penetration test,
  • test per la sicurezza dei servizi applicativi su reti pubbliche, per la protezione delle transazioni dei servizi applicativi.

Test di accettazione del sistema

Il Governo, prima di installare il sistema in produzione ed effettuare il deployment dell’applicazione ai cittadini, dovrebbe eseguire il test di accettazione. Lo scopo del test di accettazione è quello di valutare la conformità del sistema ai requisiti delle specifiche funzionali, prestazionali e di sicurezza, di caratterizzare l’affidabilità del sistema e quantificare l’intervallo di confidenza.

Protezione del database centralizzato e disaster recovery

WEBINAR - 3 NOVEMBRE
CISO as a Service: perché la tua azienda ha bisogno di un esperto di Cyber Security?
Sicurezza
Cybersecurity

La protezione della riservatezza, dell’integrità e della disponibilità dei dati delle persone positive al Covid-19 memorizzati nei database centralizzati dovrebbe essere oggetto del risk assessment eseguito secondo la metodologia delle norme ISO/IEC 27001 e ISO/IEC 27005.

Per il ripristino dei dati e dell’intero sistema in tempi rapidi e secondo le necessità del servizio contact tracing è necessario implementare il Disaster recovery.

Entriamo ora nel merito della strategia del Governo, delle caratteristiche tecniche dell’app e delle sue funzioni pratiche.

Coordinamento delle azioni

Considerando che l’App Immuni è un sistema altamente complesso con componenti diversificate, alcune delle quali di alta tecnologia ed è esposta alle minacce cyber, la prima cosa che avrebbe dovuto fare il Governo doveva essere quella di nominare un Project Manager con responsabilità e autorità stabilite per la conduzione e la gestione del progetto nella sua integrità e con l’obiettivo di completare il progetto nei tempi e nei budget previsti e con i livelli qualitativi, di privacy e di security stabiliti a priori e per la soddisfazione degli stakeholder. È ovvio che la persona che deve occupare tale ruolo dovrebbe avere le caratteristiche adeguate e la capacità per risolvere anche alcuni problemi come la compatibilità dell’App con i sistemi degli altri principali Paesi europei, come anche la questione del Content Delivery Network (CDN) considerando il fatto che non esistono fornitori nazionali.

Il coordinamento coerente, efficace ed efficiente dei fornitori coinvolti nella realizzazione del sistema contact tracing è un requisito critico per la riuscita del progetto.

L’architettura del sistema contact tracing

Il sistema Contact tracing è composto da diversi elementi hardware e software.

Un elemento importante sono le API di Apple e Google. Immuni per espletare le sue funzioni sfrutta il framework di notifica dell’esposizione creato appunto da Apple e Google. Questa collaborazione permette all’App di essere un sistema resiliente. La soluzione include interfacce di programmazione app (API) e tecnologie a livello di sistema operativo per favorire l’attivazione del tracciamento dei contatti. Il piano dei due colossi prevede due fasi. La prima fase è già conclusa, in anticipo rispetto alla scadenza prevista inizialmente e le API sono disponibili con la versione 13.5 di iOS per iPhone e con l’aggiornamento dei Google Mobile Services tramite il Play Store di Android.

La seconda fase prevede il rilascio di una piattaforma più robusta e la conclusione è prevista nei prossimi mesi. Apple e Google lavoreranno per rendere disponibile una più ampia piattaforma di contact tracing basata su Bluetooth, integrando questa funzionalità nei sistemi operativi. Si tratterebbe di una soluzione più solida rispetto a un’API e consentirebbe a un maggior numero di persone di partecipare.

Entrambe le soluzioni sfruttano la potenza della tecnologia Bluetooth per facilitare la notifica dell’esposizione. Una volta abilitato l’utente, lo smartphone invia regolarmente tramite Bluetooth un codice casuale d’identificazione (una stringa di numeri casuali che non sono legati all’identità dell’utente). Per aumentare la protezione il codice casuale viene modificato nel giro di una decina di minuti. Gli smartphone in prossimità intercettano questi segnali e trasmettono a loro volta anche i loro codici. Quando uno smartphone riceve un codice lo registra e lo memorizza in modo sicuro.

L’architettura decentralizzata richiede necessariamente l’utilizzo di un Content Delivery Network (CDN), cioè una rete di server altamente distribuita che consente di gestire efficacemente la mole di connessioni che si prevede per il funzionamento della App Immuni e di server con database per memorizzare i dati dei pazienti positivi Covid-19, messi a disposizione del Servizio Sanitario Nazionale e gestiti, anche in forma aggregata o comunque anonima, dal Ministero della Salute, responsabile in ultima analisi del trattamento degli stessi, tramite la società Sogei. Compito della Sogei dovrebbe essere la gestione delle infrastrutture del sistema, la gestione del servizio di CDN e la garanzia della sicurezza cibernetica (secondo il rapporto Copasir).

Le funzioni principali dell’App Immuni

I documenti pubblicati su Github descrivono le funzioni che l’App mette a disposizione dell’utente. L’App richiede il minimo coinvolgimento dell’utente.

Quando l’utente decide di procedere con l’installazione, l’App gli chiede l’autorizzazione a inviare le notifiche di esposizione e a sfruttare il Bloetooth Low Energy (BLE) che sarà attivo in background per comunicare con gli altri smartphone.

L’unico dato di identificazione da fornire è la provincia di appartenenza.

Welcome

L’App associa a ogni smartphone un codice casuale generato con un algoritmo casuale e crittato e non contiene informazioni relative allo smartphone e all’utente. Il codice casuale ogni ora cambia diverse volte allo scopo di tutelare al meglio la privacy.

Quando due persone si incontrano, i loro smartphone con l’App Immuni installata si scambiano i rispettivi codici casuali tramite il Bluetooth Low Energy. L’App in questo modo riesce a tenere traccia del contatto avvenuto, ma non può conoscere l’identità delle due persone e nemmeno il luogo dove è avvenuto il contatto.

Il sistema fornisce sia una stima del tempo in cui lo smartphone è stato in contatto con un secondo smartphone, sia la distanza approssimativa. Per una distanza approssimativa, il sistema confronta l’intensità del segnale Bluetooth tra i due smartphone in contatto. Più i dispositivi sono vicini, maggiore è la potenza del segnale registrata. Questa potenza del segnale può variare significativamente in base a fattori come ad esempio il modo in cui viene tenuto lo smartphone.

How It Works

Con frequenza giornaliera, circa, l’App Immuni scarica dal server sullo smartphone un elenco di codici di persone che sono state confermate positive al COVID-19 da parte degli operatori sanitari. L’App confronta i codici registrati nello smartphone con i codici delle persone positive a Covid-19 dell’elenco scaricato. Se c’è una corrispondenza tra i codici memorizzati sul dispositivo e un codice dell’elenco scaricato dei positivi, l’utente viene avvertito e viene consigliato sui passi da seguire successivamente.

La notifica di esposizione ha come obiettivo specifico l’avviso tempestivo, particolarmente importante per rallentare la diffusione della malattia dal momento che il virus si può diffondere in modo asintomatico.

Exposure Notification and Suggestions

L’App procede quindi a raccomandare agli utenti a rischio quello che devono fare. Le raccomandazioni possono includere l’autoisolamento (che aiuta a ridurre al minimo la diffusione della malattia) e il consiglio di contattare un medico (in modo che l’utente possa ricevere le cure più appropriate e ridurre la probabilità di sviluppare gravi complicanze). Le raccomandazioni esatte dipendono dalla provincia in cui l’utente vive, poiché politiche diverse possono applicarsi a aree diverse.

Per registrare la positività al Covid-19 è necessario l’intervento del personale sanitario, in modo da evitare false segnalazioni. In pratica, le autorità sanitarie forniscono un codice univoco (codice molto semplice per evitare errori) che la persona positiva dovrà inserire in una sezione apposita dell’App Immuni. Una volta fornito il codice, le autorità sanitarie inseriranno le informazioni nel database centrale, così da far partire le notifiche verso tutti gli utenti entrati in contatto con la persona positiva.

Esistono ancora perplessità?

La tecnologia iOS e Android è nelle mani delle autorità sanitarie di tutto il mondo che possono decidere come usarla. Non si tratta di un’applicazione, ma di un’interfaccia (API) con approcci e tecnologia resiliente che dovrà essere integrata dalle autorità sanitarie nelle loro App, come la App Immuni, che verranno quindi installate dalle persone sui propri terminali.

Paola Pisano Ministra per l’Innovazione Tecnologica e la Digitalizzazione non ha dubbi e dichiara che “L’applicazione di tracciamento dei contatti usufruisce dei sistemi operativi forniti da due gruppi di livello internazionale perché questo ne accresce l’efficienza in un quadro di tutela della privacy. Aumenta anche le possibilità di rendere interoperabile l’applicazione italiana con altre utilizzate all’estero. Viene facilitata la condivisione dei codici di cittadini stranieri trasmessi in forme tali da proteggere la riservatezza degli utenti.”

Guardando dentro i dispositivi tecnologici, dentro le reti di trasmissione e il modo con il quale si usa la tecnologia ci accorgiamo che non basta il contributo di Apple e Google per garantire la sicurezza delle informazioni. La crittografia di tutti i metadati associati al traffico Bluetooth per rendere più difficile l’identificazione di una persona (ad esempio, associando la potenza di trasmissione a un particolare modello di smartphone) è solo una parte della security.

Se i segnali Bluetooth usano algoritmi di crittografia robusti, questo non può eliminare le distrazioni o le mal intenzioni degli sviluppatori che inseriscono nel programma le password in chiaro (è successo nell’App per il contact tracing in Olanda), o in altri casi l’inserimento nel codice sorgente script che associano link non autorizzati.

Non si può sottovalutare anche la minaccia del social engineering usata da truffatori e da mal intenzionati al fine di spingere gli utenti a scaricare versioni fasulle delle App ufficiali di tracciamento che contengono funzioni nascoste di raccolta di dati, o anche funzioni che falsificano l’identità con la conseguenza di prendere il controllo remoto dello smartphone di chi le scarica e le installa.

Il problema che potrebbe creare danni ai cittadini con conseguenze sulla vita e sulla morte degli stessi è quello relativo alle indicazioni non affidabili, cioè risultati di falsi positivi e negativi. Per far fronte a questo problema è necessario valutare l’affidabilità del sistema e quantificare l’errore standard considerato accettabile. In questo caso si potrebbe anche pensare che l’App Immuni non effettua nessuna diagnosi, ma raccoglie e incrocia i dati fornendo indicazioni e suggerimenti su come procedere per eseguire l’esame a tampone su base volontaria.

Anche l’alimentazione del database centrale da parte degli operatori sanitari con dati delle persone positive al Covid-19 è soggetta a vulnerabilità per disattenzione o atro. L’immissione di codici inesatti possono dare indicazioni false ai dispositivi degli utenti e creare confusione.

Privacy di Immuni

Apple e Google, come anche Bending Spoons assicurano e tranquillizzano i cittadini che le loro soluzioni sono progettate nel rispetto della privacy seguendo il principio “data protection by design and by default”.

Ecco alcune misure del sistema contact tracing per rispettare la privacy degli utenti:

  • L’app non raccoglie dati personali che rivelino l’identità dell’utente. Ad esempio, non raccoglie il nome, l’età, l’indirizzo, l’e-mail o il numero di telefono dell’utente.
  • L’app non raccoglie dati di geolocalizzazione, inclusi dati GPS. I movimenti dell’utente non vengono tracciati in alcuna forma.
  • I dati memorizzati sul dispositivo sono crittografati.
  • Tutte le connessioni tra l’app mobile e il server sono crittografate.
  • Tutti i dati, archiviati sul dispositivo o sul server, vengono eliminati quando non sono più rilevanti (generalmente entro poche settimane dalla raccolta e comunque entro il 31 dicembre 2020).
  • Il codice casuale identificativo di prossimità dell’utente è a rotazione e cambia in media ogni 15 minuti e richiede la chiave di esposizione temporanea per essere correlato a un contatto. Questo comportamento riduce il rischio di perdita della privacy derivante dalla trasmissione dei codici identificatori.
  • I codici casuali identificativi di prossimità ottenuti da altri dispositivi vengono elaborati esclusivamente sul dispositivo.
  • Gli utenti decidono se contribuire alla notifica dell’esposizione.
  • Se un utente è diagnosticato con COVID-19, egli dovrebbe fornire il proprio consenso per condividere le chiavi di diagnosi con il server centralizzato.
  • Gli utenti hanno trasparenza nella loro partecipazione nella notifica dell’esposizione.
  • Il Ministero della salute è il responsabile del trattamento dei dati, quindi decide quali dati raccogliere e come usarli. In ogni caso, i dati verranno utilizzati esclusivamente allo scopo di contenere l’epidemia di COVID-19 o, in forma completamente anonima o aggregata, per la ricerca scientifica.
  • I dati saranno archiviati su server situati in Italia e gestiti da entità controllate pubblicamente.

Riferimenti

Ioannis Tsiouras, GDPR-Privacy Risk Management, Edizioni Youcanprint (libro ed Ebook in tutti gli E-store).

WHITEPAPER
Come semplificare il sistema di gestione delle identità digitali?
Sicurezza
IAM

@RIPRODUZIONE RISERVATA

Articolo 1 di 4