Security

WhatsApp OTP kwetsbaarheid zorgt voor succesvolle hacks bij 'schone' toestellen

July, 21st, 2022

Admin

Almelo - Misschien heb je het ook wel eens meegemaakt: je ontvangt uit het niets een verificatie code van WhatsApp. Iemand heeft op een ander toestel (per ongeluk) jouw nummer ingevoerd. Geen reden tot directe paniek, normaal gesproken. Enkele ogenblikken later ontvang je nog een code, en nog één, en nog één. Het valt je op dat de aangevraagde verificatie codes (zogeheten OTP) in een andere taal worden aangekondigd. In ons geval was dat in de Spaanse taal. Dan wordt je gebeld door één van de telefoonnummers van WhatsApp. Je hoort een Spaanse bot uitspreken iets in de zin van: "Tu código de verificación es... uno dos tres seis ocho seis". En nog steeds denk je bij jezelf dat de kans groot is dat iemand per ongeluk een foutje heeft gemaakt in het invullen van een mobiel nummer. Maar dan komt er nog een gebelde OTP, en nog één. Totdat er ineens een pop up van WhatsApp op je scherm verschijnt: "Uw telefoonnummer is niet langer geregistreerd bij WhatsApp deze telefoon. Mogelijk hebt u het geregistreerd op een andere telefoon. Zo niet, verifieer dan uw telefoonnummer om weer in te loggen op uw account." Je begint jezelf af te vragen of je misschien iets verkeerd hebt gedaan. Heb je een URL aangeklikt? Is er malware op je toestel gekomen? Je begint aan jezelf te twijfelen.

Als je de telefoon op dat moment in je hand hebt, dan is het eerste wat je doet jezelf snel weer 'controleren'. Je krijgt van WhatsApp wéér een OTP verzonden, en dit keer gewoon in het Nederlands. Je kunt weer in je eigen WhatsApp. Als je pech hebt gehad, dan heeft de hacker te veel tijd gehad en heeft deze misschien "verificatie in 2 stappen" geactiveerd voor je account. De hacker is nu wel uit je account, maar jij kunt nu ook niet meer bij je berichten en groepen. Dit kun je voorkomen door zélf 2FA (verificatie in twee stappen) in te schakelen. Dat doe je door WhatsApp te openen, dan ga je naar instellingen, account, verificatie in 2 stappen en je volgt daar de vervolgstappen. Daardoor voorkom je dat de hacker bij jou in de WhatsApp kan kijken in welke groepen je zit en de telefoonnummers die in die groepen actief zijn. Die telefoonnummers zijn per direct ook een potentieel doelwit van je hacker. En dit is dus te voorkomen door de verificatie in twee stappen te activeren. Het voorkomt niet dat je hacker jou uit je eigen account weet te krijgen, want zodra de hacker de juiste OTP in heeft gevoerd, dan zal jouw toestel worden uitgelogd. 

De iPhone 13 mini die bij ons het doelwit was van de hackers hebben we direct gecontroleerd op malware, backdoors en andere 'veiligheids issues'. Op internet (red. Reddit: link 1) werd een suggestie gedaan dat het probleem veroorzaakt werd door een onveilige voicemail. Na de eerste hack hebben we dus direct een wachtwoord op het voicemail account gezet. Tevens zijn er op Reddit (link 2) meerdere meldingen van mensen waarbij 's nachts het account werd overgenomen, net zoals het bij ons begon om 23.45h. Om 23:52 werd het account overgenomen en om 23:53 kregen we het account zelf weer in handen. Nadat dus ook de e-mail was gecontroleerd op spam of verdachte berichten, geïnstalleerde apps werden nagekeken, voicemail werd voorzien van een pincode en het toestel door ons als 'veilig' werd bestempeld, was dit klaarblijkelijk nog steeds niet voldoende. Vanaf middernacht bleven de codes binnenkomen, maar bleef de iPhone ingelogd op het WhatsApp account. Om 03:10h hielden we op met monitoren van het toestel en werd het toestel weg gelegd. Om 03:40h was het echter opnieuw gelukt door de hacker om de OTP in te voeren en het toestel uit te laten loggen. Hier werd meer schade voorkomen door de 2FA die was ingeschakeld, de extra code moest zijn werk doen en daar moesten we vertrouwen in hebben. Om 06.15h (kort nachtje) merkten we op dat de telefoon niet meer ingelogd was bij WhatsApp en deden we zelf weer opnieuw een verificatie met OTP om het account in te schakelen op de iPhone.

Na de tweede succesvolle hack hebben we de eSIM laten wijzigen door de provider door een fysieke simkaart. Daarnaast werd door onszelf de WhatsApp overgezet op een Android toestel (Samsung Galaxy S22 Ultra, met de meest up-to-date beveiligingsupdates) welke nieuw uit doos kwam. De hacker leek te stoppen, want de hele dag kregen we geen verificatiecodes meer binnen. Zou hij de 2FA gezien hebben en besloten hebben dat dat voldoende was geweest? Helaas niet, want een dag later kwam om 20.25h opnieuw een OTP binnen per SMS en per telefoon. Om 22.30h werden we bij de Samsung, met nieuwe simkaart (dus zelfs een IMSI wijziging), opnieuw geconfronteerd met een uitgelogd WhatsApp account. Dit maal wilden we hem dan maar terugzetten op de iPhone, maar toen kwamen we erachter dat er een 12-uur klok was gaan aftellen vanaf 20.25h. We konden dus niet meer het account verifiëren bij WhatsApp en de hacker zat z'n hoofd te breken op onze 6-cijferige 2FA code. Daarop werden diverse WhatsApp support apps geopend op een ander toestel, waarbij een bot ons geheel niet begreep en kwam er geen menselijke support aan te pas. Ook hebben we met het emailadres dat werd geregistreerd bij het doelwit-toestel verschillende emails verzonden naar WhatsApp support met daarbij de mededeling dat we WhatsApp, Meta e/o Facebook verantwoordelijk zouden houden voor alle geleden schade. Dit te meer omdat de 'menselijke fout' echt wel door ons werd uitgesloten op dit punt. Ongeveer 20 minuten na het versturen van die specifieke e-mail was het 'ineens' weer mogelijk om een OTP aan te vragen en konden we de iPhone weer aanmelden bij WhatsApp. Maar hoe konden we voorkomen dat de hacker een OTP kon aanvragen? (lees verder voor de 'oplossing').

Vorig jaar werd op Androidworld (bron) en Forbes (bron) ook geschreven over het 'suspenden' van een WhatsApp account, en daar lijkt deze hack erg op. Nu is het echter klaarblijkelijk mogelijk om binnen 15-20 minuten de OTP te raden en het doelwit uit te laten loggen, ook zonder het doorschakelen van je telefoonnummer. Er zijn ook berichten bekend dat scammers eerst contact met je opnemen om je een code in te laten voeren in je toestel welke nodig is om af te komen van ongewenste telefoontjes, maar die code blijkt een opdracht tot doorschakelen te zijn. Het toestel dat bij ons het doelwit was van de hack had geen enkele doorschakeling actief, en ook was het toestel nog nooit aangemeld geweest bij gekoppelde apparaten (zoals WhatsApp Desktop of WhatsApp Web). Ons gevoel is dat de kwetsbaarheid te maken heeft met de "bel mij" knop die WhatsApp aanbiedt, waarbij de code wordt doorgebeld.

Wil jij voorkomen dat een hacker een OTP kan aanvragen? Dat is mogelijk. Het lijkt er namelijk op dat zodra je zelf de OTP codes aanvraagt, de hacker niet weet welke OTP hij in moet voeren. Elke keer wanneer je de kans krijgt om je te laten SMS-en of te laten bellen via WhatsApp activatie, dan moet je die aantikken. Elke keer begint er een timer te lopen met daarop de tijd dat het niet mogelijk is om een OTP aan te vragen. Des te vaker je de OTP aanvraagt, des te langer het duurt om een verificatie code te ontvangen. Na verloop van tijd staat er bij de "bel mij" knop de melding dat je '-1 seconde' moet wachten. Nu is het een langere periode niet meer mogelijk om je te laten bellen met een nieuwe code. Ook is het nu niet meer mogelijk om een OTP in te voeren bij WhatsApp om jezelf te verfiëren. Maar zolang jij bent ingelogd bij WhatsApp heb je dan (even) niets te vrezen en kun je een nachtrust pakken. Vergeet echter niet om het klokje van WhatsApp in de gaten te houden, want zodra het mogelijk is om 'bel mij' aan te klikken, dan zal de hacker ook in de gelegenheid zijn om daar op te klikken.

Het is ons opgevallen dat na verloop van tijd de OTP van WhatsApp gebroken lijkt te zijn. De afkorting OTP staat voor "One Time Password". Echter stopt WhatsApp met het veranderen van de OTP code na verloop van tijd. Hoe vaker je de OTP aanvraagt, des te groter de kans dat de OTP meerdere dagen hetzelfde blijft. Dat is natuurlijk vragen om problemen. Het lijkt erop dat de "bel mij" button sneller overgaat tot het herhalen van telkens dezelfde OTP code. Onze vraag: genereert WhatsApp een OTP welke gekoppeld is aan tijd + telefoonnummer? Zodra je weet hoe WhatsApp de OTP 'verzint', dan is daar software op te bouwen die hetzelfde doet en hackers in staat stelt de OTP te raden. Zolang wijzelf op de verificatie bleven drukken lukte het de hacker namelijk niet om de WhatsApp te hijacken. 

Waar kan WhatsApp verbeteringen in aanbrengen? Stel gebruikers bij de eerstvolgende WhatsApp update verplicht om een e-mailadres op te geven. Wanneer men dan een nieuw toestel wil registreren op WhatsApp krijgen ze een OTP binnen via SMS én via e-mail. En indien wij gelijk hebben dat de OTP wordt gegenereert naar aanleiding van tijd + telefoonnummer, dan dient WhatsApp toegang af te dwingen tot apparaat informatie en het IMEI of MAC adres mee te nemen in de OTP generator. 

 

Als jij op dezelfde manier slachtoffer bent geworden van een hack op WhatsApp, dan willen wij je vragen om contact met ons op te nemen via het contactformulier op onze website. We willen heel graag met jou kijken hoe we dit beter en groter onder de aandacht kunnen krijgen!