Iniezione di abitudini insicure.

Iniezione di abitudini insicure.

Quando si parla di sicurezza informatica e ci si chiede per quale motivo tantissimi sistemi siano insicuri e flagellati di continuo da attacchi, si tende a perdere la percezione di un fatto: il sito web, o il sistema che sta dietro alle API delle vostre APP, sono software. E come software sono scritte da programmatori. I quali programmatori sono, come capita spesso oggi, dei completi ignoranti su qualsiasi cosa sia una rete o un’infrastruttura in genere. Per loro e’ magia nera.

La cosa si complica quando si passa a programmare software sicuro. Se chiedete ad un programmatore odierno, vi dira’ che il software e’ sicuro se scrive “clientIPAddress” anziche’ “clientIpAddress”, perche’ tutto risiede nel nome delle variabili, o una qualsiasi delle minchiate irrilevanti che passano il tempo a discutere. Non hanno letteralmente idea di cosa sia la sicurezza.

Faccio un esempio: i password manager.

Uso un password manager da decenni. Nel tempo si e’ evoluto e devo dire che sono davvero soddisfatto del concetto in se’.

Perche’ ha senso un password manager? Il concetto e’ semplice: installate il programma sul computer, salvate tutte le password si un file che e’ illeggible a meno di non conoscere una password master, e quando poi vi serve accedere un plugin apposito vi consente di fare scrivere le password al vostro browser.

La cosa e’ comoda perche’:

  • il password manager si interfaccia con tutti i browser, quindi una volta memorizzata la password la potete usare con tutti. ovviamente, se usaste il password manager del browser, le password sarebbero salvate su un solo browser. che magari e’ pure di Google. Uh… ma anche no.
  • salvate un file, e salvate tutto. salvare le password dai password manager interi del browser e’ una fatica immane, e non sempre e’ possibile.
  • vi consente un numero sovrumano di password diverse, di lunghezza letteralmente impossibile da ricordare. cioe’, molto sicure.

ora, se volessimo accrescere la sicurezza dei sistemi, dovremmo probabilmente spingere la popolazione ad usare qualche password manager. Esistono anche per Mobile.

Ma qui arrivano i programmatori. I quali decidono che no, il sito diventa piu’ sicuro se ogni pagina ha un suo URL, e se ogni pagina usa javascript per generare il menu di login, in modo che i password manager non riconoscano piu’ la pagina.

Se io chiedo loro per quale motivo abbiano gestito il login in questo modo, cominciano con le buzzword, ma alla fine la risposta reale e’ “l’ho trovato su StackOverflow, e non ho idea di cosa sto facendo, pero’ e’ idiomatico”.

Il guaio e’ che se anche fosse che il sito guadagna sicurezza contro un attacco, diciamo un CVE che e’ conosciuto si e no 100 hacker, nel prevenire l’uso dei password manager sta rendendo insicuri centinaia di migliaia, o milioni, di client.

Il concetto che deve essere chiaro ma non lo e’, e’ che nella relazione tra Client e Server, non serve a niente aumentare la sicurezza del server A SPESE DELL’INSICUREZZA DEI CLIENT.

E questo e’ vero per una ragione semplice: per ogni server esistono migliaia, se non milioni (o miliardi, nel caso di Facebook) di client. Una perdita anche minima di sicurezza sul lato client produce un’insicurezza globale enorme.

Se vogliamo rubare due milioni di password ad un servizio globale, non dobbiamo fare altro che spazzolare tutti gli utenti che hanno come password una password debole:

Iniezione di abitudini insicure.

“Juventus”. Sul serio?

Ora, i soliti cretini mi verranno a dire che allora basta una policy sulla password, e allora Juventus diventera’ Juventus.36! .

E se insistete che una policy del genere e’ troppo debole, allora il programmatore vi dira’ che lui tanto le password non le salva in chiaro, e ci mette anche il sale!. Il che fermera’ gli Insipidous, ma non so di Anonymous. Ma il nostro programmatore e’ totalmente concentrato sul server, e chi se ne frega se consente comunque a qualcuno di fregarsi accounts perche’ hanno una password semplice? (ma salata, sia chiaro).

Congratulazioni.

Cosa sto cercando di dire? Che la Sproporzione tra numero di server e numero di client e’ cosi’ alta che non ha senso concentrarsi prima di tutto sulla sicurezza del server: qualcuno deve accertarsi che il client non sia il problema.

E’ necessario oggi iniettare negli utenti dei servizi delle buone abitudini. Come quella di usare un password manager.

Volete una policy per le password che costringa le persone ad usare un password manager? Bene:

  • la password deve avere almeno 48 caratteri.
  • deve contenere sia maiuscole che minuscole.
  • deve contenere almeno 5 elementi di punteggiatura diversi e non consecutivi.
  • deve contenere almeno 11 numeri non consecutivi ad altri numeri.

a questo punto costringereste le persone ad usare un password manager, e avreste davvero aumentato la sicurezza del sistema. Non dal lato server, ma dal lato client.

Il problema e’ che quasi nessuno tra i programmatori lavora pensando ai client. Tutto quello che fanno (quando lo fanno) e’ di iniettare buone pratiche nello sviluppo del sistema dal lato server: ma nessuna precauzione lato server impedira’ ad 223375 italiani di usare password come “Juventus” o “juventus.36”

Iniezione di abitudini insicure.

Ed e’ proprio qui il problema. Le persone non useranno MAI un password manager, se non vengono spinte a farlo,  e se i siti web continuano ad accettare cose simili:

Iniezione di abitudini insicure.

Al contrario, i siti web attuali non incoraggiano l’uso dei password manager, anzi li scoraggiano, perche’ tra custom pages di login e javascript come se piovesse, i password manager fanno sempre piu’ fatica a identificare la pagina.

E quindi?

Vi invito a fare una cosa: a NON usare alcun sito dove l’uso del vostro password manager non risulti immediato.

E’ sicuramente un sito insicuro, scritto da cialtroni incompetenti, e prima o poi qualche hacker dopo aver indovinato una password semplice fara’ privilege escalationi e si prendera’ tutte le password.


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *