De Crypto Hype! Geld: JA!......Beveiliging: Ho maar!
Bitcoin, Ehtereum, Ripple, Monero....er gaat tegenwoordig geen dag voorbij zonder dat er weer een nieuwe digitale munt beschikbaar komt. De hype rond cryptomunten neemt alleen maar toe. Er zijn inmiddels al meer dan 1000 munten. Iedereen wil meedoen....maar net zoals met IoT-devices....zijn er maar bar weinig die over beveiliging nadenken. En voor degenen die er wel over na hebben gedacht....een klein foutje is zo gemaakt.
De blog van vandaag beschrijft een echt gebeurd verhaal van iemand die, ondanks niet volstrekt onbekend met beveiliging, bijna zijn digitale munten verloor. En hoe dit voorbeeld maar weer bewijst hoe makkelijk je dit toch kan voorkomen met 2FA (Two-factor authentication).
Ik sta op winst! Laten we maar gaan verkopen
Gezien privacy redenen gaan we hier niet de echte naam noemen aan wie dit is overkomen. Maar laten we voor het verhaal de persoon even Frederik noemen :)
Frederik had wat munten gekocht voor een prikkie en zag op een gegeven moment dat de waarde snel aan het stijgen was. Verkopen dus! Frederik maakt gebruik van Bittrex, zijn "digitale cryptobank". (In dit geval is het toevallig Bittrex maar dat had met iedere instelling kunnen gebeuren. De oorzaak van wat er mis ging had ook niets te maken met de beveiliging van Bittrex).
Hij ging naar de site toe, logde in met zijn username en wachtwoord. Het scherm vroeg netjes om 2-factor Authentication. Voordat hij verder kon met het proces kreeg hij een bericht via de site met het verzoek om zijn telefoonnummer in te vullen zodat hij een SMS-je zou ontvangen voor extra authenticatie. In de gedachte nu binnen te zijn, voelde dit is als een extra beveiligingsstap, top! Wat hij wel opmerkte was dat de server best langzaam was. Op zich kan dat gebeuren. Frederik besloot om toch even zijn mail te checken aangezien je normaal gesproken bij een login een mailtje krijgt van Bittrex. Echter kwam hij niet meer in zijn mail. Het wachtwoord was gewijzigd! WTF?!?
Ok, dan maar weer naar Google en nogmaals Bittrex intypen. Hij kwam op de website terecht en het viel al meteen op hoe snel de verbinding nu was. Hij was binnen en stond op het punt om zijn munten te gaan verkopen. En toen viel hij van zijn stoel af. Frederik zag live hoe zijn munten werden omgezet naar Bitcoins en vervolgens werd getracht om deze te verkopen. Oh shit!!! Daar gaat mijn geld!
Was hij zijn geld kwijt? Nee, want Frederik had het geluk dat er voor elke transactie een 2FA verzoek gedaan wordt. En Frederik was gelukkig scherp genoeg om deze verzoeken niet te goed te keuren. Frederik belde een vriend voor zijn BitCoin adres zodat hij zijn Bitcoins naar het account van die vriend kon verzenden. Eerst de munten in veiligheid brengen. Daarna snel de munten weer omzetten naar euro's. Dat ging maar net goed....
In paniek trok Frederik zijn internetkabel uit zijn PC, schakelde zijn router uit, sloot zijn PC af en vroeg zich af: hoe heeft dit toch kunnen gebeuren?
Op onderzoek uit....
Frederik ging op onderzoek uit en had een missie: Hij zou en moest erachter komen hoe dit heeft kunnen gebeuren. Lag dit aan Bittrex of had hij zelf wellicht een foutje gemaakt? Laten we kijken wat het stappenplan was om de uiteindelijke oorzaak te vinden.
Stap 1: Zijn de laatste updates van Windows 10 Pro bijgewerkt? Frederik let daar altijd wel redelijk op. Het bleek dat de op een na laatste update erop stond. Kijkend naar de inhoud van de updates bleek dat op dat vlak alles in orde was.
Stap 2: Zou het aan mijn browser kunnen liggen? Frederik gebruikt Chrome, de meest veilige browser op dit moment. Hmmm...dat lijkt dus ook niet erg waarschijnlijk. Een browser plugin dan? Ook daar bleek niets geks in te zitten.
Stap 3: Kijken of in de local certificate store op de PC er een certificate staat die gekoppeld is aan Bittrex. Dan zou niet mogen. Gelukkig....ook dat was niet het geval.
Ondertussen bleek dat de hacker het ook gelukt was om in het Google account van Frederik te komen en alle recovery opties te verwijderen. Bovendien kwam Frederik erachter dat zijn Google Account History was verwijderd. Best bijzonder.....waarom zou een hacker er zo op gebrand zijn om de history te verwijderen?
Na lang zoeken bleek dat zijn Chrome History nog wel beschikbaar was. Als je de geschiedenis van je Google Account wil beheren heb je altijd de optie om aan te geven "Inclusief Chrome-browsergeschiedenis". Geluk bij een ongeluk zeg maar. Na lang zoeken in de geschiedenis zonder enige resultaat stuitte hij op een klein maar belangrijk detail. Het begin van het antwoord was gevonden. Bingo!
Let altijd op wat voor linkje je klikt
Het bleek dat de eerste keer dat Frederik op Google zocht naar Bittrex hij niet op de pagina www.bittrex.com kwam maar op een spoofing website. De eerste resultaten op Google zijn meestal Adwords advertenties. De link die vervolgens achter die advertentie zit kan natuurlijk van alles zijn. Frederik had in de vluchtigheid op zo'n advertentie geklikt omdat het leek alsof dat een advertentie was van Bittrex. Echter, zoals we nu weten, bleek die advertentie te linken naar een andere site. Een spoofing website gebruikt voor een phishing-aanval. De websites zijn bijna identiek dus op het eerste gezicht heb je niets door:
Frederik logde in met zijn username/wachtwoord die meteen werden gebruikt (hoogstwaarschijnlijk automatisch) om aan te loggen op de echte website van www.bittrex.com. Bittrex.com heeft ook als beveiliging dat het alleen een inlog accepteert als je gebruik maakt van een voor hen bekend IP-adres. Zodra je dus inlogt vanaf je werk of bij vrienden thuis dan stuurt Bittrex.com je een mail om te vragen of hij het klopt dat je vanaf dit IP-adres probeert aan te loggen. Het enige wat de hacker nog hoefde te doen was een manier vinden om de mail van Frederik in te loggen. En hier zit hem de genialiteit:
Het sms-je van Frederik ontving tijdens de eerste keer inloggen had niets met extra beveiliging vanuit Bittrex te maken. Het ging om een google-recovery sms-je waarmee je met de code die je krijgt je google account kunt "herstellen" en dus kunt inloggen. Slim! Aangezien Frederik in eerste instantie de boel vertrouwde (je denkt dat je immers al bent ingelogd op Bittrex) is het een natuurlijke vervolgstap om vervolgens de code in te voeren. Wat Frederik echter niet wist was hij daarmee de hacker de Keys to the Kingdom gaf.
De hacker had 2FA van Bittrex nodig voor elke stap (inloggen, elke verkooporder en wegsluizen van het geld). Doordat de oorspronkelijke site traag was logde Frederik verschillende malen op de spoofing site in met 2FA, waardoor elke keer een sleutel werd gegeven om weer een handeling uit te voeren. Het was een groot geluk dat hij dit niet vaak genoeg deed om het geld weg te laten sluizen.
Appeltje-eitje
De hacker had nu toegang tot zijn mail, kon zijn IP-adres whitelisten en had de credentials voor Bittrex. De hacker besloot om gelijk het recovery-emailadres, recovery-telefoonnummer te verwijderen en het wachtwoord aan te passen. Frederik was in deep deep trouble! Zijn munten werden omgezet naar Bitcoins en hoefde alleen nog omgezet te worden naar euro's of verzonden te worden naar een andere portemonnee. Appeltje-eitje normaal gesproken. Maar elke stap gebruikt 2FA. Frederik kreeg net op tijd het 2FA berichtje, waardoor hij de hack kon stoppen. Zolang je dit niet doet zal het verzoek ook niet worden uitgevoerd. Frederik kroop door het oog van de naald en kon nog snel, met behulp een vriend, zijn munten in veiligheid brengen. En de hacker.....had een goed systeem bedacht maar Frederik had geluk doordat hij alert was en op een gegeven moment dus de 2FA verzoeken niet meer bevestigde.
Two-factor authenticatie is de life saver!
Natuurlijk is two-factor authentication als life saver wat te kort door de bocht. Dat zou impliceren dat je met 2FA 100% beschermd bent en dat is duidelijk niet zo. Alleen het help wel in belangrijke mate. Frederik had het geluk dat voor transacties gebruik wordt gemaakt van deze techniek. Maar had Frederik dit kunnen voorkomen? Het antwoord is simpel: ja.
Gebruik voor al je belangrijke accounts (Facebook, Outlook, Gmail, LinkedIn, etc.) altijd 2FA. Het werpt een belangrijke belemmering op in geval iemand probeert in te loggen en je username/wachtwoord heeft bemachtigd. De meeste mensen zien dit nog steeds als een belemmering terwijl het binnen 1 seconde is gebeurd. Die extra seconde zorgt dat dit soort voorbeeld kunnen worden voorkomen. Immers...had Frederik 2FA aangezet voor het inloggen op zijn mail dan was de hacker daar al tegen een blokkade aangelopen en had het mechanisme gefaald.
Én let goed op waar je je wachtwoord en de 2FA code invult. Let dus goed op of in de browser https staat en zet belangrijke sites (Bankieren, Email en Handelssites) in je bookmarks/ favorieten, zodat je zeker weet dat je niet op een schimmige link klikt.
Soms wordt je weleens gevraagd waarom Identity & Access Management (IAM) belangrijk is? Hopelijk geeft bovenstaand voorbeeld daar al een antwoord op. Zoals Frederik zelf al aangaf: The system is as weak as the human weakness.
Sommige personen zeggen: "Geef het nog een jaar en dan is IAM dood. Het heeft geen nut meer". Het lijkt mij duidelijk dat IAM, meer dan ooit, springlevend is!