De populaire wachtwoordbeheerder KeePass is kwetsbaar voor extractie van hoofdwachtwoorden uit het applicatiegeheugen, waardoor aanvallers die een apparaat binnendringen het wachtwoord kunnen herstellen, zelfs als de database is vergrendeld.
Het probleem werd ontdekt door een beveiligingsonderzoeker die bekend staat als ‘vdohney’, die een proof-of-concept-tool publiceerde waarmee aanvallers het KeePass-hoofdwachtwoord uit het geheugen kunnen halen als een proof-of-concept (PoC).
Met wachtwoordmanagers kunnen gebruikers unieke wachtwoorden maken voor elk online account en de inloggegevens opslaan in een gemakkelijk te doorzoeken database of wachtwoordkluis, zodat u ze niet allemaal hoeft te onthouden. Om deze wachtwoordkluis echter goed te beveiligen, moeten gebruikers het unieke hoofdwachtwoord onthouden dat is gebruikt om deze te ontgrendelen en toegang te krijgen tot de opgeslagen inloggegevens.
Dit hoofdwachtwoord versleutelt de KeePass-wachtwoorddatabase, waardoor deze niet kan worden geopend of gelezen zonder eerst het wachtwoord in te voeren. Zodra het hoofdwachtwoord echter is gecompromitteerd, heeft een bedreigingsactor toegang tot alle inloggegevens die in de database zijn opgeslagen.
Om een wachtwoordbeheerder goed te beschermen, is het daarom essentieel dat gebruikers het hoofdwachtwoord beschermen en met niemand anders delen.
Een nieuwe KeePass-kwetsbaarheid die wordt gevolgd als CVE-2023-3278 maakt het mogelijk om het KeePass-hoofdwachtwoord te herstellen, plus de eerste één of twee tekens, in de vorm van duidelijke tekst, ongeacht of de KeePass-werkruimte is vergrendeld of, mogelijk zelfs als de programma is gesloten.
“KeePass Master Password Dumper is een eenvoudige proof-of-concept-tool die wordt gebruikt om het hoofdwachtwoord uit het KeePass-geheugen te dumpen. Afgezien van het eerste teken van het wachtwoord, kan het het wachtwoord meestal in platte tekst herstellen”, waarschuwt de beveiligingsonderzoeker bij GitHub . pagina voor exploit-tool.
“Er is geen code-uitvoering vereist op het doelsysteem, alleen een kerndump. Het maakt niet uit waar het geheugen vandaan komt, het kan de procesdump, wisselbestand (pagefile.sys), slaapstandbestand (hiberfil.sys) of RAM-dump van het hele systeem. Het maakt niet uit of de werkruimte is vergrendeld of niet..”
De fout bestaat omdat de software een aangepast wachtwoordinvoervak gebruikt genaamd “SecureTextBoxEx”, dat sporen achterlaat van elk teken dat de gebruiker in het geheugen typt.
“KeePass 2.X gebruikt een aangepast tekstvak voor het invoeren van het wachtwoord, SecureTextBoxEx. Dit tekstvak wordt niet alleen gebruikt voor het invoeren van het hoofdwachtwoord, maar ook op andere plaatsen in KeePass, zoals de wachtwoordinvoervakken (zodat de aanval kan ook worden gebruikt om de inhoud ervan te herstellen)”, legt vdohney uit.
De kwetsbaarheid is van invloed op de nieuwste versie van KeePass, 2.53.1, en aangezien het programma open source is, zullen forks van het project waarschijnlijk worden getroffen.
KeePass 1.X, KeePassXC en Strongbox lijken niet te worden beïnvloed door CVE-2023-32784, volgens de ontwikkelaar van de wachtwoorddumptool.
Hoewel de PoC is getest op Windows, zou de exploit ook moeten werken voor Linux en macOS, met enkele aanpassingen, aangezien het probleem niet specifiek is voor het besturingssysteem, maar voor hoe KeePass omgaat met gebruikersinvoer.
Bron: vdohney
makkelijk op te blazen
Aangezien kerndumps moeten worden hersteld om het KeePass-hoofdwachtwoord te herstellen, vereist misbruik van CVE-2023-32784 fysieke toegang of malware-infectie op de doelcomputer.
Malware die informatie steelt, kan echter snel verifiëren of KeePass op een computer bestaat of actief is, en als dat het geval is, het geheugen van het programma dumpen en samen met de KeePass-database naar de aanvaller sturen om het leesbare wachtwoord offline uit de geheugendump te halen.
BleepingComputer heeft de ‘keepass-password-dumper’-tool van vdohney getest door KeePass op een testapparaat te installeren en een nieuwe database aan te maken met het hoofdwachtwoord ‘password123’, zoals hieronder weergegeven.
Bron: Bleeping Computer
We vergrendelen vervolgens onze KeePass-werkruimte en voorkomen toegang tot deze, tenzij u het hoofdwachtwoord opnieuw invoert.
In onze tests kunt u Process Explorer gebruiken om het KeePass-projectgeheugen te dumpen, maar het vereist een volledige geheugendump en geen minidump om correct te werken. Er zijn geen verhoogde bevoegdheden nodig om procesgeheugen te dumpen.
Nadat we de vdohney-tool met Visual Studio hadden gecompileerd, hebben we het tegen onze geheugendump uitgevoerd en het herstelde snel het grootste deel van ons leesbare wachtwoord, waarbij alleen de eerste twee letters ontbraken.
Bron: Bleeping Computer
Hoewel dit niet het volledige wachtwoord is, zou het vrij eenvoudig zijn om te bepalen welke tekens ontbreken.
De onderzoeker waarschuwt ook dat hoofdwachtwoorden die in het verleden zijn gebruikt, in het geheugen kunnen blijven, zodat ze kunnen worden hersteld, zelfs als KeePass niet meer op de gehackte computer draait.
oplossing komt eraan
KeePass-ontwikkelaar Dominik Reichl ontving het bugrapport en beloofde een oplossing voor CVE-2023-32784 te implementeren in versie 2.54, gepland voor juli 2023.
Reichl vertelde echter aan BleepingComputer dat de kans groter is dat KeePass versie 2.54 over ongeveer twee weken aan gebruikers zal worden vrijgegeven, dus het zou begin juni beschikbaar moeten zijn.
Op basis van een discussie waarin Reichl zijn gedachten over de beveiligingsfout en mogelijke mitigatiestrategieën ontwikkelde, worden twee beveiligingsverbeteringen genoemd voor de volgende versie van KeePass:
- Voer directe API-aanroepen uit om de tekst van het tekstvak op te halen/in te stellen, en vermijd het maken van geheugenbeheerde tekenreeksen die geheimen kunnen lekken.
- Maak dummy-fragmenten met willekeurige tekens in het procesgeheugen die ongeveer even lang zijn als het hoofdwachtwoord van de gebruiker, waardoor de echte sleutel wordt verdoezeld.
KeePass 2.54 voor Windows heeft beide, terwijl de macOS- en Linux-versies pas de tweede verbetering krijgen.
De ontwikkelaar heeft een testversie uitgebracht met de nieuwe beveiligingsverbeteringen die het probleem verminderen, dus degenen die onstabiel gedrag kunnen accepteren, kunnen het vanaf hier krijgen.
De maker van de PoC heeft bevestigd dat hij de aanval niet langer kan reproduceren met de twee beveiligingsverbeteringen, dus de oplossing lijkt effectief te zijn.
Ook na het uitbrengen van de nieuwe versie kan het hoofdwachtwoord nog in geheugenbestanden worden opgeslagen. De onderzoeker waarschuwt dat om er 100% zeker van te zijn dat het niet op het systeem op de loer ligt, u swap- en slaapstandbestanden van uw systeem moet verwijderen, uw harde schijf moet formatteren met behulp van de “data overwrite”-modus om gegevensherstel te voorkomen, en een nieuwe installatie van het besturingssysteem.
Voor de meesten zijn het herstarten van de computer, het verwijderen van het wisselbestand en de slaapstandbestanden en het niet gebruiken van KeePass totdat de nieuwe versie is uitgebracht, voorlopig redelijke beveiligingsmaatregelen.
Zelfs dan, voor de beste bescherming, moet u zeer voorzichtig zijn om geen programma’s van onbetrouwbare sites te downloaden, en pas op voor phishing-aanvallen die uw apparaten kunnen infecteren, waardoor kwaadwillenden op afstand toegang krijgen tot uw apparaat en de database.