KeePass è una delle soluzioni più popolari ed apprezzate per gestire archivi di password e credenziali di accesso. Anziché appoggiarsi a soluzioni cloud come Bitwarden e LastPass, recentemente al centro di una polemica legata alla procedura di generazione delle chiavi crittografiche, KeePass permette di conservare tutti i propri dati in locale senza mai trasferirli su server gestiti da soggetti terzi.
Va detto che Bitwarden mette a disposizione anche due versioni del password manager installabili in locale, utili per configurare anche un server condiviso tra dipendenti e collaboratori aziendali.
KeePass è uno storico password manager distribuito come prodotto open source e software libero: a partire dal suo codice sorgente ne sono state sviluppate molteplici versioni derivate. In un altro nostro articolo abbiamo proposto una soluzione per sincronizzare username e password tra più dispositivi in modo semplice e sicuro ricorrendo a KeePassXC su Windows, Linux, macOS e a KeePassDX per Android.
Per proteggere il database delle password memorizzato in locale, l’archivio contenente tutti i dati personali viene crittografato ricorrendo a una master password. In questo modo solo l’utente avente titolo può aprire il database delle password e accedere al suo contenuto.
Modificando le impostazioni contenute nel file di configurazione di KeePass in formato XML un aggressore può richiedere l’esportazione automatica delle credenziali con la conseguente loro memorizzazione in un file in chiaro.
La procedura di esportazione avviene in automatico non appena la vittima apre KeePass e inizia a utilizzare l’applicazione, senza che il programma visualizzi alcun tipo di avviso.
Riteniamo che sarebbe cosa apprezzabile se KeePass mostrasse un messaggio d’allerta informando l’utente circa l’utilizzo della specifica impostazione a livello di file XML ma non si tratta di una vulnerabilità di sicurezza. Come giustamente fa presente il principale autore di KeePass in questa discussione, se un aggressore ha già accesso al sistema della vittima ed è in grado di modificare il file XML del programma, allora ha già l’opportunità di rubare username e password altrui in mille altri modi.
Sul sito ufficiale di KeePass il tema era già stato affrontato in modo corretto e trasparente fin dal 2019: la morale è che se un sistema è già stato compromesso non è possibile fare affidamento sulla sicurezza dei dati in esso conservati.
Alla problematica è stato comunque assegnato un identificativo (CVE-2023-24055) ed è stato proposto agli sviluppatori di KeePass di aggiungere una preferenza a livello di singolo database in modo tale da bloccare qualunque tentativo indesiderato di esportazione delle credenziali.
Nel frattempo, gli sviluppatori KeePassXC, citato in apertura, hanno confermato che l’applicazione non usa i trigger come KeePass quindi non è soggetta alla problematica sopra descritta.
Problema risolto con il rilascio di KeePass 2.53.1
Per porre fine alla questione, il principale sviluppatore di KeePass ha confermato che la release 2.53.1 del suo software (e ovviamente tutti gli aggiornamenti successivi) risolve definitivamente la problematica.
È stato infatti rimosso il flag che permetteva l’esportazione “silente” dell’archivio delle credenziali senza alcuna notifica presentata all’utente. D’ora in avanti KeePass richiederà sempre di confermare l’inserimento della master password ogni volta che si tenta di esportare i dati.