Ieri diverse testate hanno fatto sapere che Evariste Gal0is è formalmente indagato con l’accusa di accesso abusivo a sistema informatico, a causa della disclosure fatta ai danni del M5S l’estate scorsa. In quel periodo Evariste, dopo aver trovato delle vulnerabilità nel sito del partito, avvisò via mail i gestori dei problemi trovati rendendo successivamente pubblica la notizia. L’aver scoperto (e reso pubblica) una vulnerabilità di un partito politico (il movimento della rete!1!) ha creato un caos mediatico infinito, tra chi lo sosteneva e chi lo attaccava, fino ad arrivare alla brutta notizia della denuncia e conseguente indagine, che, spero per lui, avrà un lieto fine.
Questo significa che chiunque trovi una vulnerabilità in un sito deve aver paura di segnalarla o pubblicarla? No, no e di nuovo no. Ma andiamo con ordine.
Gli obiettivi di una divulgazione di vulnerabilità, secondo la documentazione ISO/IEC 29147:2014, includono:
Dal punto di vista di un azienda informata di una possibile vulnerabilità, i passi da seguire sono quindi molto semplici e riportati nella documentazione sopra citata
Dal punto di vista dell’utente, il discorso si fa un pelo più complicato.
Identificare una falla in un sito, specialmente per chi lavora nel campo della sicurezza informatica, può essere questione di attimi. Durante la navigazione sul mio sito preferito inserisco un apice nella ricerca, un punto e virgola nel campo password, un qualsiasi carattere che potrebbe mandare in crisi l’applicazione web, la quale ritorna un bel messaggio d’errore, stuzzicando di conseguenza la mia curiosità. Essa mi porta poi a testare attacchi base, come SQL Injection o vettori XSS, che non interrompono il servizio offerto dal sito internet, di fatto non hanno reali intenzioni maligne, ma servono solo a verificare se il sito ha problemi di sicurezza.
Ma anche senza nessuna interazione, tramite semplici ricerche su Google si possono trovare centinaia di siti vulnerabili, file di configurazione, di backup, database interi!
L’accesso a queste informazioni non è reato, non abbiamo aggirato protezioni, non abbiamo passato centinaia di ore ad individuare una falla per sottrarre i dati degli utenti, e, di fatto, non c’è nessun accesso abusivo. Ora sappiamo che l’applicazione è potenzialmente vulnerabile, abbiamo anche trovato diversi dati sensibili appartenenti agli iscritti. La strade che si possono percorrere sono diverse, vediamone un paio.
La comunità black hat utilizza solitamente questa modalità, ossia la non divulgazione della vulnerabilità. Questa modalità ha diversi svantaggi e ben pochi vantaggi:
Da notare anche che, in assenza di misure di sicurezza, l´introduzione in sistemi informatici non costituisce reato!
Bene, abbiamo deciso di segnalare la falla ai diretti interessati, ma come facciamo? Chiamiamo l’assistenza clienti dicendogli che con una SQL Injection possiamo dumpare il database e potenzialmente creare migliaia di euro di danni all’azienda? Il pattern da seguire è e dovrebbe essere uno, ma si sa, nulla è mai semplice come sembra.
Che sia un sito o un software, il primo passo da seguire è l’identificazione di chi possiede il prodotto vulnerabile e la conseguente collezione di indirizzi mail o contatti da poter utilizzare per la segnalazione. Alcune fonti possono essere:
Prima di qualsiasi segnalazione, verificate se l’azienda/sito in oggetto abbia o meno una policy sulla disclosure di vulnerabilità; solitamente si può trovare con una semplice ricerca nel sito o cercando su un motore di ricerca query del tipo ‘vulnerability disclosure inurl:sitovulnerabile’. Nel caso sia presente, i dettagli e le informazioni dettagliate saranno presenti in quella pagina
L’obiettivo del cercare più contatti possibili è l’avere maggiori probabilità di ricevere una risposta. Una volta contattati, è solo questione di tempo e di attesa. Esso dipende da molti fattori (ad esempio la gravità della vulnerabilità) ed è principalmente soggettivo (Luigi Auriemma impone il limite a una/due settimane di attesa). Scaduto il tempo si hanno due possibilità:
Nel caso in cui nessuno si faccia sentire dopo il tempo limite, un’altra possibilità è contattare il CERT Italiano, il quale prenderà in gestione la vulnerabilità e si occuperà di segnalare nuovamente all’azienda il problema. Mi è capitato diverse volte di doverli contattare e sono stato piacevolmente colpito, mentre le mie mail erano perennemente senza risposta, loro son sempre stati in grado di raggiungere l’azienda. Oltre al CERT Nazionale, segnalo anche la presenza di:
Se neanche i magici contatti del CERT funzionano e passato altro tempo il problema è ancora li, l’ultima spiaggia etica è una segnalazione al garante della privacy, il quale, una volta verificata che c’è un effettiva violazione della privacy degli utenti da parte dell’azienda, prenderà, si spera in tempi brevi, provvedimenti contro la stessa.
Questo è l’ultimo passaggio, ed è solitamente il più rischioso.Non c’è stata risposta dall’azienda, il CERT non è riuscito a contattarla e i dati degli utenti sono ancora lì, disponibili a chiunque sia intenzionato a prenderli. Pubblicare un articolo su ciò che si è trovato è effettivamente una buona idea, da risalto alla notizia e l’azienda è costretta a correre ai ripari, pena la gogna mediatica e la possibilità concreta che un black hat sfrutti davvero i problemi con intenzioni non troppo buone.
Questo però ci porta ad un potenziale rischio di denuncia (come nel caso di Evariste), in quanto il produttore potrebbe erroneamente pensare che abbiamo avuto accesso ai dati, li abbiamo scaricati e visionati, magari anche condivisi.
Questi passi non vogliono essere una regola da seguire, ma solo consigli da chi è passato più volte su questa strada. Le regole che mi sento di dare son molto semplici:
Se avete altre idee, son più che disponibile a modificare l’articolo, inserendo quelle più utili (aggiunto policy di vulnerability e CERT-PA, grazie alla segnalazione di glamismac)