È trascorso ormai più di un mese dalla fine del 2008, ma mi sembra ancora utile fare una riflessione di sintesi su tutti gli eventi più rilevanti che hanno elevato l’anno appena trascorso ad uno dei più bui dal punto di vista della sicurezza informatica.
Il primo grosso evento si è verificato a metà del maggio scorso, quando Luciano Bello segnalò che il codice di OpenSSL presente nella distribuzione Linux Debian soffriva di una grave vulnerabilità in una parte di codice utilizzata dal PRNG (Pseudo Random Number Generator) per la generazione delle chiavi. A creare questa vulnerabilità era stato nel settembre 2006 uno sviluppatore Debian commentando una riga di codice segnalata come potenzialmente pericolosa da Valgrind, famoso tool per il memory debugging. Purtroppo quella riga era invece corretta ed essenziale per ottenere l’entropia necessaria alla generazione di chiavi sufficientemente pseudo casuali. Senza di essa l’unica casualità sorgeva dal ID del processo corrente: 32767 possibili chiavi, davvero troppo poche rispetto alle milioni o miliardi come dovrebbero essere (a seconda della lunghezza e del tipo di chiave).
La conseguenza è stata che tutte le chiavi SSL e SSH generate su sistemi Debian-based (e sono molti, Ubuntu in primis) tra il settembre 2006 e il 13 maggio 2008 potrebbero essere vulnerabili e quindi facilmente individuabili. Subito si è scatenata una corsa tra gli amministratori di sistema che cambiavano le chiavi vulnerabili e gli attaccanti di tutto il mondo che, con scansioni di rete di massa, cercavano sistemi da penetrare. Immaginate poi se il certificato SSL della vostra banca avesse una chiave fallata: qualcuno potrebbe spacciarsi per lei o, ancora, potrebbe mettersi in una situazione di man-in-the-middle e leggere in chiaro il traffico delle vostre comunicazioni con la banca stessa.
Neanche un mese dopo, l’US-CERT segnalò una vulnerabilità presente in diverse implementazioni del SNMPv3. Questo protocollo è usato per la gestione di buona parte dei router su Internet e la vulnerabilità consente ad un attaccante di configurare il router a piacimento senza conoscerne le credenziali di autenticazione, magari redirezionando dove meglio crede tutto il suo traffico per poterlo intercettare.
A partire dalla prima metà di luglio la Rete comincia poi ad interrogarsi su una nuova e grave vulnerabilità presente nella maggior parte delle implementazioni del protocollo DNS che Dan Kaminsky ha annunciato di aver scoperto. Nei mesi precedenti Dan aveva contattato decine di vendor DNS per organizzare il più grande rilascio coordinato di una patch di sicurezza della storia, avvenuto il 9 luglio. Inizialmente non fu rilasciato nessun dettaglio sulla vulnerabilità, per dare il tempo agli Internet provider e amministratori di rete di tutto il mondo di mettere in sicurezza i propri sistemi, in previsione della presentazione che Dan avrebbe tenuto un mese dopo alla conferenza BlackHat a Las Vegas.
Ovviamente però le speculazioni in Rete non si fecero attendere e, tempo due settimane, altri ricercatori riuscirono a scoprire la stessa vulnerabilità. Essa affligge praticamente tutti i name server così come i client, e permette ad un attaccante di inserire dei record DNS malevoli all’interno della loro cache. Immaginate per esempio se qualcuno riuscisse ad attaccare un ISP inserendo una falsa corrispondenza tra google.com ed il suo indirizzo IP: tutti gli utenti di tale provider che visiteranno Google saranno rediretti sul server gestito dall’attaccante, a quel punto che cosa fare dipende solo dalla sua fantasia. Oppure, grazie a questa vulnerabilità, l’attaccante potrebbe creare una situazione di man-in-the-middle, come accennato prima, tra un utente e il sito della sua banca e poi, se possibile, attaccare la debole chiave SSL per leggere in chiaro il traffico.
Un’ottima descrizione illustrata sulle origini della falla è reperibile a questo indirizzo. In passato sono descritti vari attacchi contro il protocollo DNS, ma quello scoperto da Dan Kaminsky è sicuramente il più efficace.
Un fatto strano è che delle vulnerabilità delle chiavi SSL in Debian e del protocollo DNS si è parlato fin troppo, mentre della vulnerabilità nel protocollo SNMPv3, nonostante la sua evidente gravità, non si è parlato quasi nulla, come ha anche fatto notare Felix FX Lindner. E questo non è solo strano ma anche grave, perché significa che ora ci saranno quasi certamente molti più router vulnerabili di quanti server DNS o chiavi SSL/SSH.
Evento ancora più anomalo è stato il punteggio di gravità, presente nel NVD, autorevole deposito di vulnerabilità del governo statunitense, inizialmente assegnato alle tre vulnerabilità: punteggio molto maggiore per le prime due rispetto a quella del SNMPv3. Questo mi ha fatto venire in mente una frase di Bruce Schneier: “Ogni anno muoiono più persone a causa dei maiali che a causa degli squali, questo ci mostra quanto siamo bravi a valutare i rischi”. Fortunatamente, qualche tempo dopo, a tale falla è stato assegnato il punteggio massimo.
Sempre a Las Vegas, subito dopo BlackHat, si svolge il Defcon, la più grande hacker convention del mondo. Quest’anno c’è stata una presentazione di Anton Kapela e Alex Pilosov sulla (in)sicurezza del protocollo BGP (essenziale per il routing di pacchetti su Internet). Non saremmo qui a parlarne se, tutto d’un tratto, quasi tre settimane dopo la conclusione del Defcon, un articolo su Wired non avesse citato quel talk per parlare della più grande falla di Internet, scatenando un’altra ondata di articoli e di panico per la Rete. Intendiamoci, la vulnerabilità descritta nel protocollo BGP è grave (permette, con i mezzi adeguati, di redirigere intere porzioni del traffico Internet dirette al host vittima), il fatto è che non c’è nulla di nuovo.
Interessante è piuttosto l’unione delle vulnerabilità in BGP e DNS per la realizzazione di attacchi creativi.
Dopo 3 mesi veramente fitti, c’è stata una relativa quiete fino alla fine dell’anno. A romperla sono stati Alexander Sotirov e altri sei ricercatori il 30 dicembre, alla 25° edizione del Chaos Communication Congress, la più importante hacker conference d’Europa. Nel loro attacco (qui il testo completo della ricerca) hanno sfruttato la potenza di calcolo di più di 200 PlayStation 3 collegate in un cluster e alcune debolezze intriseche all’algoritmo di hashing MD5 (considerato insicuro ormai da alcuni anni) per realizzare dei falsi certificati digitali rilasciati da una Certification Authority (CA). Se vittima dell’attacco è una root CA memorizzata nella “lista di fiducia” di un browser, allora un sito con SSL che adotti un suo falso certificato verrà riconosciuto come sicuro.
L’utilizzo di quest’attacco in unione con quello contro il protocollo DNS, permetterebbe la creazione di siti per il phishing assolutamente perfetti: dominio identico a quello preso di mira (ma ovviamente indirizzo IP diverso) con annesso certificato digitale visto come valido e sicuro dal browser. Come tuttavia avrete avuto modo di capire, si tratta di un attacco difficilmente realizzabile per le ingenti risorse che richiede.
È interessante notare che quattro delle cinque vulnerabilità di cui abbiamo discusso sono relative a debolezze intrinseche ad alcune delle componenti chiave dell’infrastruttura di Internet verso cui nutriamo fiducia. D’altro canto, i protocolli della stessa Internet sono stati creati, nei tranquilli anni passati, avendo troppa fiducia verso il prossimo. Servirebbe un ammodernamento dell’intera infrastruttura: IPv6, DNSSEC e PGBGP sono solo alcuni passi d’obbligo.
Il 2009 è iniziato da poco, ma è iniziato già male, con milioni e milioni di PC Windows infetti dal worm Conficker, ma di questo abbiamo già parlato.