Uno dei concetti più affascinanti e contro-intuitivi della Sicurezza Informatica, per i non addetti ai lavori, prende il nome di “security through obscurity” (sicurezza tramite segretezza): indica le metodologie – poco lontane dalla farsa – per creare un livello di percezione di sicurezza attraverso trucchetti non immediatamente conoscibili dalla gran parte della popolazione. Ne è l’esempio l’idea che non pubblicare un algoritmo basti per renderlo sicuro o che l’impedire di usare un determinato dispositivo sia sufficiente a garantire la sicurezza dei metodi utilizzati.
Ovviamente, di base, è una enorme cavolata: un algoritmo è sicuro se la teoria sottostante è solida e comprovata come adatta a reggere un attacco, e raramente puoi obbligare l’utente ad usare il dispositivo che vuoi tu.
In tutto questo sopraggiunge l’applicazione della Regione Siciliana “Sicilia SiCura”, nata per monitorare il contagio con una app – per lo meno nei comunicati – “dedicata al monitoraggio attivo di uno dei principali veicoli di ingresso del virus: i contagiati asintomatici che inconsapevolmente agiscono da moltiplicatori di esposizione al rischio da Covid-19”.
Tutti coloro che si sono registrati attraverso i canali messi a disposizione dalle autorità sanitarie, come il sito www.siciliacoronavirus.it, ricevono un sms (e una mail) con un username e un link per la creazione della password che permetterà l’accesso alla webapp.
Il messaggio ricevuto ha questa forma di base:
REGIONE SICILIANA: Username XXXXXXX-YYYY Crea password SiciliaSiCura: https://siciliasicura.costruiresalute.it/p/XXXXXXXXXX
L’esempio del contenuto degli SMS
Con l’SMS si accede alla applicazione e tutto è risolto.
…o non proprio…
Problema n.1
Pensare di poter decidere quale applicazione userà l’utente e fidarsi del browser
L’applicazione parte “bene”: invia un SMS che rimanda ad un indirizzo Internet ed avendo bisogno della geolocalizzazione “controlla” che l’utente sia su uno smartphone (dispositivo che si suppone abbia un GPS) e blocca l’accesso all’utente se non è un dispositivo compatibile, come ad esempio il mio browser Internet del mac, il fidato Chrome.
Ma non conoscere come funzionano i sistemi che si usano (in questo caso i sistemi di riconoscimento dei dispositivi) e non avere le nozioni base di Information Security per comprendere che il riconoscimento del dispositivo si basa solo ed esclusivamente sulla “dichiarazione” che questo fa in collegamento – una cosa come “ciao sito, sono un Mac con Chrome” – genera come in questi casi “mostri” di Security Through Obscurity.
Infatti basta impostare la barra degli strumenti dello sviluppatore di Chrome per modificare questo parametro, modificare come il browser si identifica (“Hey, ciao sito! Sono un Android!”) ed avere direttamente la schermata corretta, invalidando con un solo colpo tutta l’idea di base che gli utenti utilizzeranno un cellulare…
Ma siamo ancora punto-e-a-capo: la applicazione mi dice che è utilizzabile solamente all’interno della regione Siciliana, e quindi, parrebbe, niente da fare… Tanto lavoro per nulla? Non proprio…
Problema n.2
Pensare di poter tracciare l’utente e fidarsi del GPS
Ma quindi, ora, che possiamo fare?
Ma non conoscere come funzionano i sistemi che si usano (in questo caso i sistemi di riconoscimento dei dispositivi) e non avere le nozioni base di Information Security per comprendere che il riconoscimento della posizione “tramite GPS” si basa solo ed esclusivamente sulla “dichiarazione” che questo fa in collegamento – una cosa come “Ciao sito! Il mio GPS mi dice che sono QUI” – genera come in questi casi “mostri” di Security Through Obscurity.ù
Ma partiamo dall’inizio: prima dobbiamo sapere qualcosa coordinata, per esempio quelle del bellissimo Museo Storico di Catania chiedendole a Google:
Subito dopo impostare sempre dalla degli strumenti dello sviluppatore di Chrome la comoda funzionalità di “Sensors” (sensori)… ed impostare la mia posizione ad una qualunque coordinata nel mondo con un click.
Ancora una volta, la posizione NON si basa sulla sensoristica, ma su quello che il sistema dichiara al sito web (o ad una app) come posizione: modificare come il browser si identifica (“Hey, ciao sito! Sono a Catania, guarda che mare!”) è perfettamente sufficiente ed avere direttamente la schermata corretta, invalidando con un solo colpo tutta l’idea digeo-localizzare gli utenti con un cellulare…
Problema 3
Un SMS che manda a un sito web? Davvero?
Chiunque abbia pensato che mandare un SMS con un link da cliccare che porta ad un sito web pare essere vissuto fuori dalla rete – e senza alcuna cognizione di sicurezza informatica – per gli ultimi 10 anni.
L’idea stessa è non particolarmente intelligente, perché posso tranquillamente mandare SMS a pioggia ad utenti invitandoli a cliccare per identificarsi, avere uno sconto, minacciandoli altrimenti di multarli o molti altri modi poco simpatici di coercizione. E indirizzarli ad un sito web che installa programmi malevoli.
Ed incentivare questo tipo di condotta, addirittura facendo sì che un utente attenda ansiosamente un sms con un link pronto a cliccarlo è, nella migliore delle ipotesi, una pessima, pessima idea…
Problema 4
Come si risolve tutto questo?
Semplice: non si risolve.
O, citando il Secondo Pricipio di Kerckhoffs postulato in “La cryptographie militaire” per essere sicuro:
‘Il sistema non deve richiedere segretezza e può essere rubato dal nemico senza causare problemi’
se vi interessa un bell’approfondimento qui
Il motivo per cui il mercato della sicurezza informatica continua ad essere florido è che spesso non è facile trovare soluzioni a problemi apparentemente semplici. Ed è invece molto facile sottovalutarli ed ignorarli, provocando a posteriori disastri.
La stratificazione delle tecnologie, le capacità di virtualizzazione e emulazione, gli standard e le consuetudini nate per essere funzionali e non sicure (come la geolocalizzazione) rendono la creazione di un sistema sicuro un lavoro complesso che non si può “mettere in sicurezza” come ultimo tassello, ma deve essere pensato come sicuro all’origine.
Non è questo il caso. Una soluzione messa in opera senza – evidentemente – aver coinvolto alcun esperto e pensata funzionalmente e non strategicamente, circostanza che consente ad un ragazzino alla prima pagina di “Sicurezza Informatica per studenti del Primo Ciclo” di sconfiggere le misure messe in atto, usare qualunque sistema e fare credere alla app di trovarsi ovunque lui desideri essere.
E, sia chiaro, in questo caso non si tratta di “falle da correggere”, ma proprio di aver scelto a monte una serie di tecnologie che a monte – per come sono strutturate e costruite – non possono minimamente garantire un risultato affidabile per questo tipo di tracciamento. Tutto qui.
Anche solo pensare che una webapp sia un metodo proponibile per una rilevazione geografica affidabile è qualcosa che fa venire le coliche a chiunque si sia mai occupato anche marginalmente di sicurezza.
E che fa pensare – molto seriamente – come sia necessario pensare strategicamente le ben più importanti Applicazioni di Contact Tracing nazionali di cui sentiamo molto parlare, dove si spera siano previste analisi di sicurezza molto più rigide, con il supporto di esperti di adeguata professionalità e calibro e pensate per prima cosa per assicurare la correttezza del dato, la inviolabilità e non manomettibilità del sistema, la sicurezza dei dati, la sicurezza degli archivi e soprattutto la sicurezza degli utilizzatori.
Non solamente questo: è anche necessario che venga istituita al più presto una squadra operativa che controlli proprio che le numerose iniziative territoriali e governative siano scevre da problematiche di questo tipo (e quelle ben più serie). Ne va della sicurezza dei cittadini e della Nazione.
E in caso così non fosse… Beh, credo che tutte questa App le troveremo spesso in una serie di report degli esperti… :)
#EstoteParati!