La divulgazione delle vulnerabilità è un processo importante per proteggere i nostri sistemi. Che cosa succede se la stessa divulgazione dovesse essere vulnerabile?
La divulgazione delle vulnerabilità rende di dominio pubblico le informazioni su difetti nei sistemi operativi, applicazioni, firmware e processi aziendali. Lo scopo è quello di garantire che i produttori riparino i difetti mentre gli utenti possono mitigarli prima che vengano scoperti e sfruttati anche dai criminali.
Le vulnerabilità vengono di solito scoperte grazie alle meticolose ricerche degli esperti di sicurezza. Poiché anche i cyber criminali e alcune nazioni le cercano per scopi illegittimi – e non c’è modo di sapere se le abbiano identificate – è essenziale che vengano risolte non appena scoperte e prima che vengano sfruttate. La divulgazione di vulnerabilità da parte di chi è mosso solo dalle buone intenzioni è una parte essenziale di questo processo.
Dobbiamo comprendere tre termini: vulnerabilità (un difetto o un bug nel codice); exploit (una metodologia utilizzata per sfruttare la vulnerabilità); e patching (correzione della vulnerabilità da parte del fornitore e implementazione della correzione da parte dell’utente).
Vulnerabilità zero-day
È utile comprendere il concetto di zero-day (0-day). Le vulnerabilità zero day sono note a un potenziale aggressore, ma non ancora conosciute, e quindi non ancora risolte, dal produttore. Di conseguenza, in teoria non esiste alcuna difesa contro un exploit zero day sviluppato per una vulnerabilità zero day.
Tecnicamente, il termine si applica al periodo tra scoperta e correzione. Questo è un periodo variabile a seconda del tempo impiegato dal fornitore per risolvere il problema. In termini pratici, tuttavia, la vulnerabilità rimane una vulnerabilità zero day per le persone fino a quando la patch del fornitore non viene implementata sul computer dell’utente.
Una complicazione di questa situazione è la vulnerabilità che è conosciuta solo dai criminali e tenuta segreta. È stata scoperta, quindi tecnicamente è una vulnerabilità zero day, ma non è nota pubblicamente. In realtà non esiste ma nella pratica esiste. Queste sono le famigerate “incognite sconosciute” della sicurezza e possono essere sfruttate dai criminali in qualsiasi momento.
Divulgazione
La divulgazione delle vulnerabilità è un processo importante per proteggere i nostri prodotti. I ricercatori di sicurezza trovano i difetti, li segnalano ai produttori che li riparano.
Esistono però due approcci di base alla divulgazione della vulnerabilità da parte dei ricercatori, che sono caratterizzati dai termini “divulgazione completa” e “divulgazione responsabile”.
Divulgazione completa
Il concetto di divulgazione completa implica la pubblicazione immediata e completa di tutti i dettagli della vulnerabilità scoperta, possibilmente includendo un exploit per dimostrare la vulnerabilità. Gli assertori di questa dottrina credono che sia l’unico modo per assicurarsi che il fornitore risolva il problema con tutta la fretta possibile.
La correzione dei difetti del codice può essere un esercizio dispendioso in termini di tempo e denaro per il fornitore e riconoscere che hanno venduto software con bug può danneggiare la loro reputazione. Storicamente, molte aziende hanno ritenuto che meno persone siano a conoscenza della debolezza, più sicuro rimanga il loro prodotto (e, naturalmente, consente loro di risparmiare tempo, denaro e reputazione). Pertanto non fanno nulla o lo fanno molto lentamente.
Tuttavia, i ricercatori sono consapevoli che se riescono a trovare il difetto, possono farlo anche gli altri. C’è sempre la possibilità che il difetto sia una delle incognite sconosciute che potrebbero essere sfruttate – possibilmente su vasta scala – in qualsiasi momento. L’unica soluzione è che il fornitore risolva il problema il più rapidamente possibile e la divulgazione completa è considerata da alcuni ricercatori come il modo migliore per assicurarsi che ciò avvenga realmente.
Il punto debole di questo argomento è che la piena divulgazione spiega il difetto anche ai criminali. La divulgazione completa della vulnerabilità spesso degenera in una corsa tra il produttore e i criminali informatici, il primo per risolverlo e gli altri per sfruttarlo.
Divulgazione responsabile
La divulgazione responsabile è il percorso preferito da quasi tutti i fornitori e le società di sicurezza. Nella sua definizione semplicistica, si tratta della divulgazione privata della vulnerabilità al solo fornitore, senza alcuna divulgazione pubblica fino a quando la vulnerabilità non sarà stata riparata, o addirittura mai.
Nella maggior parte dei casi il ricercatore applica un limite di tempo. Se la vulnerabilità non viene risolta entro un determinato periodo, verrà divulgata pubblicamente. In termini pratici, la divulgazione responsabile è un compromesso tra ciò che i produttori vorrebbero (nessuna divulgazione pubblica) e la divulgazione completa. Sono emersi programmi di bug bounty in cui i fornitori offrono programmi che invogliano i ricercatori a rivelare in modo responsabile i bug in cambio di compensi e riconoscimenti. Questi programmi sono alquanto controversi e sono al centro di un acceso dibattito.
Il team di ricerca Project Zero di Google sta attualmente sperimentando una leggera variazione. Le vulnerabilità sono divulgate privatamente al venditore, dandogli 90 giorni per risolvere il problema prima della divulgazione al pubblico. Ora, tuttavia, la divulgazione pubblica non avverrà fino a dopo il periodo di 90 giorni, indipendentemente dalla velocità con cui il fornitore risolve la vulnerabilità. Questo è un tentativo di alleviare il “problema di patch”; un problema separato che ha comunque un forte impatto sulle vulnerabilità zero day.
Il problema della patch
Il processo di divulgazione dovrebbe prevedere che i ricercatori scoprano e rivelino le vulnerabilità (in questa fase, molto probabilmente le vulnerabilità di 0 giorni); i venditori risolvano le vulnerabilità e aggiornino i loro prodotti; e l’utente aggiorni (correggendo) il prodotto installato. Il problema è che gli utenti non riescono ad aggiornare i loro prodotti installati. Fino a quando non lo fanno, per loro la vulnerabilità non è semplicemente una vulnerabilità zero day, ma è ora zero day conosciuta dai criminali. Questo è un grave problema di sicurezza informatica.
L’hacking Equifax del 2017 è stato eseguito tramite un difetto di sicurezza che era stato rivelato e corretto due mesi prima che si verificasse la violazione, ma Equifax non era riuscito a implementare la patch su tutti i suoi server.
Anche i famigerati focolai di ransomware globali WannaCry e NotPetya si sono sviluppati tramite una vulnerabilità che era già stata risolta da Microsoft. In questo caso, il ransomware si è diffuso rapidamente in tutto il mondo utilizzando una vulnerabilità nota come EternalBlue. EternalBlue era una delle numerose vulnerabilità “segrete” custodite dalla NSA per proprio uso. È stata rubata e resa pubblica da un gruppo di hacker conosciuto come ShadowBrokers – e da allora è stato regolarmente utilizzato da diversi criminali e malware diversi. Sebbene tecnicamente abbia cessato di essere una vulnerabilità zero day nel momento in cui Microsoft l’ha corretta, rimane effettivamente uno zero day per tutti gli utenti che non hanno implementato la correzione EternalBlue.
Le vulnerabilità zero day segretamente archiviate dai servizi di intelligence del mondo per i loro scopi offensivi e difensivi sono un’ulteriore complicazione nella teoria della divulgazione.
Raccolte governative zero day
Le agenzie di intelligence governative operano – e in alcuni casi hanno pubblicato – in quello che viene definito il loro “processo di azione”. In parole povere, si tratta di un’ammissione di possesso di raccolte di vulnerabilità zero day e una conferma che in alcuni casi non le riveleranno ai fornitori. Le agenzie sostengono che se le vulnerabilità rappresentano più una minaccia per l’economia nazionale di quanto non offrano un’opportunità per operazioni di intelligence offensive, le riveleranno – ma non diversamente.
In altre parole, sono zero day e rimarranno zero day se le agenzie ritengono che possano essere utili ai propri scopi. Il famigerato attacco di Stuxnet contro il progetto nucleare iraniano ha utilizzato diversi exploit zero day per raggiungere il proprio scopo.
Ciò significa che un ricercatore che trova una nuova vulnerabilità non ha modo di sapere se quella vulnerabilità è già nota a una nazione avversaria e potrebbe essere sfruttata in modo drammatico in qualsiasi momento. Questo a sua volta aumenta la pressione sulla rapidità con cui il ricercatore dovrebbe rivelare la vulnerabilità e quanto tempo dovrebbe essere concesso al fornitore per distribuire una correzione.
Negli ultimi anni sono state osservate entrambe le parti di questo processo. Le raccolte di NSA non divulgate sono state rubate da ShadowBrokers e sono trapelate con effetti devastanti ( WannaCry e NotPetya), mentre gli zero day della CIA sono trapelati in quelle che sono diventate note come le perdite di “Vault 7“.
Più di recente, l’NSA ha rivelato una grave vulnerabilità a Microsoft che è stata poi patchata nel gennaio 2020. Ciò dimostra che il processo funziona a beneficio di persone e aziende, anche se in realtà non sappiamo se la decisione di condividere sia stata altruistica o perché, anche in questo caso come EternalBlue, questa vulnerabilità sia stata rubata o se la NSA si fosse accorta che anche agenzie straniere ne erano in possesso.
Sommario
Il problema della divulgazione non ha soluzione. Tutto ciò che possiamo fare è provare, ove possibile, a scegliere l’opzione meno negativa. Attualmente la forma di divulgazione ritenuta migliore è quella responsabile che offre ai fornitori l’opportunità di correggere la vulnerabilità prima che venga resa pubblica. Ma questo non tiene conto delle vulnerabilità che sono già conosciute e forse persino sfruttate da criminali e stati nazione avversari. Né offre alcuna soluzione alla possibilità che la vulnerabilità possa essere trattata per essere utilizzata da una nazione avversaria, o trattenuta e rubata dalle nostre agenzie di intelligence.
In una certa misura, tuttavia, il problema è accademico. Anche laddove le vulnerabilità vengono rilevate e risolte rapidamente dai fornitori, spesso gli utenti non sono in grado di implementare le patch. Tali vulnerabilità rimangono quindi effettivamente vulnerabilità zero day per qualsiasi sistema senza patch. Il pericolo ora, tuttavia, è che i criminali possano prendere e decodificare la patch, scoprire la vulnerabilità e sviluppare un exploit entro pochi giorni dalla patch.




Lascia un commento