Wachtwoorden leesbaar in werkgeheugen?
Een diepere duik in wachtwoordmanagers onder Windows
Software om je wachtwoorden te beheren voldoet eigenlijk niet aan de eisen voor veiligheid waarbij je je sleutel, slot en kluizen apart moet houden. Voor de geteste managers in het vorige artikel vroegen we ons af hoe het daarmee staat. Het antwoord daarop is niet wat je had gehoopt: hier en daar moet je je lichtelijk zorgen maken.
De taak van een wachtwoordmanager is om gegevens veilig te bewaren en als het nodig is tevoorschijn te toveren. Hierdoor ontkom je er dus niet aan dat ze dat soort gevoelige gegevens als platte tekst accepteren en in die vorm weer beschikbaar maken. In de tussentijd moeten ze de gegevens bewaken zodat derden er zo lastig mogelijk bij kunnen. Dit krijg je voor elkaar door de gegevens niet in platte tekst rond te laten slingeren, maar ze volgens de laatste technieken te versleutelen.
Als je daarbij kijkt naar hoe de programma's werken en gegevens op je schijf of in de cloud parkeren, lijkt het erop dat aan alle standaardregels voor versleuteling wordt voldaan. Bij de nieuwste dreiging in de vorm van Meltdown en Spectre, die zich richten op cpu-architectuur, moet je je daarbij nog wat meer afvragen. Hoe veilig blijft de inhoud in je werkgeheugen? Beschermende maatregelen die processen of systeemonderdelen met meer rechten van elkaar scheiden en die men vertrouwde, hebben nu last van imagoschade.
Elandtest
Om die reden hebben we ter illustratie voor alle wachtwoordmanagers onder Windows getest of we de platte tekst van onze testwachtwoorden in het werkgeheugen van de bijbehorende processen terug konden vinden. Je hoeft geen doorgewinterde hacker te zijn, voldoende rechten hebben is genoeg. In Windows Taakbeheer kun je via een rechtermuisklik een 'Dumpbestand maken'. Daarin belandt de inhoud van het werkgeheugen van het geselecteerde proces. Met bijvoorbeeld een hex-editor kun je deze gegevens doorzoeken op wachtwoorden. De zoekopdracht voer je een keer in ANSI- en een keer in unicode-codering uit. Soms staan de programma's alleen toe om een image te maken voor een enkel proces binnen een groep. Dan heb je meerdere bestanden die onderzocht moeten worden. Het is lastig om het juiste proces boven water te krijgen. Dan is de crosshair in de toolbar van Process Explorer van Sysinternals handig, om te zien welk proces aan het programmavenster hangt. Je maakt dan een image via de functie 'Create Full Dump' in het snelmenu. Windows' beschermingsmechanisme UAC komt alleen om de hoek kijken bij gebruikers die hun instellingen flink opgeschroefd hebben.
We hebben op verschillende momenten de dumps gemaakt: na het starten van het programma en het invoeren van het master password, na opvragen van een wachtwoord en na het veranderen van een wachtwoord. We letten niet op de precieze timing maar hebben de stappen rustig handmatig afgewerkt. De steekproeven ter validatie, waarbij de timing, wachtwoorden en pc's varieerden bevestigden onze resultaten, ook al zit er wat lichte variatie in.
We schrokken in eerste instantie van het resultaat. Alle programma's gaven minimaal losse wachtwoorden prijs. Slechts weinig programma's hebben het master password in het werkgeheugen zodanig afgeschermd dat we het niet konden traceren. Bij één programma kregen we nadat we een wachtwoord opgeroepen hadden met de wachtwoordmanager vanuit het geheugen het master password boven water. We lieten alle producenten weten dat we de platte tekst hadden gevonden.
Iets minder dan een derde gaf een reactie. Een van de pareltjes: 'Op basis van het design … slechts beperkte controle
over hoe de wachtwoorden in het geheugen opgeslagen worden, maar we werken continu aan methodes om de risico's te minimaliseren en hebben de nodige maatregelen getroffen om de schade te beperken'. Daarbij gaf de producent nog aan dat de klant wel alert moet blijven op 'cyberhygiëne'.
Veel producenten geven aan dat het risico van wachtwoorden in platte tekst in het geheugen 'zeer gering' is. Een producent gaf na eerdere scepsis aan dat onze ontdekking 'een behoorlijke impact' had en verklaarde dat dit was ontstaan door wijzigingen en helaas door de kwaliteitscontrole was geglipt. Binnen een dag stond er een nieuwe versie klaar.
Gebruikers van wachtwoordmanagers zijn niet bepaald blij dat vertrouwelijke gegevens prijsgegeven worden. Tijdens onze research op dit gebied kregen we ook resultaten binnen van onafhankelijke onderzoeken. Ontwikkelaar Maximilian Krüger heeft zijn favoriete wachtwoordmanager onder handen genomen en zag met behulp van een programma voor gamecheats (Cheat Engine) zijn wachtwoorden in platte tekst voorbij komen.
In dit programma zit een functie om tekenreeksen weer te geven, wat zeer handig is om meer over eventuele aangrenzende zoekpatronen te achterhalen. Hiermee kun je specifieke termen voor het lokaliseren van bepaalde wachtwoorden maken binnen de geheugenadresrange van de wachtwoordmanager. Dan is het slechts een kleine stap om met gangbare malware-toolkits aanvallen op de inhoud van het werkgeheugen van wachtwoordmanagers te bouwen.
Reality check
Op dit punt moet je je afvragen, hoe realistisch malware die wachtwoorden in platte tekst probeert te vinden werkelijk is. Malware die het master password afvangt bij het invoeren en samen met versleuteld opgeslagen wachtwoorddata overseint naar de aanvaller, kost nauwelijks meer werk. Dat is dan iets om je meer zorgen over te maken. Of het nu gaat om een platte tekst-diefstaltool of malware, de software moet eerst op een bepaalde manier op je pc belanden voordat er iets gekaapt kan worden.
De tip van de niet bij naam genoemde producent over het goed schoonhouden van je pc is geen onzin: als je je pc schoon houdt, updates installeert en de juiste beschermende software installeert, heb je weinig te vrezen. Als je je pc sowieso al wat laat verslonzen, is het niet verstandig om daarop iets met wachtwoorden te doen. In elke geval zorgt 2FA (zie pagina 84) voor meer veiligheid, of dat nu is in de vorm van een biometrische oplossing of een keyfile.
Als je het nog moderner wilt aanpakken kun je de veiligheid opschroeven door je wachtwoorden in verschillende risicoklasses in te delen en ze in verschillende programma's te bewaren. De niet zo kritische kun je zonder zorgen met een tool laten syncen met je smartphone. De zeer belangrijke wachtwoorden zitten afgezonderd in een ander programma dat alleen op een hermetisch afgeschermde pc staat. De pincode voor je appeltje voor de dorst kun je beter in platte tekst op een briefje in een sok onder je matras stoppen. (avs)