Attacchi informatici e protezione della privacy

Chi vi scrive è uno studente di informatica che dedica alla sicurezza informatica più tempo di quanto non sia sano. Negli ultimi giorni il web è stato letteralmente invaso da immagini private di alcune celebrità ottenute, pare, sfruttando una vulnerabilità abbastanza sciocca della piattaforma di cloud di Apple, iCloud.
Da quando la notizia è arrivata nell’Auletta, il diabolico luogo dove studio assieme ad altri appassionati di sicurezza, sembra che qualcuno abbia lanciato delle bistecche nella vasca degli squali. Lo studio viene ripetutamente interrotto da gente che si alza e cammina in cerchio parlando di attacchi, password e, occasionalmente, donne. In due giorni abbiamo formulato un sacco di teorie su come possa essersi svolto l’attacco, quanto non sia emerso e cosa si potesse fare per prevenirlo. L’idea originale era di descrivere l’attacco e usarlo per illustrare un po’ di principi basilari di attacco e difesa informatica, ma poi la cosa è un po’ cresciuta e siamo entrati nel campo delle congetture e delle ipotesi e così ho deciso di semplificare un po’ le cose.

Prima di cominciare: note e disclaimer

Questa è una ricostruzione a scopo puramente divulgativo di una versione semplificata di un attacco che potrebbe essere stato portato su larga scala (che credete, che l’attacco funzioni solo sulle star?). Sebbene sia estremamente improbabile questo attacco funzioni in pratica – soprattutto dopo che Apple è intervenuta a tappare la falla – tentare di replicarlo potrebbe significare violare la legge, danneggiare la privacy di qualcuno o commettere altre azioni che finirebbero per mettervi nei guai. Non provateci a casa.
Questa non è la ricostruzione dettagliata dell’attacco a iCloud, al momento non ho ancora trovato una ricostruzione davvero convincente (e col passare del tempo aumentano anche le teorie poco credibili), ma è abbastanza simile a come potrebbe essere inziato.

Aggiornamento: Secondo Apple l’attacco è stato qualcosa di molto più mirato di quello che sembrava all’inizio, come si aspettavano molti di coloro che capiscono un po’ di sicurezza. Insomma, se volete vedere come funziona e come si ferma un attacco brute force questo post va ancora bene, ma ormai non ha praticamente nulla a che vedere con l’attacco che ha dato il via a tutto

Come si è svolto l’attacco

Una schermata dello script incriminato
Poteva essera andata così (via Imgur)

Dal punto di vista puramente tecnico, il principale responsabile del nostro leak di informazioni “scottanti” è un bug di iCloud, la piattaforma di cloud di Apple. Per semplificare le cose, un cloud dati funziona così: voi associate il vostro account sulla piattaforma scelta con una serie di apparecchi (telefoni, computer, tablet…) e installate del software che si occupa di sincronizzare i vostri file. Quando create, modificate o cancellate un file tra quelli sincronizzati le informazioni vengono inviate a un server esterno che ne tiene traccia e le invia ogni altro dispositivo associato al vostro account connesso al momento o nel momento in cui si connette. Si tratta di quella “magia” che vi permette di fare una foto con gli amici mentre siete fuori e trovarvela sul pc appena rientrate a casa.
Il baco in questione era nascosto in altro software Apple, ma grazie alla comoda integrazione fornita ha permesso agli attaccanti di accedere a iCloud e molti altri dati delle vittime. Sostanzialmente, esisteva un modo, passando dal servizio “Find my iPhone”, di aggirare i controlli anti brute force[1]. I controlli anti brute force sono, semplicemente, tutte quelle fastidiose schermate di blocco che saltano fuori dopo numerosi tentativi di login falliti e che, a seconda del livello di paranoia vostro e di chi ha implementato il software coinvolto, possono richiedere password aggiuntive o altre prove della vostra identità per proseguire.
I prodotti Apple e in particolare “Find my iPhone” non sono nuovi a simili vulnerabilità [2] e al momento circolano almeno un paio di script che potrebbero essere responsabili della fuga di informazioni (pare che il principale candidato sia uno script in Python). Quello che fa questo script (e che faceva fino alla patch messa al volo da Apple) è semplicemente testare una certa quantità di password estremamente probabili – ma che non dovrebbero esserlo, per motivi che vi spiegherò dopo – ma non scarica niente. Per quanto sia considerato educato condividere questo genere di risultati l’attacco non termina certo qui [3]. Tuttavia a rendere possibile tutto il resto – compresi, magari, danni che ancora non conosciamo – è proprio l’accesso tramite brute force.

Cosa si poteva fare per evitarlo?

L’errore di implementazione compiuto a Cupertino ha sicuramente dato una bella mano al nostro attacco, ma un account ben protetto avrebbe superato tutti i vantaggi. Come ho spiegato in nota [1] un attacco brute force è estremamente lento così lento da essere considerato il peggior attacco possibile. Per darvi un’idea facciamo due conti: una password Apple deve essere lunga almeno 8 caratteri e può contenere tutte le lettere dell’alfabeto – sia maiuscole che minuscole – i numeri e i segni sopra di essi (in realtà un po’ di più, ma questa è solo una stima), sono ammesse ripetizioni. Quindi abbiamo: (26 + 26 + 10 + 10)^8 password possibili, cioè 72220413608736 password e questo è un modello semplificato!
Provare tutte quelle password su tutti quegli account (e noi abbiamo notizia soltanto di alcuni degli account attaccati con successo, non sappiamo quanti siano stati tentati davvero) richiede tanto, tanto tempo. Com’è stato possibile un attacco del genere? Ci aiuta un grafico [4]:

500 stringhe di caratteri costituiscono circa il 71% delle password utilizzate in America
500 stringhe di caratteri costituiscono circa il 71% delle password utilizzate in America

La statistica non è perfetta, ma anche altre fonti [5] sostengono che, con circa 500 password, si possa attaccare un sostanzioso numero di utenti. Quello che ha fatto il nostro attaccante è stato esattamente questo: ha preso una lista di 500 password considerate le più comuni (ve ne pubblico alcune sotto in modo che possiate ridere o pentirvi dei vostri errori, a seconda dei casi) e le ha testate su diversi account, ottenendo, a quanto pare, parecchi successi. Una situazione del genere non doveva verificarsi (una persona più corretta e matura avrebbe giochicchiato con un account creato ad hoc, oppure avvisato Apple senza fare tutto questo casino), ma si poteva rendere più difficile la vita dell’attaccante prendendo quelle semplici precauzioni che vi consiglia il tizio dell’IT quando create un account sul server aziendale o che vengono presentate al volo ogni volta che dovete creare una password[6].

Si tratta di attacco semplice che penso potrebbe concepire o mettere in atto, ma proteggersi lo è altrettanto.

Queste sono le prime 20 password utilizzate dall’attacco. Voi quanto avreste retto?
Password1
Princess1
P@ssw0rd
Passw0rd
Michael1
Blink182
!QAZ2wsx
Charlie1
Anthony1
1qaz!QAZ
Brandon1
Jordan23
1qaz@WSX
Jessica1
Jasmine1
Michelle1
Diamond1
Babygirl1
Iloveyou2
Matthew1

[1] Un attacco brute force (potete chiamarlo anche “forza bruta” o “ricerca esaustiva”) si basa sull’antico e comprovato principio del “chi cerca trova”. Si tratta semplicemente di provare tutte le combinazioni possibili della cassaforte finché non si trova quella giusta. Si tratta, notoriamente, del peggior tipo di attacco possibile in termini di tempo, perché, se non siete fortunati, dovete provare davvero tutte le combinazioni: attaccare una banale valigetta ventiquattrore con una ricerca esaustiva può richiedervi fino a 1000 tentativi. A voler essere davvero pignoli in questo caso si parla di “reverse brute force”, perché si è testato un set di password su diversi utenti, ma ormai quasi tutti parlano di brute force in entrambi i casi Torna su

[2] La Common Vulnerabilities and Exposure List (CVE) – un database di attacchi noti e vulnerabilità – riporta, al momento della scrittura di questo post, due diverse vulnerabilità che permettono di aggirare in qualche modo il login di Find my iPhone: https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=Find+my+iPhone Torna su

[3] Probabilmente, mentre scrivo – e magari anche mentre mi leggete – alcune dei migliori esperti di sicurezza della Apple si stanno ponendo, meglio di me, la stessa domanda: che cosa non è stato pubblicato?Torna su

[4]Fonte: Xato.net Torna su

[5] Un’altra interessante raccolta di password che sarebbe opportuno non usare (queste liste sono molto belle quando fanno statistica ma sono le stesse con cui si compilano i dizionari per gli attacchi: se per caso trovate la vostra password qua in mezzo cambiatela!) si può trovare su RockYou Torna su

[6] Queste precauzioni, va detto, non avrebbero davvero fermato l’attacco reale. L’attacco reale è stato portato utilizzando tecniche assai più sofisticate, raccogliendo informazioni attraverso diverse fonti e colpendo precisamente quei bersagli. Contro attacchi di questo tipo le password complesse e davvero casuali (anche se vostro gatto si chiama Albus Percival Wulfric Brian Silente 4° usarne il nome completo non impedirà a chi vi conosce di indovinare la password senza bisogno di un vero brute force) sono poco più che un intralcio. Imparare a difendersi da un attacco così professionale (perché un brute force lo può fare un ragazzino qualsiasi, questo richiede capacità e competenze in diversi campi) va ben oltre lo scopo di questo post. In un’altra occasione potremo parlare del phishing, la tecnica con cui sono state, probabilmente, raccolte le informazioni necessarie a compiere l’attacco. Torna su

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo: