‘Password managers’ niet zo veilig als u denkt
De jongste jaren zien we een snelle toename van talloze apps, online diensten, sociale netwerken, e-mailservices, instant messaging, home banking… Vele van deze diensten kiezen als toegangscontrole voor een simpele combinatie van login en wachtwoord. De login ligt vast (bv. naam, initialen of e-mailadres), terwijl de gebruiker zelf het wachtwoord kiest. Wat blijkt? Veel gebruikers kiezen overal voor (een variant van) hetzelfde wachtwoord. Het leven is een stuk gemakkelijker als u er maar één moet onthouden.
Het probleem met deze keuze is eenvoudig: wanneer een persoon met slechte bedoelingen uw Gmail-wachtwoord onderschept, heeft die meteen toegang tot al uw online accounts. Om dit te vermijden kiest u best voor elke toepassing een uniek wachtwoord, bij voorkeur een ‘sterk’ wachtwoord: lang, complex en relatief moeilijk te voorspellen. Deze oplossing heeft als nadeel dat u al die wachtwoorden vervolgens moet onthouden.
Als oplossing voor dit nieuwe probleem, kunt u een password manager (PM) gebruiken. Deze tool laat toe om al uw credentials (website of toepassing, identificatie, wachtwoord) te centraliseren in een databank, die toegankelijk is via één master wachtwoord. Zo hoeft u er slechts één meer te onthouden. Vaak laat een PM ook toe om automatisch sterke wachtwoorden te genereren en een deel van de credentials versleuteld op te slaan in de databank.
In deze blog bekijken we vooral het aanbod van online password managers (OPM). Dat zijn wachtwoord-databanken die online als een service worden aangeboden. Om uw credentials op te halen, maakt u een verbinding met uw OMP-account via een webbrowser, via een browser-extensie, of via een bookmarklet [1]. Dit laatste wordt typisch gebruikt voor mobiele webbrowsers die geen browser-extensies ondersteunen.
Dit soort tools zijn erg populair. Toonaangevende producten zoals LastPass, RoboForm, KeePass en 1Password tellen miljoenen gebruikers. Onderzoekers van de universiteit van California hebben vijf OPM’s (LastPass, RoboForm, My1login, PasswordBox et NeedMyPassword) bekeken en een aantal kwetsbaarheden gevonden. Die vormen een inbreuk op de privacy van gebruikers of laten zelfs toe om hun credentials te achterhalen.
Kwetsbaarheden gevonden
In de bookmarklets
Het probleem met bookmarklets is dat ze niet alle componenten verifiëren (bv. web API’s), die geïntegreerd zijn binnen de webpagina waar ze worden geactiveerd. Een aanvaller kan dus sommige onderdelen van de pagina vervangen door kwaadaardige code.
Van de vijf bestudeerde OMP’s zijn er drie die bookmarklets gebruiken. Elk van hen is kwetsbaar voor aanvallen tegen zwakke plekken in de bookmarklets. Bovendien blijkt dat een aanvaller, wanneer u op een bookmarklet zou klikken binnen een gekraakte webpagina, ook telkens uw volledige credentials weet te achterhalen. Voor LastPass, bijvoorbeeld, bestaat een aanval uit drie simpele stappen:
1. De aanvaller registreert de informatie die door de bookmarklet wordt verstuurd (wanneer het slachtoffer erop klikt).
2. De aanvaller misbruikt de identiteit van het slachtoffer bij LastPass, door diens credentials op te vragen op basis van de informatie verkregen in stap 1. LastPass verstuurt de credentials versleuteld naar de aanvaller.
3. Met de informatie uitvoorgaande stappen, kan de aanvaller de credentials van het slachtoffer in leesbare vorm achterhalen.
Bemerk dat de aanvaller slechts één keer stap 1 hoeft te doorlopen om alle credentials te achterhalen die door het slachtoffer op de server van LastPass worden bewaard.
In de webbrowser
Aangezien u de OPM-oplossingen gebruikt via een webbrowser, moet hun beveiliging rekening houden met de zwakke plekken van het web als platform. De meest bekende aanvallen zijn van het type cross-site request forgery (CSRF, aanval die het vertrouwen misbruikt dat een website in een gebruiker stelt) en cross-site scripting (XSS, aanval die het vertrouwen misbruikt dan een gebruiker stelt in een website). Beide zijn courant in webtoepassingen.
Drie bestudeerde OPM’s zijn jamme rgenoeg kwetsbaar voor dit type aanvallen. Het is bijvoorbeeld mogelijk om de controle over gelijk welke NeedMyPassword-account over te nemen via een XSS-aanval. Wanneer u LastPass gebruikt met een one-time-password (OTP, uniek wachtwoord dat slechts eenmalig voor authentificatie geldig is), kan een klassieke CSRF-aanval toegang geven tot de databank met wachtwoorden voor elk slachtoffer waarvan de gebruikersnaam bekend is.
In de autorisatie voor gedeelde toegang
Sommige OPM’s laten gebruikers toe om credentials onder elkaar te delen. Als deze functionaliteit echter niet goed is opgezet aan de serverzijde, kan dit leiden tot bijkomende zwakke plekken, zoals logische denkfouten.
Zo moeten we vaststellen dat twee OPM-diensten het verschil niet goed begrijpen tussen autorisatie en authentificatie. Het resultaat is behoorlijk rampzalig: er is niet eens een exploit nodig om de credentials van een willekeurige gebruiker te achterhalen. Bij My1login volstaat het, bijvoorbeeld, dat een aanvaller de identiteit van zijn slachtoffer kent en twee gebruikersaccounts registreert (die met succes een authentificatie doorlopen bij het inloggen): via één account vraagt hij gedeelde toegang aan, die aan de tweede account moet worden toegewezen.
Aangezien er geen verificatie gebeurt of de eerste account wel gemachtigd is om de credentials van het slachtoffer te delen, wordt de aanvraag gewoon toegekend door het systeem.
Drie bestudeerde OPM’s zijn jammergenoeg kwetsbaar voor dit type aanvallen. Het is bijvoorbeeld mogelijk om de controle over gelijk welke NeedMyPassword-account over te nemen via een XSS-aanval. Wanneer u LastPass gebruikt met een one-time-password (OTP, uniek wachtwoord dat slechts eenmalig voor authentificatie geldig is), kan een klassieke CSRF-aanval toegang geven tot de databank met wachtwoorden voor elk slachtoffer waarvan de gebruikersnaam bekend is.
In de autorisatie voor gedeelde toegang
Sommige OPM’s laten gebruikers toe om credentials onder elkaar te delen. Als deze functionaliteit echter niet goed is opgezet aan de serverzijde, kan dit leiden tot bijkomende zwakke plekken, zoals logische denkfouten.
Zo moeten we vaststellen dat twee OPM-diensten het verschil niet goed begrijpen tussen autorisatie en authentificatie. Het resultaat is behoorlijk rampzalig: er is niet eens een exploit nodig om de credentials van een willekeurige gebruiker te achterhalen.
Bij My1login volstaat het, bijvoorbeeld, dat een aanvaller de identiteit van zijn slachtoffer kent en twee gebruikersaccounts registreert (die met succes een authentificatie doorlopen bij het inloggen): via één account vraagt hij gedeelde toegang aan, die aan de tweede account moet worden toegewezen. Aangezien er geen verificatie gebeurt of de eerste account wel gemachtigd is om de credentials van het slachtoffer te delen, wordt de aanvraag gewoon toegekend door het systeem.
In de gebruikersinterface
Eén van de voordelen van OPM is dat het risico sterk vermindert dat u het slachtoffer wordt van een phishing-aanval [2] via de grafische interface van de online dienst waarop u probeert in te loggen. Een OPM zal bijvoorbeeld verifiëren dat de URL van de pagina waarmee u een verbinding maakt, wel degelijk correct is (bv. https://www.facebook.com/ voor Facebook). Dit vormt een bescherming tegen visuele imitaties van de website, die door het menselijke oog niet altijd worden opgemerkt. Dit voordeel verdwijnt natuurlijk wanneer de OPM-diensten zelf niet beschermd zijn tegen dit soort aanvallen.
Twee van de vijf OPM’s zijn kwetsbaar voor phishing-aanvallen. Bij RoboForm bijvoorbeeld, wanneer een slachtoffer klikt op een bookmarklet zonder eerst in te loggen bij zijn OPM, opent de bookmarklet binnen de bezochte webpagina een venster met het authenticatie-formulier. Als de bezochte webpagina gecompromitteerd blijkt, kan de aanvaller de verbinding onderscheppen inclusief de RoboForm-identificatie. Simpel.
De tabel hieronder geeft een overzicht van de zwakke plekken die door de onderzoekers van de Universiteit van California werden gevonden. “NVT” betekent dat de kwetsbaarheid niet van toepassing is.
Besluit
OPM-diensten hebben hun nut bewezen op het vlak van gebruiksgemak. Ze laten de internetgebruiker toe om zich te identificeren voor talloze toepassingen en webdiensten via unieke, sterke wachtwoorden. Toch blijft het raadzaam om het gebruik ervan te beperken. De zwakke plekken die werden ontdekt door Californische onderzoekers in vijf toonaangevende OMP-diensten tonen aan dat deze tools nog niet volledig matuur en veilig te noemen zijn.
Het is wel belangrijk te vermelden dat een meerderheid van deze OPM-aanbieders positief stonden tegenover het publiceren van deze zwakke plekken én hun producten ondertussen hebben verbeterd. LastPass heeft zelf een nota gepubliceerd waarin het de resultaten van de Californische studie erkent. LastPass werd ook nader onderzocht door Smals Research; de resultaten vindt u in een Quick Review.
[1] Een bookmarklet is een bladwijzer binnen een webbrowser, die een kleine toepassing in JavaScript bevat die extra functionaliteit aanbiedt binnen de browser wanneer de gebruiker een webpagina opent.
[2] Phishing is een methode om gevoelige informatie te achterhalen door zich voor te doen als een entiteit die het vertrouwen van de gebruiker geniet.
Over Tania Martin
Research consultant bij Smals sinds september 2013, gespecialiseerd in cryptologie en ICT-beveiliging. Voordien werkte ze als onderzoeker en assistent-professor voor de Université Catholique de Louvain (UCL), waar ze een doctoraat (Ph.D.) in computer engineering behaalde. Ze behaalde een master in de cryptologie en computerwetenschappen aan de Université Bordeaux I.