Gli esperti di ISE (Independent Security Evaluators), società di consulenza che si occupa di verificare la presenza di vulnerabilità nei software e nelle reti di piccole e grandi aziende, hanno voluto mettere alla prova quattro password manager per Windows 10: 1Password, Dashlane, KeePass e LastPass.
Utilizzare i password manager è sempre una buona cosa: le credenziali scritte su un foglio di carta o su una normale agendina possono andare perdute o essere facilmente sottratte da parte di terzi. Un password manager consente di memorizzare in locale e/o sul cloud (chi è allergico alla memorizzazione di informazioni personali su server di terze parti può salvare i dati esclusivamente sui propri dispositivi) le credenziali in forma crittografata. La conservazione dei dati in forma cifrata fa sì che né utenti malintenzionati né i gestori del password manager (ci riferiamo alle versioni cloud) possano mai risalire alle credenziali in chiaro.
Qual è il punto debole dei password manager di oggi? Secondo ISE, tutte le applicazioni poste sotto la lente hanno la stessa lacuna: non proteggerebbero adeguatamente la master password conservata in memoria RAM.
Indipendentemente dal password manager utilizzato (non prendiamo comunque in considerazione quelli integrati nei browser web perché le misure di sicurezza sono facilmente aggirabili; vedere Password manager di Firefox: master password indovinabile in pochi minuti), i tecnici di ISE hanno scoperto che in RAM resta sempre una traccia della master password in chiaro. In altre parole, la password scelta dall’utente come baluardo per la consultazione dei database contenenti le proprie credenziali e le altre informazioni riservate resta salvata per troppo tempo nella memoria del dispositivo.
In particolare ciò accadrebbe quando il password manager è in esecuzione (anche se si fosse effettuata la disconnessione dal database delle credenziali).
In quest’analisi dettagliata, ISE non solo indica l’elenco dei password manager posti sotto analisi (in realtà sono cinque perché di 1Password ne sono state verificate due versioni) ma illustra con dovizia di particolari l’approccio che è stato adoperato.
Nel caso di 1Password, gli autori della ricerca sono riusciti ad estrarre dalla memoria RAM la master password in chiaro: in un caso è bastato un po’ di reverse engineering sulle funzioni RtlRunEncodeUnicodeString e RtlRunDecodeUnicodeString utilizzate dal programma (versione 4); nell’altro (versione 7) è bastato creare un dump del contenuto della memoria per leggere la password in chiaro. Addirittura la generazione di un semplice errore BSOD (la schermata blu di Windows) permette di obbligare il sistema operativo alla generazione di un file dump che contiene la master password di 1Password immediatamente leggibile.
Nel caso di Dashlane e Keepass, ISE dichiara di non essere riuscita a rubare la master password ma cita comunque la possibilità di risalire in maniera molto semplice alle credenziali dell’utente con le quali questi ha interagito di recente. Il tutto sempre verificando il contenuto della RAM.
Infine, LastPass attiva una forma piuttosto basilare di “pulizia” del contenuto della memoria ma le informazioni relative alla master password e a diverse altre credenziali sarebbero comunque facilmente recuperabili.
Lo specchietto che ripubblichiamo di seguito riassume i test condotti da ISE e il risultato di ciascuna prova.
A beneficio degli sviluppatori di password manager, ISE offre una serie di suggerimenti utili a migliorare la sicurezza di ciascun software. Si dovrebbero implementare routine di base per il rilevamento di attacchi come quelli posti in essere dai tecnici di ISE, servirsi delle enclavi in hardware come SGX, evitare l’utilizzo trasversale di API di impiego molto comune tra i malware writer, verificare attentamente la rimozione di informazioni sensibili dalla memoria almeno quando il password manager non è più in uso.
Agli utenti finali viene suggerito di chiudere completamente i password manager quando non in uso (in questo modo non c’è possibilità che le credenziali possano essere sottratte), di attivare la crittografia dell’unità disco (ad esempio con Bitlocker o VeraCrypt; così facendo nel caso in cui si verificasse un BSOD sul sistema non saranno presenti file dump contenenti informazioni sensibili salvate precedentemente in memoria), utilizzare meccanismi del sistema operativo per il blocco automatico della sessione di lavoro in corso (o effettuare il logout manualmente) quando ci si allontana dalla propria postazione, utilizzare le funzionalità di protezione Secure Desktop offerte da alcuni password manager.
In ogni caso è fondamentale osservare che l’attacco può avvenire solo in ambito locale: la sottrazione delle credenziali è possibile solamente se l’utente eseguisse un’applicazione malevola sulla macchina o se lasciasse il sistema incustodito, alla mercé di terzi.
Interessante notare come KeePass sia oggi usato da circa 20 milioni di individui, LastPass da 16,5 milioni, 1Password da 15 milioni e Dashlane da 10 milioni.