Scoperto un modo per esportare il database delle password di KeePass, in chiaro. Ma non è l’unico guaio del gestore di password open source.
KeePass è affetto da una vulnerabilità che potrebbe consentire a un attaccante di esportare i database delle password dei clienti. Un problema enorme per il gestore di password open source più popolare in circolazione, che a differenza di LastPass non archivia le password in cloud, ma in un database archiviato localmente.
Per comprendere il problema bisogna sapere come funziona KeePass: gli utenti archiviano le proprie password su un database locale, che viene crittografato mediante una password principale. Sulla carta questo comporta che, qualora un attaccante dovesse entrare in possesso del file, non avrebbe accesso alle password memorizzate al suo interno perché cifrate.
Il guaio è che nella pratica le cose sembrano andare diversamente, per colpa di una falla monitorata con la sigla CVE-2023-24055. In parole semplici, permette a un attaccante che abbia un permesso di accesso in scrittura al sistema di alterare il file di configurazione XML KeePass e di iniettare un codice dannoso che esporta il database - inclusi tutti i nomi utente e le password - in testo non crittografato.
Che cosa fa tale codice è semplice: “istruisce” il programma affinché alla prima apertura del file andata a buon fine (ossia quando il legittimo utente accede al database digitando la password principale) si attivi automaticamente una regola di esportazione che salva in un file a parte il contenuto in chiaro del database. A questo punto è banale per gli attori delle minacce esfiltrare il file in un server di comando e controllo o comunque in un sistema sotto il loro controllo. Di questo passaggio l’utente non ha contezza perché avviene in background, senza bisogno di alcuna interazione da parte del legittimo proprietario.
È già stato condiviso online un exploit proof-of-concept, il che semplifica il lavoro dei programmatori di malware. Gli utenti hanno avanzato alcune richieste, ovviamente urgenti, agli sviluppatori. La prima è di aggiungere una richiesta di conferma prima dell’esportazione del database attivata tramite un file di configurazione modificato. In alternativa di distribuire il prima possibile una versione dell'app priva della funzione di esportazione.
Alcuni commenti postati dal team di sviluppo di KeePass nel forum ufficiale lasciano intendere che la questione non è così semplice. Certo, il codice malevolo può portare all’esfiltrazione del database in chiaro. Ma qualora un attaccante avesse accesso in scrittura al disco dell’utente potrebbe causare danni ben maggiori.
Questa osservazione mette in luce un problema che non si può certo liquidare con una patch: l’archiviazione in locale, la cui sicurezza prescinde (come indicano gli sviluppatori) dal fatto che l'ambiente sia sicuro, quindi protetto mediante antivirus, firewall e altro, e utilizzato da utenti che conoscono perfettamente i principi di cyber hygiene - quindi non aprono mai allegati di posta elettronica sconosciuti, non cliccano mai su link di dubbia provenienza e via dicendo. Perché, banalmente, “KeePass non può funzionare in modo sicuro in un ambiente insicuro" come scrive uno sviluppatore.