Tra i password manager più famosi e apprezzati, KeePass è certamente una delle soluzioni che occupano una posizione di primo piano. Questo password manager consente di organizzare e memorizzare in sicurezza le proprie credenziali e altri dati personali all’interno di un database crittografato conservato in locale senza appoggiarsi ad alcuna piattaforma cloud. KeePass è divenuto la base per molti progetti derivati che sono stati sviluppati, nel corso degli anni, in seno alla comunità open source. Ovvio quindi che una vulnerabilità in KeePass può rappresentare un problema tutt’altro che banale.
Il database di KeePass è protetto con una master password alla quale è possibile abbinare l’utilizzo di un file chiave (keyfile). La master password è la password principale che deve essere inserita per accedere al contenuto del database di KeePass: dovrebbe essere lunga, complessa e unica per garantire la massima sicurezza. È quindi opportuno sceglierla in maniera tale che sia difficile da indovinare e, ovviamente, non deve essere mai utilizzata altrove.
Poiché, come abbiamo osservato, KeePass archivia le password in locale, è essenziale prendere delle precauzioni per proteggere il dispositivo e il file del database da accessi non autorizzati o perdite di dati. Ad esempio è consigliabile effettuare backup regolari del database per evitare la perdita accidentale di dati.
Vulnerabilità KeePass permette di scoprire la master password: come funziona
A metà maggio 2023, un ricercatore indipendente ha pubblicato su GitHub il codice proof-of-concept (PoC) che consente di sfruttare una vulnerabilità appena scoperta in KeePass. Battezzato KeePass 2.X Master Password Dumper, il software consente di recuperare la master password di KeePass dalla memoria senza eseguire codice malevolo e senza bisogno che KeePass sia ancora in esecuzione.
Il ricercatore spiega che il problema di sicurezza (CVE-2023-32784) ha a che fare con il funzionamento di .NET, framework sul quale KeePass è basato. Quando si digita ad esempio Password
, restano in memoria delle porzioni di stringa: il PoC cerca questi “residui” all’interno dei dati di dump e offre un probabile carattere per ogni posizione.
A questo punto, lo scenario peggiore consiste nel fatto che un utente con la disponibilità fisica del PC possa forzare l’accesso a KeePass risalendo alla master password e recuperando l’intero archivio delle credenziali personali dell’utente. Anche un malware o un qualunque altro tipo di componente malevolo in esecuzione sul sistema, potrebbe risalire alla master password.
Sempre a maggio scorso, Dominik Reichl, ideatore e sviluppatore di KeePass, ha confermato di voler risolvere la vulnerabilità in questione con la pubblicazione della versione 2.54.
Cosa fare per difendere la master password di KeePass
La domanda è: cosa è possibile fare per evitare che un utente malintenzionato possa acquisire la master password di KeePass e utilizzarla per sottrarre le credenziali di accesso dell’utente?
Se si utilizza KeePass da molto tempo, è probabile che la master password (e potenzialmente anche altre password) si trovi nel file di paging e nel file di ibernazione di Windows. Come dice l’autore della scoperta, a seconda del “livello di paranoia” dell’utente viene suggerito di eliminare il file di ibernazione, rimuovere il file di paging, sovrascrivere lo spazio libero su hard disk e SSD per evitare il recupero dati (ad esempio con l’utilità Cipher utililzzando l’opzione /w
).
Bruciando le tappe (si pensava che la patch sarebbe arrivata in estate), Reichl ha reso disponibile KeePass 2.54, release del password manager esente da qualunque problema di sicurezza noto. Come spiegato nella nota ufficiale, gli utenti di KeePass sono a questo punto esortati ad aggiornare prima possibile alla versione più recente.
Per correggere la vulnerabilità, KeePass utilizza ora un’API di Windows per impostare o recuperare i dati dalle caselle di testo, impedendo la creazione di stringhe che possono essere potenzialmente estratte dalla memoria.
Gli utenti di KeePass 1.x, Strongbox o KeePassXC non sono interessati dalla falla CVE-2023-32784. Pertanto, non devono attivarsi in alcun modo.