In questi giorni Anonymous sta effettuando numerosi attacchi a pubbliche amministrazioni italiane (basta cercare "anon-italy #FifthOfNovember" su Google). Questi attacchi mi hanno motivato a scrivere questo post.
Negli ultimi anni mi è capitato spesso di dare suggerimenti di sicurezza informatica "terra-terra", in particolare sull'uso di email e password: i due aspetti di gran lunga più importanti nella stragrandissima maggioranza dei casi (questa pagina contiene le slide di un corso che ho tenuto più volte per persone senza competenze tecniche specifiche).
Uno dei suggerimenti relativi alla scelta delle password è questo: "non deve essere indovinabile facilmente".
PARENTESI IMPORTANTE: il suggerimento non è proprio questo, è più circostanziato; inoltre, non è il suggerimento più importante sulle password: quello più importante è "non usare la stessa password su più siti diversi"; vedi le slide sopra citate. CHIUSA PARENTESI.
Nel corso introduttivo e nelle slide non approfondisco il motivo per cui una password "non deve essere indovinabile facilmente". Il motivo che lascio intuire è questo: è facile realizzare attacchi automatizzati in cui si prova una sequenza predefinita di password fino a trovare la password giusta. Se il sito non rileva attacchi di questo genere, il che è purtroppo molto più frequente di quanto si immagini, allora c'è il rischio che l'attaccante riesca nel proprio intento. Quindi niente nomi, niente cognomi, niente nome del cane o del gatto, niente nome dei figli etc.
In realtà il motivo vero è un altro. Motivo che ometto completamente nel corso introduttivo onde non complicare le cose. Cerco di riassumerlo di seguito.
Gli attacchi come quello sopra descritto esistono veramente. Ma sono poco frequenti. Il rischio maggiore non deriva da attacchi di quel genere, bensì da situazioni in cui un attaccante penetra in un server, estrae il database contenente username e password" di tutti gli utenti e fa circolare il database in rete (esattamente ciò che sta succedendo in questo giorni con le utenze di varie Regioni, Province, aziende sanitarie, dipartimenti universitari, associazioni professionali e molto altro).
Se il database è strutturato in maniera corretta, allora le password non sono utilizzabili immediatamente. Il database infatti non contiene la password bensì una funzione non invertibile della password. Ad esempio:
efaa7c4436f92367bf878da1d0c9fb61:PPlC4Xun3a2lcDYhPVUdF4pvulSIvZEM).
Per potere utilizzare una password nel database, quindi, un attaccante deve provare una possibile password, calcolare la funzione non invertibile, vedere se il risultato è identico alla password nel database e poi continuare per tante altre password possibili sperando di trovare prima o poi la password giusta.
Avere scelto una password "non indovinabile facilmente" serve proprio per tentare di difendersi da situazioni di questo genere. Situazioni che purtroppo si verificano relativamente spesso.
Detto questo, uno si chiede "e che succede se il database non è strutturato in maniera corretta?". Quello che succede è che le password sono memorizzate, come si dice, "in chiaro". Quindi sono immediatamente visibili ed utilizzabili.
Io sono un pessimista di natura, ma spesso la realtà supera il mio pessimismo. Mai e poi mai mi sarei aspettato di vedere password in chiaro nei database pubblicati da Anonymous (ripeto: Regioni, Province, etc.).
Vorrei tanto mettere qui una schermata, perché solo una schermata rende pienamente l'idea. Ma non posso diffondere informazioni così delicate. Vi suggerisco però caldamente di immaginare una bella tabella con colonna username (da cui si risale in maniera pressoché immediata al nome ed al cognome) ed accanto la colonna password perfettamente leggibile.
Una schermata del genere fa capire anche un altro motivo per cui bisogna scegliere "una password non indovinabile facilmente": Che figura ci fa uno, o una, che sul proprio posto di lavoro sceglie come password il proprio nome, o il proprio cognome o qualche altra stupidaggine del genere?
Messaggio finale per chi ha responsabilità di amministratore di sistema: che figura ci fa un amministratore di sistema che gestisce le password in questo modo?
Negli ultimi anni mi è capitato spesso di dare suggerimenti di sicurezza informatica "terra-terra", in particolare sull'uso di email e password: i due aspetti di gran lunga più importanti nella stragrandissima maggioranza dei casi (questa pagina contiene le slide di un corso che ho tenuto più volte per persone senza competenze tecniche specifiche).
Uno dei suggerimenti relativi alla scelta delle password è questo: "non deve essere indovinabile facilmente".
PARENTESI IMPORTANTE: il suggerimento non è proprio questo, è più circostanziato; inoltre, non è il suggerimento più importante sulle password: quello più importante è "non usare la stessa password su più siti diversi"; vedi le slide sopra citate. CHIUSA PARENTESI.
Nel corso introduttivo e nelle slide non approfondisco il motivo per cui una password "non deve essere indovinabile facilmente". Il motivo che lascio intuire è questo: è facile realizzare attacchi automatizzati in cui si prova una sequenza predefinita di password fino a trovare la password giusta. Se il sito non rileva attacchi di questo genere, il che è purtroppo molto più frequente di quanto si immagini, allora c'è il rischio che l'attaccante riesca nel proprio intento. Quindi niente nomi, niente cognomi, niente nome del cane o del gatto, niente nome dei figli etc.
In realtà il motivo vero è un altro. Motivo che ometto completamente nel corso introduttivo onde non complicare le cose. Cerco di riassumerlo di seguito.
Gli attacchi come quello sopra descritto esistono veramente. Ma sono poco frequenti. Il rischio maggiore non deriva da attacchi di quel genere, bensì da situazioni in cui un attaccante penetra in un server, estrae il database contenente username e password" di tutti gli utenti e fa circolare il database in rete (esattamente ciò che sta succedendo in questo giorni con le utenze di varie Regioni, Province, aziende sanitarie, dipartimenti universitari, associazioni professionali e molto altro).
Se il database è strutturato in maniera corretta, allora le password non sono utilizzabili immediatamente. Il database infatti non contiene la password bensì una funzione non invertibile della password. Ad esempio:
efaa7c4436f92367bf878da1d0c9fb61:PPlC4Xun3a2lcDYhPVUdF4pvulSIvZEM).
Per potere utilizzare una password nel database, quindi, un attaccante deve provare una possibile password, calcolare la funzione non invertibile, vedere se il risultato è identico alla password nel database e poi continuare per tante altre password possibili sperando di trovare prima o poi la password giusta.
Avere scelto una password "non indovinabile facilmente" serve proprio per tentare di difendersi da situazioni di questo genere. Situazioni che purtroppo si verificano relativamente spesso.
Detto questo, uno si chiede "e che succede se il database non è strutturato in maniera corretta?". Quello che succede è che le password sono memorizzate, come si dice, "in chiaro". Quindi sono immediatamente visibili ed utilizzabili.
Io sono un pessimista di natura, ma spesso la realtà supera il mio pessimismo. Mai e poi mai mi sarei aspettato di vedere password in chiaro nei database pubblicati da Anonymous (ripeto: Regioni, Province, etc.).
Vorrei tanto mettere qui una schermata, perché solo una schermata rende pienamente l'idea. Ma non posso diffondere informazioni così delicate. Vi suggerisco però caldamente di immaginare una bella tabella con colonna username (da cui si risale in maniera pressoché immediata al nome ed al cognome) ed accanto la colonna password perfettamente leggibile.
Una schermata del genere fa capire anche un altro motivo per cui bisogna scegliere "una password non indovinabile facilmente": Che figura ci fa uno, o una, che sul proprio posto di lavoro sceglie come password il proprio nome, o il proprio cognome o qualche altra stupidaggine del genere?
Messaggio finale per chi ha responsabilità di amministratore di sistema: che figura ci fa un amministratore di sistema che gestisce le password in questo modo?
Commenti