Anche se Apple non ha mai ri­la­scia­to co­mu­ni­ca­zio­ni ufficiali al riguardo, si può supporre che nel 2014 una semplice falla di sicurezza sia stata la rovina del suo servizio online di ar­chi­via­zio­ne iCloud. Si hanno suf­fi­cien­ti ragioni per pensare che la mancanza di una pro­te­zio­ne efficace contro gli attacchi brute force abbia reso possibile il furto di foto private di diversi per­so­nag­gi famosi, visto che poco dopo l’attacco sono state im­ple­men­ta­te le misure di pro­te­zio­ne contro questo metodo. Da quel momento le misure di pro­te­zio­ne prevedono che gli utenti abbiano al massimo dieci tentativi di in­se­ri­men­to della password, in seguito ai quali il login viene bloccato e il pro­prie­ta­rio dell’account avvisato. Prima di questo scandalo hacker, si poteva con­ti­nua­re a provare ad inserire la password per un numero in­de­fi­ni­to di tentativi, ragion per cui era solo una questione di tempo prima che un attacco forza bruta ben pia­ni­fi­ca­to avesse successo.

Che cos’è davvero il metodo forza bruta?

Il termine forza bruta deriva dall’inglese “brute force” e descrive, in ambito in­for­ma­ti­co, un tipo di attacco per trovare password. Nel lin­guag­gio comune può anche indicare un metodo basato sulla crit­to­gra­fia e sulla teoria dei giochi ma­te­ma­ti­ci per risolvere un problema. Il metodo deve il suo nome al fatto che si basa sul provare tutte le soluzioni possibili o più plau­si­bi­li, per questo motivo è noto anche come “ricerca esaustiva”. Viene sempre usato quando non sono di­spo­ni­bi­li algoritmi migliori ed è par­ti­co­lar­men­te amato dagli hacker, che usano questa tecnica per de­co­di­fi­ca­re le password e riuscire così ad accedere ai dati altrui. Per questo usano i software con un algoritmo semplice che prova ra­pi­da­men­te diverse com­bi­na­zio­ni fatte di cifre, simboli e lettere fino ad una lunghezza massima definita.

Più corte sono le password, più ve­lo­ce­men­te vengono in­di­vi­dua­te at­tra­ver­so il metodo forza bruta, ragion per cui anche la maggior parte dei sistemi di cifratura in generale consiglia password il più possibile lunghe e composte di diversi simboli. Dal momento che il tempo ne­ces­sa­rio per eseguire attacchi brute force non richiede più pre­sta­zio­ni del computer così elevate e possono essere eseguiti sempre più tentativi per un’unità di tempo, una pro­te­zio­ne totale da questo metodo diventa quindi sempre più im­por­tan­te.

Perché non dovreste sot­to­va­lu­ta­re un attacco forza bruta

Con­si­de­ra­ta la natura ru­di­men­ta­le del metodo ci si aspet­te­reb­be che vengano usate misure di pro­te­zio­ne adeguate, ma non è sempre così. Po­ten­zial­men­te è in pericolo chiunque ha un computer connesso a Internet. Se un hacker si è inserito una volta senza essere notato in un sistema, cosa che accade più spesso di quanto si ritenga possibile, pro­ba­bil­men­te non è lontano dal carpire le vostre password. La maggior parte dei sistemi operativi ge­sti­sco­no file e database, nei quali vengono salvati gli iden­ti­fi­ca­ti­vi e le password dell’utente. Nei sistemi Windows si trovano ad esempio nel file .sam, mentre in quelli Unix di solito nel file .passwd o .shadow.

Sebbene le password che si trovano in questi file non siano in chiaro perché devono essere decifrate prima con l’aiuto di un algoritmo crit­to­gra­fi­co, l’hacker può comunque entrare in possesso dei file se non sono protetti ab­ba­stan­za dagli accessi non au­to­riz­za­ti e creare così una copia del file per poi ef­fet­tua­re un attacco forza bruta, senza dover mantenere una con­nes­sio­ne con il sistema della vittima. Infatti, sono fon­da­men­tal­men­te tre le variabili che in­flui­sco­no sul tempo ne­ces­sa­rio perché l’attacco abbia successo:

  • La durata di ogni singolo tentativo di im­mis­sio­ne di una password
  • La lunghezza della password
  • La com­ples­si­tà delle password

La durata di ogni singolo tentativo di im­mis­sio­ne di una password che permette di tentare più com­bi­na­zio­ni possibili dipende dalle pre­sta­zio­ni del computer che l’hacker ha a di­spo­si­zio­ne. Migliori sono le pre­sta­zio­ni, tanto più ve­lo­ce­men­te viene ef­fet­tua­to un tentativo e inizia quello suc­ces­si­vo. Lunghezza e com­ples­si­tà aumentano lo­gi­ca­men­te il numero delle com­bi­na­zio­ni, dalle quali si compone una password, e quindi cresce anche il numero di pos­si­bi­li­tà da provare nel metodo forza bruta. Così la lunghezza e la com­ples­si­tà della password si ri­flet­to­no sulla durata:

Set di caratteri 26 caratteri 72 caratteri
Tipi di caratteri Lettere minuscole Lettere minuscole e maiuscole, caratteri speciali e numeri
Lunghezza massima della password 8 caratteri 8 caratteri
Com­bi­na­zio­ni possibili ca. 209 miliardi ca. 722 bilioni
Velocità di calcolo ca. 100 milioni di valori di hash per secondo ca. 100 milioni valori di hash per secondo
Durata del tentativo brute force ca. 35 minuti ca. 83 giorni

La tabella mostra che un PC più moderno ha ve­ri­fi­ca­to in soli 35 minuti tutte le com­bi­na­zio­ni possibili di una password semplice, che ricorre solo al set di caratteri di 26 lettere. Ma se si estende la password ai 72 caratteri, il metodo forza bruta con la stessa velocità di calcolo richiede circa 83 giorni.

Ma anche questo non è suf­fi­cien­te: gli hacker possono ac­ce­le­ra­re la durata di un attacco brute force at­tra­ver­so metodi come il dic­tio­na­ry attack, che usa una lista pre­com­pi­la­ta di parole più comuni, o usando tabelle ar­co­ba­le­no (in inglese rainbow table), che fanno tentativi as­so­cian­do sequenze di parole comuni.

Come pro­teg­ger­si dal metodo forza bruta

Non importa se un attacco forza bruta miri al file della password nel sistema, come nel caso di iCloud, o pre­sup­pon­ga che l’hacker possieda l’ID Apple della vittima: gli eventi passati di­mo­stra­no chia­ra­men­te quanto sia im­por­tan­te pro­teg­ger­si dai metodi di de­crip­ta­zio­ne invasivi. Nelle vostre password di sistema personali avete di regola il controllo, quindi puntate su com­bi­na­zio­ni che con­ten­ga­no molti diversi tipi di caratteri, usate lettere maiuscole, minuscole, simboli e anche numeri per le vostre password. E ricordate che na­tu­ral­men­te è sempre valida la regola che più caratteri ha una password, tanto più è difficile de­ci­frar­la.

La si­tua­zio­ne è più difficile quando si creano password per servizi online o simili, perché si è vincolati alle direttive del ri­spet­ti­vo fornitore. Sono tipiche una lunghezza massima di otto caratteri e spesso si è limitati all’in­se­ri­men­to di lettere e numeri, cosa che risulta poco sod­di­sfa­cen­te se non sono state prese ulteriori misure di sicurezza. In una si­tua­zio­ne di questo tipo, dovreste as­so­lu­ta­men­te sapere quali misure pre­ven­ti­ve il fornitore del servizio prende contro attacchi forza bruta. Se siete voi stessi i gestori di un servizio web con un mec­ca­ni­smo di login, questo compito rientra tra le vostre re­spon­sa­bi­li­tà. Sono possibili due tipi di approccio:

  • pro­teg­ge­re il mec­ca­ni­smo di au­ten­ti­fi­ca­zio­ne
  • con­fi­gu­ra­re un’au­ten­ti­fi­ca­zio­ne a più fattori

La pro­te­zio­ne del mec­ca­ni­smo di au­ten­ti­fi­ca­zio­ne dovrebbe essere una com­po­nen­te standard di ogni maschera di login ma, come lo scandalo di iCloud ha di­mo­stra­to, non è sempre così. Con il mec­ca­ni­smo di pro­te­zio­ne delle au­ten­ti­fi­ca­zio­ni si ap­pe­san­ti­sce il lavoro del software forza bruta, bloccando l’in­se­ri­men­to di una password per un de­ter­mi­na­to in­ter­val­lo di tempo, dopo che è stata digitata una password sbagliata. Inoltre è possibile aumentare ul­te­rior­men­te questo in­ter­val­lo ad ogni in­se­ri­men­to errato. Si può anche fare un passaggio ulteriore, come quello che ha fatto Apple in fin dei conti, cioè bloccare com­ple­ta­men­te l’account dopo un certo numero di tentativi di login errati.

La pos­si­bi­li­tà di un’au­ten­ti­fi­ca­zio­ne a due fattori viene offerta da molti fornitori spesso in maniera opzionale perché complica parecchio il processo di re­gi­stra­zio­ne, visto che oltre alla password diventa ne­ces­sa­rio anche un ulteriore passaggio come la risposta a una domanda segreta, l’in­se­ri­men­to di un PIN o un captcha. In questo caso si tratta di piccoli “test”, con i quali si dovrebbe con­sta­ta­re se chi tenta di accedere a un servizio sia un essere umano o un software che tenta il metodo forza bruta.  

Come con­tra­sta­re gli attacchi di forza bruta

In aggiunta alle misure proposte, ci sono ancora un paio di trucchi per la pre­ven­zio­ne da attacchi brute force. Il software degli hacker lavora di solito con diversi modelli di ri­co­no­sci­men­to e così ad esempio un im­pe­di­men­to efficace è quando i messaggi di errore di default non rinviano di­ret­ta­men­te al browser ma ad un sistema esterno, come un’altra pagina web. Al­ter­na­ti­ve per i nomi dei campi dove si immette una password e il testo, al quale si viene rimandati dopo un tentativo di accesso, possono per lo meno creare problemi ad alcuni dei tool degli hacker. In ogni caso la sicurezza del vostro sito e le password aumentano quando usate una o più delle misure di pro­te­zio­ne pre­sen­ta­te qui contro gli attacchi forza bruta. Peraltro per alcune piat­ta­for­me o ap­pli­ca­zio­ni ci sono anche spe­ci­fi­che esten­sio­ni o tool contro il metodo forza bruta. Il plug-in Jetpack, che dovrebbe fa­ci­li­ta­re in­nan­zi­tut­to la gestione dei siti WordPress, ha ad esempio integrato un modulo che dovrebbe impedire i pe­ri­co­lo­si attacchi basandosi su di una blacklist. Gli indirizzi IP, che sono raccolti in questa lista, com­pren­do­no tutti quelli co­no­sciu­ti che hanno sferrato degli attacchi brute force su pagine WordPress.

Vai al menu prin­ci­pa­le