WhatsApp versleutelt berichtenverkeer in stilte

Iemand die het informatiebeveiligingnieuws in de gaten houdt, weet inmiddels dat WhatsApp al behoorlijk wat kritiek te verduren heeft gehad. En terecht, want WhatsApp heeft zijn zaakjes beveiligingstechnisch niet goed op orde. Zo werd in mei 2011 voor het grote publiek bekend dat WhatsApp berichtverkeer onversleuteld over het netwerk verstuurt, waardoor de gestuurde berichten vrij makkelijk zijn te onderscheppen door iemand met een beetje verstand van zaken.

Een jaar later (!) werd het wel erg makkelijk om deze omissie op beveiligingsgebied te misbruiken toen een Spaanse ontwikkelaar de tool WhatsAppSniffer introduceerde. Geïnstalleerd op een (rooted) smartphone kun je met deze tool WhatsApp berichten van telefoons in hetzelfde draadloze netwerk onderscheppen. De tool maakt hiervoor gebruik van ARP spoofing.

In het kader van ‘sterke verhalen tijdens de lunch’, sprak ik vorige week met een aantal collega’s over de desbetreffende kwetsbaarheid en de tool WhatsAppSniffer die het misbruiken ervan makkelijk maakt. Zoals wel vaker het geval bij dit soort makkelijk te misbruiken kwetsbaarheden, is er in eerste instantie ongeloof. Uitzonderingen daar gelaten valt het mij vaak op dat mensen graag uitgaan van het positieve. Ze verkeren vaak in de veronderstelling dat zaken goed geregeld zijn en kunnen zich niet voorstellen dat anderen (met name bekende bedrijven/organisaties) niet zorgvuldig omgaan met persoonlijke gegevens, terwijl er ook zonder kwetsbaarheden voldoende is om je zorgen over te (kunnen) maken. En dan wordt het leuk, want dan bevind ik mij in de gelegenheid om het tegendeel te bewijzen.

De telefoons werden uit de broekzakken gehaald, er werd verbinding gemaakt met een beschikbaar draadloos netwerk, ik startte WhatsAppSniffer op, en collega’s stuurden elkaar berichten via WhatsApp. Vol verwachting keek ik naar het schermpje van mijn Android telefoon in afwachting van de berichten tussen mijn collega’s. Niks. Vreemd, want een aantal weken geleden lukte het thuis wel. Na een aantal tests ontdekte ik waarom het niet had gewerkt: het gebruikte draadloze netwerk maakt gebruik van client isolation; een beveiligingsmaatregel die ervoor zorgt dat apparaten in een draadloos netwerk alleen met het access point (en dus niet met elkaar) kunnen communiceren. Echter, toen ik het diezelfde avond thuis weer probeerde (in een draadloos netwerk zonder client isolation) lukte het ook niet meer. Tot zover de handige tool; tijd voor deep packet inspection met TShark op mijn eigen Linux router.

Na eerst te hebben bepaald dat mijn telefoon (192.168.1.33) voor gebruik van WhatsApp verbinding maakt met 50.22.210.151 kon ik de desbetreffende pakketjes onderscheppen en analyseren. Toen ontdekte ik dat het verkeer naar WhatsApp is versleuteld met SSL. Zie hieronder een beknopt resultaat van TShark van het moment dat ik met mijn telefoon een bericht stuurde.

0.000000 192.168.1.33 -> 50.22.210.151 SSL Continuation Data
0.144801 192.168.1.33 -> 50.22.210.151 SSL Continuation Data
0.260858 192.168.1.33 -> 50.22.210.151 TCP 37756 > https [ACK] Seq=66 Ack=86 Win=864 Len=0 TSV=13337420 TSER=1043676335
1.176645 192.168.1.33 -> 50.22.210.151 TCP 37756 > https [ACK] Seq=66 Ack=149 Win=864 Len=0 TSV=13337511 TSER=1043677210
1.209394 192.168.1.33 -> 50.22.210.151 TCP [TCP ZeroWindowProbe] 37756 > https [PSH, ACK] Seq=66 Ack=149 Win=864 Len=1 TSV=13337514 TSER=1043677210
1.354053 192.168.1.33 -> 50.22.210.151 SSL [TCP Previous segment lost] Continuation Data

Om er zeker van te zijn dat ik de resultaten van TShark juist interpreteerde, heb ik ook nog naar de inhoud van het dataverkeer gekeken. En inderdaad, ik zag de tekst van mijn berichten nergens meer als platte tekst staan. En een aantal weken geleden was dat nog wel het geval. Dit verklaart in ieder geval waarom WhatsAppSniffer geen resultaten liet zien, maar verbaasde mij wel omdat ik simpelweg niet wist dat WhatsApp inmiddels maatregelen had genomen om berichtenverkeer te versleutelen.

In een poging een bevestiging te vinden dat WhatsApp deze kwetsbaarheid heeft verholpen, kwam ik uit bij deze blogpost van Mathy Vanhoef. Hij meldt dat de kwetsbaarheid is verholpen, maar niet voor alle platformen. Voor Android is het in ieder geval verholpen, maar ook voor iOS lijkt de kwetsbaarheid verholpen. Bij vrienden met een iPhone heb ik een snelle test uitgevoerd met WhatsAppSniffer en is het me niet gelukt berichten te onderscheppen. Andere platformen heb ik helaas niet kunnen testen.

Het heeft wat mij betreft te lang geduurd, maar uiteindelijk heeft WhatsApp toch de nodige maatregelen genomen om hun applicatie weer een beetje veiliger te maken. En in het kader van ‘beter laat dan nooit’, kan ik dit alleen maar toejuichen. Dat WhatsApp ervoor kiest om kwetsbaarheden niet aan de grote klok te hangen kan ik begrijpen. Wat ik echter niet begrijp is waarom er niet wat opener wordt gecommuniceerd over verholpen kwetsbaarheden. Het is mij in ieder geval opgevallen dat weinig (nieuws)websites hierover melding hebben gemaakt. Ik ben er in ieder geval per toeval achtergekomen.

0 antwoorden

Plaats een Reactie

Meepraten?
Draag gerust bij!

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.